https://www.bilibili.com/video/BV1zW411n79C?p=10
第十个视频
段寄存器
8086CPU中有四个段寄存器,分别是CS,DS,SS,ES
现在的计算机就不止4个了
CS和IP
cs和ip是8086中最关键的寄存器
cs:代码段寄存器,存段地址
ip:指令指针寄存器,存偏移地址
在8086启动或者复位(CPU刚开始运作)后,CS = FFFFH, IP = 0000H
即最开始是从CS = FFFFH
开始读取指令的
那么CS和IP怎么改值呢?
mov指令不能用,8086可以使用转移指令
jmp 段地址:偏移地址
例如:
jmp 2AE3:3
jmp ax
类似
mov IP,ax
如何使代码段中的指令被执行呢?
用jmp指向即可,CPU只认为被CS:IP指向的才是指令,所以要将CS:IP指向所定义的代码段中的第一条指令的首地址
从CS:IP读取的指令进入指令缓冲区
习题:
下面的3条指令执行后,CPU几次修改IP?
都是在什么时候?最后IP中的值是什么?
mov ax, bx
sub ax, ax
jmp ax