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


