注册 登录
编程论坛 汇编论坛

我是新手,求高手指点寻址问题

buctx982zz21 发布于 2011-05-08 12:08, 483 次点击
最近再看IBM-PC汇编语言程序设计第二版(沈美明,温冬婵),其中一道题为:给定(IP)=2BC0H,(CS)=0200H,位移量D=5119H,(BX)=1200H,(DS)=212AH,(224A0H)=0600H,(275B9H)=098AH,试为以下的转移指令找出转移的偏移地址。
(1) 段内直接寻址
答:(1) JMP  NEAR  PTR  5119H   ;(IP)=5119H+((IP)+03H)=7CDCH,物理地址PA=09CDCH
为什么IP地址那要+03H呢?
3 回复
#2
zaixuexi2011-05-08 14:50
1. 这个问题是描述上的差别
因为ip这个时候已经指向了本条指令的下一条指令的地址.
而你这个描述的ip还是本条指令的ip,所以你可以写成ip = (ip_old + 本条指令的长度) + offset
2. 第二种描述方式
ip = (ip_new) + offset
3. 两种方式的offset都是相同的
4. 编译器就是这么处理的,暂时不用深究
5. 上图,观察5014+0105 = 5119
只有本站会员才能查看附件,请 登录


#3
buctx982zz212011-05-08 22:40
谢谢
#4
zaixuexi2011-05-08 23:14
能比原来多懂一点就好
1