王爽汇编3.1(2)求解

这道题的CPU执行的指令该如何写?看了答案之后还是想不懂,要是从2000:0的地址开始写起到jmp0ff0:0100就跳到了0ff0:0100,而movax,2000和后... 这道题的CPU执行的指令该如何写?看了答案之后还是想不懂,要是从2000:0的地址开始写起到jmp 0ff0:0100就跳到了0ff0:0100,而mov ax,2000和后面的些指令是写在10000h的地址上的,跳到0ff0:0100
也执行不到10000h地址上的

mov ax,6622H CS=2000H IP=0003H
jmp 0ff0,0100 CS=0FF0H IP=0100H
mov ax,2000H CS=0FF0H IP=0103H
mov ds,ax CS=0FF0H IP=0105H
mov ax,[0008] CS=0FF0H IP=0108H
mov ax,[0002] CS=0FF0H IP=010BH
】CPU执行每条指令后,CS、IP和相关寄存器中的数值
怎样做出来的?求帮忙解答下
展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏30(财富值+成长值)
wuqing0312
推荐于2016-09-16 · TA获得超过311个赞
知道小有建树答主
回答量:220
采纳率:0%
帮助的人:224万
展开全部
CPU执行指令开始位置由CS:IP确认,初始CS=2000H,IP=0
16位模式下的内存地址计算为:段寄存器*16+指针地址,所以初始运行地址为:2000H*16+0=20000H
即:
mov ax,6622H CS=2000H IP=0003H
jmp 0ff0,0100 CS=0FF0H IP=0100H;jmp指令会修改CS和IP寄存器的值。跳转到的地址为:0FF0H*16+0100H=10000H
mov ax,2000H CS=0FF0H IP=0103H
mov ds,ax CS=0FF0H IP=0105H
mov ax,[0008] CS=0FF0H IP=0108H
mov ax,[0002] CS=0FF0H IP=010BH

没有跳转指令的情况下,IP的值始终指向下一条指令的位置。即下一个IP的值为当前IP值+当前指令长度

理解了这些,上面的就不成问题了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式