2023年05月20日 星期五 19時59分14秒
1.加法指令add,adc,inc
(1)add dst, src和adc dst, src
dst是目的運算元,src是源運算元。
add指令實現的功能是:將目標運算元和源運算元相加,結果存放在目標運算元中,運算中產生的進製送進製標誌位。 即(dst) <-- (dst)+(src)。執行指令後對進製標誌cf、輔助進製標誌af、零標誌zf、符號標誌sf、溢位標誌of和奇偶標誌pf有影響,控制標誌不變化。
adc指令實現的功能是:(dst) <-- (dst)+(src)+cf,執行指令後對進製標誌cf、輔助進製標誌af、零標誌zf、符號標誌sf、溢位標誌of和奇偶標誌pf有影響,控制標誌不變化。
兩條指令中目的運算元和源運算元的有以下幾種配對方式:
目標運算元
源運算元
通用暫存器(ax bx cx dx si di bp sp) 立即數/記憶體單元/通用暫存器
記憶體單元(x ptr 段暫存器:[……]) 立即數/通用暫存器
注:通用暫存器還包括ah,al,bh, bl, ch, cl, dh, dl。x是word或byte
兩條指令都需注意:
1-1.運算元型別要匹配,要麼都為字型別要麼都為位元組型別。
1-2.目的運算元dst不能是立即數。
1-3.段暫存器不能作為運算元,並且指標暫存器ip也不能作為運算元。
1-4.兩個運算元不能同時為記憶體單元。
1-5.記憶體單元作為目的運算元時,必須顯式指明指令進行的是字操作還是位元組操作,並且當定址方式為直接定址時,必須使用段跨越字首。
2.inc opr
指令實現的功能是將opr加1,即(opr) <-- (opr)+1
注意:2-1.運算元不能是立即數
2-2.運算元不能是段暫存器或指標暫存器ip
2-3.當運算元是記憶體單元時必須顯式指明指令進行的是字操作還是位元組操作,並且當定址方式為直接定址時,必須使用段跨越字首。
2-4.inc指令不影響cf標誌位
3.減法指令sub,sbb,dec模擬加法相關指令;取補指令neg運算元不能是段暫存器或指標暫存器ip或立即數,並且記憶體單元作為運算元時,必須顯式指明指令進行的是字操作還是位元組操作,並且當定址方式為直接定址時,必須使用段跨越字首,另取補指令影響標誌位。
Intel 8086 常用彙編指令表
二 算術運算指令 add 加法.adc 帶進製加法.inc 加 1.aaa 加法的ascii碼調整.daa 加法的十進位制調整.sub 減法.sbb 帶借位減法.dec 減 1.nec 求反 以 0 減之 cmp 比較.兩運算元作減法,僅修改標誌位,不回送結果 aas 減法的ascii碼調整.das...
四則運算之加減法
問題描述 計算機所能完成的乙個基本功能就是完成資料的計算,譬如加法 減法等等。但是在任何一種計算機上,計算中能夠使用的數字都是有一定範圍的,超過了範圍,就沒法得到精確的結果。你現在接受了乙個任務,要編寫乙個高精度計算器的核心部分。所謂高精度計算器,就是可以計算很大很大的資料的計算器。而你所需要編寫的...
組合語言使用加減法實現有符號數除法
老問題了,今天突然想起來實現一下。主要有幾個問題要注意 1 同號則做減法,異號則做加法 2 運算結束 若 被除數 或 除數 為0結束,或其符號和 被除數 相反則結束,兩種情況還要做不同的處理 使用加減法實現有符號數除法 1 同號則做減法,異號則做加法 2 運算結束 若 被除數 或 除數 為0結束,或...