寄存器
2.9 段寄存器
CPU访问内存时要用到段地址+偏移地址,呢么段地址保存在哪里呢?在段寄存器中
2.10 CS IP
1.CS代码段寄存器 IP指令指针寄存器
2.8086CPU将从CSX16+IP单元开始读取指令执行
3.过程:A从CS:IP指向的内存单元读指令,读取的指令进入指令缓冲器
BIP=IP+指令长度,从而指向下一条指令
C执行指令。转到步骤A
4.CPU加电启动或复位后CS被置成FFFFH,IP被置成0000H,所以FFFF0H单元中的指令是8086PC机开启后第一条指令
2.11修改CS IP指令
1.我们可以通过MOV AX,123来改变寄存器中的值,但是MOV指令不能用于设置CS IP的值,(因为8086CPU没提供这个功能)
这个MOV被称为传送指令。
2.要修改CS IP我们用JMP指令,称为转移指令
3.jmp2AE3:3,执行后;CS=2AE3H,IP=0003H,CPU将从2AE33H处读取指令。
即,用指令中给出的段地址修改CS,偏移地址修改IP
4.如果只想修改IP内容,用JMP AX,如用JUM AX,指令执行前AX=1000H,CS=2000H,IP=0003H
后:AX=1000H,CS=2000H,IP=1000H,
含意上好似:MOV IP,AX
错题
下面指令执行后,CPU几次修改IP,在什么时候?
MOV AX,BX
SUB AX,AX
JMP AX
一共4次,第一一次读取完MOV AX,BX,第二次读取完SUB AX,AX,第三次读取完JMP AX;第四次执行JMP AX将IP修改为AX