模块化程序设计
call跳出 ret 返回
call ret指令
ret:
返回到栈中存放地址
- ret:修改IP内容
- retf:修改cs和ip的内容
call:
依据位移进行转移的 call 指令
- (sp)=(sp)-2
((ss)*16+(sp))=(ip) - (ip)=(ip)+16位位移
转移的目的地址在指令中的call指令
- (ip)=(ip)-2
((ss)*16+(sp))=(cs)
(sp)=(sp)-2
((ss)*16+(sp))=(ip) - (cs)=标号所在段的段地址
(ip)=标号在段中的偏移地址
转移地址在寄存器中的call指令 - (sp)=(sp)-2
((ss)*16+(sp))=(ip)
(ip)=(16位 reg)
转移地址在内存中的call指令
- call word ptr 内存单元地址
- call dword ptr 内存单元地址
call和ret的配合使用
~
mul指令
类似于除法 div
- 两个相乘的数:要么都是8位,要么16位
如果都是8位,一个默认放在 AL 中,另外放在8位reg或者内存字节单位中;如果是16位,一个默认在AX中,另一位放在16位reg或者内存字节单位 - 结果:如果是 8 位乘法,结果默认放在AX中;如果是 16 位乘法,结果高位默认在DX中存放,低位在AX中放