第010課 彙編-add,sub,push,pop
阿新 • • 發佈:2018-11-26
add,sub
push,pop
內容綱要
1.add,sub
2.push,pop
3.EFL
詳細內容
1.add,sub
加減法指令
(sub)add reg/m,reg/m/Im
當add m,m時,提示improper operand type,第一個數必須為容器
兩個數相加減,結果存放在第一個運算元。
2.push,pop
資料的傳輸指令,主要是移動資料。傳輸指令有一特點就是可以變型,其中push和pop兩條指令均可以用mov與lea兩指令來代替操作
push reg/im m(Scor)
pop reg/m (Dest)
push:
mov dword ptr ds:[esp-4],Scor
lea esp,dword ptr ds:[esp-4]
源運算元不可被改變,目的運算元可改變。
push esp: esp被改變,所以得先賦值再存地址
lea esp,dword ptr ds:[esp-4]
mov dword ptr ds:[esp-4],esp
pop:
lea esp,dword ptr ds:[esp+4]
mov Dest,dword ptr ds:[esp-4]
3.EFL標誌暫存器
f e d c b a 9 8 7 6 5 4 3 2 1 0
of df if tf sf zf af pf cf
課堂練習
1.add,sub
2.push reg/m/Im
pop reg/m
mov dword ptr ds:[esp-4],operand
lea esp,dword ptr ds:[esp-4]
pop reg/m
lea esp,dword ptr ds:[esp+4]
mov operand,dword ptr ds:[esp-4]
傳輸指令,兩個運算元不能同時為記憶體
大多數指令兩個運算元不能同時為記憶體,即在字串操作中STOS,STOD,STOW,MOVS中存在兩個記憶體
push,pop
內容綱要
1.add,sub
2.push,pop
3.EFL
詳細內容
1.add,sub
加減法指令
(sub)add reg/m,reg/m/Im
當add m,m時,提示improper operand type,第一個數必須為容器
兩個數相加減,結果存放在第一個運算元。
2.push,pop
資料的傳輸指令,主要是移動資料。傳輸指令有一特點就是可以變型,其中push和pop兩條指令均可以用mov與lea兩指令來代替操作
push reg/im m(Scor)
pop reg/m (Dest)
push:
mov dword ptr ds:[esp-4],Scor
lea esp,dword ptr ds:[esp-4]
源運算元不可被改變,目的運算元可改變。
push esp: esp被改變,所以得先賦值再存地址
lea esp,dword ptr ds:[esp-4]
mov dword ptr ds:[esp-4],esp
pop:
lea esp,dword ptr ds:[esp+4]
mov Dest,dword ptr ds:[esp-4]
3.EFL標誌暫存器
f e d c b a 9 8 7 6 5 4 3 2 1 0
課堂練習
1.add,sub
2.push reg/m/Im
pop reg/m
mov dword ptr ds:[esp-4],operand
lea esp,dword ptr ds:[esp-4]
pop reg/m
lea esp,dword ptr ds:[esp+4]
mov operand,dword ptr ds:[esp-4]
傳輸指令,兩個運算元不能同時為記憶體
大多數指令兩個運算元不能同時為記憶體,即在字串操作中STOS,STOD,STOW,MOVS中存在兩個記憶體