检测点9.1(3)用debug测试出跟答案不一样
本帖最后由 tianmo 于 2019-8-15 16:22 编辑检测点9.1
(3)用Debug查看内存,结果如下:
2000:1000 BE 00 06 00 00 00 ......
则此时,CPU执行指令:
mov ax,2000h
mov es,ax
jmp dword ptr es:
后,(cs)= 0006H ,(ip)= 00BEH
我用debug测试出跟答案不一样
我又写代码验证了一把,证明 MASM 6.11 编译器是可以正确识别这条指令的:
jmp dword ptr es:
人家王爽老师说的没错。
楼主之所以困惑,是因为 Debug.exe 不能正确识别 dword 修饰符,进而被忽略造成。 本帖最后由 jackz007 于 2019-8-15 18:38 编辑
这种写法得到的效果是段内跳转
es:
jmp dword ptr
如果希望跨段跳转,应该这么写:
es:
jmp far ptr
jackz007 发表于 2019-8-15 18:21
这种写法得到的效果是段内跳转,跳转目的地是新的代码偏移:00BE
如果希望跨段跳转,应该 ...
王爽的书上是这么写的,我用汇编程序也可以得到cs=0006h tianmo 发表于 2019-8-15 18:42
王爽的书上是这么写的,我用汇编程序也可以得到cs=0006h
既然这样,那你的问题还继续存在吗?
页:
[1]