本部分主要為王爽《組合語言》第11章標誌暫存器一些指令的用法舉例。
1.adc進製加法指令探索:
注意使用不影響cf位的語句
需要注意的點:
1.子程式的結構:
先把所有要用到的暫存器入棧,在程式結束後出棧
2.設定好cf的值:
令sub ax,ax
提前將cf的值清零
使用inc
和loop
調整偏移位址,而不用add
,防止影響cf的值
add128:
push ax
push cx
push si
push di
push bx
sub ax,ax
mov cx,8
s:mov ax,[si]
adc ax,[di]
mov [bx],ax
inc di
inc di
inc si
inc si
inc bx
inc bx
loop s
pop bx
pop di
pop si
pop cx
pop ax
ret
2.cmp指令配合使用
統計data段中數值為8的位元組的個數。
思路是,如果不相等就跳過計數部分。
mov bx,0
mov ax,0
mov cx,8
s: cmp byte ptr [bx],8
jne next
inc ax
next:
inc bx
loop s
統計數值大於8的位元組個數:jna next
統計數值小於8的位元組個數:jnb next
3.串指令的使用
mov ax,data
mov ds,ax
mov es,ax
mov di,0
mov si,16
mov cx,8
cldrep movsw
4.關於popf
和pushf
通過這兩個指令,就可以取出或修改標誌暫存器的值
下面程式執行後,ax為多少?
mov ax,0
push ax
popf ;標誌暫存器為0
mov ax,0fff0h
add ax,0010h ;ax = 0 zf為0,pf為1,cf為1,of為0,sf為0
pushf
pop ax ;ax等於標誌暫存器的值
and al,11000101b
and ah,00001000b
得到ax=00000000_01000101
即0045h 組合語言學習
參考書籍 組合語言 王爽 著 清華大學出版社 選單導航 一 彙編基礎知識 二 暫存器和常見彙編指令演示 一 基礎知識 1 彙編指令是機器指令的助記符,同機器指令一一對應 2 每一種cpu都有自己的彙編指令集 3 cpu可以直接使用的資訊在儲存器中存放 4 在儲存器中指令和資料沒有任何區別,都是二進位...
組合語言學習
持續更新 彙編指令 1.mov指令 mov是乙個傳送指令,可以實現以下操作 有一點需要注意,資料不能直接傳給段暫存器,比如mov ds,100h就是錯誤的。但是可以將其他暫存器中的值賦給段暫存器。段暫存器有cs,ds,ss,es等。如果你想知道為什麼,那就可以去了解一下關於每條指令的硬體實現。後面還...
組合語言學習筆記
學習參考資料 大灰狼 講彙編 資料匯流排,位址匯流排,控制匯流排。位址匯流排有多少條就決定了cpu最大的記憶體使用量。80386有32位位址匯流排,所以它的定址能力就是4g.暫存器 通用暫存器,段暫存器,ax暫存器 通用暫存器,存放資料。高位位元組ah,低位位元組al。實體地址表示方法 位址加法器,...