7.29 王爽汇编语言(二十六)

中间笔记

call 指令不能实现短转移;短转移修改 IP 的范围为 -128 ~ 127,所以我可以理解为修改 IP 的范围不能小于这个 范围吗?对的,因为 call 标号等价于 push IP 然后 jmp near ptr 标号(这里即近转移)

检测点 10.2

题目:下面的程序执行后,ax 中的数值为多少?

内存地址    机器码          汇编指令
1000:0      b8 00 00        mov ax, 0
1000:3      e8 01 00        call s
1000:6      40              inc ax
1000:7      58              s:pop ax

解析:call s 相当于将当前 IP 压入栈中,然后跳转到 s 处执行, ax 即当前 IP 的内容,当前 IP 是 6(指向下一条指令的偏移地址),所以 ax 为 6;

总结

~

Last Updated:
Contributors: Hunter-0x07