梦U颜 发表于 2014-4-26 09:20:14

汇编检测点9.2

assume cs:code, ds:data

data segment
   db 0,0,0          ;为什么这里填了3个0就能满足jmp word ptr 能够使cs:ip指向第一条指令
data ends             我打其他的数就不行,为什么?急啊,大神帮帮忙,谢谢

code segment

start:
      mov ax, data
      mov ds, ax
      mov bx, 0
      jmp word ptr
code ends

end start                                 
各位大神,教教小弟。

为之疯狂 发表于 2014-4-26 16:08:26

你运气不好。

微笑的好吧 发表于 2014-4-26 16:50:30

好奇怪, jmp word ptr 执行后应该指向的是第3个0开始的,从第3个0开始当成代码执行才对。。不懂、、、

vkevke_3437 发表于 2014-4-26 17:01:00

好好复习下jmp word ptr 指令 跳转到第一条指令即cs:,bx=0所以 jmp word ptr的要求是
ds:字的内容必须为0   所以本题最少需要定义3个字节 且后2个字节必须为0
例如:定义db 1,0,0 也是正确的

微笑的好吧 发表于 2014-4-26 17:13:14

复习后,发现4l正解。。厉害

www5956 发表于 2014-4-26 17:53:56

这也拿出来问?:dizzy:

低手莫怪 发表于 2017-2-20 16:39:52

又有收获了,4l讲的对

吃货YA鸭 发表于 2017-6-16 14:27:00

首先你要知道jmp word ptr是属于什么跳转,word属于段内跳转,dword属于段间跳转。
已经题目是jmp word ptr
也就是说跳转的ip为,高位ds:,低位ds:。
已知是段内跳转,所以不用指定cs的值(没发生过变化),所以你只需要想办法指定ip的值为0就可以了。
页: [1]
查看完整版本: 汇编检测点9.2