请进:王爽教材的第九章,检测点9.1

slwj 2011-04-11 03:29:11
王爽教材的第九章:转移指令的原理,检测点9.1,题目如下:
[Quote=引用]
assume cs:code

data segment
...
data ends

code segment
start: mov ax,data
mov ds,ax
mov bx,0
jmp word ptr [bx+1]
code ends

end start

若要使程序中的jmp指令执行后,CS:IP指向程序的第一条指令,应该在data段中定义哪些数据?
[/Quote]

求指教!多谢了!
...全文
328 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
slwj 2011-04-12
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 night_dystar 的回复:]

我们假设data段里是db 0,0,0。那么执行jmp word ptr [bx+1],由于bx=0,ds=data,那么就相当于执行jmp word ptr [1]。也就是说,将ip值修改为ds:[1]字单元中的内容,即为ds:[1]字节单元和ds:[2]字节单元中的内容,即为0。那么CS:IP自然就指向了CS:0处,即start处。这样很清楚了吧。所以就这道题而言,data段的1号字节和2号……
[/Quote]

非常感谢兄台~~!!
xiaoD 2011-04-11
  • 打赏
  • 举报
回复
我们假设data段里是db 0,0,0。那么执行jmp word ptr [bx+1],由于bx=0,ds=data,那么就相当于执行jmp word ptr [1]。也就是说,将ip值修改为ds:[1]字单元中的内容,即为ds:[1]字节单元和ds:[2]字节单元中的内容,即为0。那么CS:IP自然就指向了CS:0处,即start处。这样很清楚了吧。所以就这道题而言,data段的1号字节和2号字节必须为0,而0号字节和其他字节的值无所谓。所以可以db 0,0,0 也可以db 1,0,0,'a','b'。
xiaoD 2011-04-11
  • 打赏
  • 举报
回复
如何得知DS就是DATA段的值?这个是什么意思?mov ax,data mov ds,ax不就是将DATA段的地址给了ds段寄存器么?
xiaoD 2011-04-11
  • 打赏
  • 举报
回复
1)默认的
2)jmp word ptr [bx+1],作用是(IP)=word ptr ds:[bx+1],也就是如果[bx+1]字节单元和[bx+2]字节单元为 0,那么执行这条指令就是将ip修改为0。这个就是目的地址在指令中的jmp指令,通过直接修改ip,而不是利用位移来跳转的。所以CS:IP指向code段地第一条指令。
slwj 2011-04-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 night_dystar 的回复:]

db 0,0,0,你得保证word ptr [bx+1]为0,所以ds:[1]和ds:[2]字节单元必须为0。
[/Quote]
两个疑问:
1)如何得知DS就是DATA段的值?
2)题目要求的是要CS:IP指向程序的第一条指令,也就是:
start: mov ax,data
,而不是DATA段的开始
zhuhaipyb 2011-04-11
  • 打赏
  • 举报
回复
是的,改成0
slwj 2011-04-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 masmaster 的回复:]

db 0,0
保证ip等于0就可以啦
[/Quote]
不是太明白啊

jmp word ptr [bx+1]是个段内转移,执行后,它要CS:IP指向程序的第一条指令,也就是:
start: mov ax,data
的位置,疑惑的是,如何才可以知道start的位置?也就是这行代码对应的IP值是如何知道?

再有,以上的代码并没有设置DS的值,如何得知
jmp word ptr [bx+1]
的具体位置?

多谢!
xiaoD 2011-04-11
  • 打赏
  • 举报
回复
db 0,0,0,你得保证word ptr [bx+1]为0,所以ds:[1]和ds:[2]字节单元必须为0。
masmaster 2011-04-11
  • 打赏
  • 举报
回复
db 0,0
保证ip等于0就可以啦

21,453

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧