王爽汇编3.1(2)求解

2025-12-06 12:58:33
推荐回答(1个)
回答1:

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值+当前指令长度

理解了这些,上面的就不成问题了