关于标号的问题
1000:0 b80000 mov ax,01000:3 e80100 call s
1000:6 40 inc ax
1000:7 58 s:pop ax
为什么答案是6不是7 ,执行第一条指令的时候ax=0,执行第二条指令时push s入栈且指针指向7,执行4条指令的时候等价于MOV ax,s
。我想问的是此时标号s是等于7还是6.。。。。为什么? 0x1. 这几条指令的意思不是酱紫理解的。
0x2. 执行call s,首先push ip(也就是push 6)再 jmp s。接着执行 pop ax,即将ip的值传给ax,此时ax=6 小靚同学Leon 发表于 2014-10-21 14:18
0x1. 这几条指令的意思不是酱紫理解的。
0x2. 执行call s,首先push ip(也就是push 6)再 jmp s。接着执 ...
谢谢,刚才尝试了一下。。。之前我一直以为标号的值是标号前的第一条指令的第一个地址。原来是第一条指令减1的一个地址。。。。。s:pop ax 一直以为s的地址是pop ax的首地址原来不是。。。。为什么不是第一条指令的首地址反而是减1后的地址。。。求解 不懂你的意思 小靚同学Leon 发表于 2014-10-21 14:18
0x1. 这几条指令的意思不是酱紫理解的。
0x2. 执行call s,首先push ip(也就是push 6)再 jmp s。接着执 ...
call s能不能这样理解。。。。执行call s后ip跳到下一条指令也就是等于6,接着push ip再jmp s。
页:
[1]