call和ret組成子程序的重要手段
(1)call指令:
a、將當前的IP或CS:IP壓入棧中
b、轉移
包括:
call 標號
call far ptr 標號
call 寄存器
call word ptr 內存單元地址 == push IP / jmp near ptr 內存單元地址
call dword ptr 內存單元地址 == push CS /push IP / jmp far ptr 內存單元地址
(2)ret指令
ret == pop IP
retf == pop IP /POP CS
(3)子程序一般方式
a、子程序中使用的寄存器入棧
b、子程序內容
c、子程序中使用的寄存器出棧
d、返回
(4)另外的mul指令,乘法要求兩個相乘的數字位數相同
如果8位,則一個乘數在ah中,另一個為8位寄存器或內存單元,結果在AX中
如果16位,則一個乘數在AX中,另一個為16位寄存器或內存單元,結果高位在DX中,低位在AX中
感覺寫匯編還是不順手啊,大家有什么好招沒,今天做書上題目折騰了好久。。。