1. 程式人生 > >第010課 彙編-add,sub,push,pop

第010課 彙編-add,sub,push,pop

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中存在兩個記憶體