一、 CS 和IP
-
CS为代码段寄存器(code segment),IP为指令指针寄存器,他们指示了CPU当前要读取指令的地址.
-
任意时刻,8086CPU都会将CS:IP指向的指令作为下一条需要取出执行的指令.
CPU是不会停的,CS : IP中的值也不会空的,继续执行
注意: IP 只为 CS服务,其他的段寄存器中的偏移地址不由IP提供.
通过上面的流程图我们可以看出8086指令的执行过程简要描述如下:
-1) 从CS:IP 指向的内存单元读取代码指令,读取的指令进入指令缓冲器.
-2)IP = IP + 所读取的指令的长度,从而指向下一条指令地址.
-3)执行指令. 指令执行完转到步骤(1),重复这个过程.
二、指令和数据
-
在内存或者磁盘上,指令和数据没有任何区别,都是用二进制 信息(数据).
-
CPU 在工作的时候把有的信息看做是指令,有的数据看做是数据,为同样的信息赋予了不同的含义.
**例如,内存中的二进制信息 1000 1001 1101 1000, 计算机可以把他看做为大小是89D8H 的数据来处理,也可以将其看做指令 mov ax,bx 来执行
1000 1001 1101 1000 --->89D8H (数据)
1000 1001 1101 1000 --->mov ax,bx (程序\指令)
- CPU 根据什么将内存中的信息看做指令?
- CPU 将 CS:IP指向的内存单元中内容看做指令.(CPU只认CS:IP)
- 如果内存中的某段内容曾被CPU执行过,那么他所在的内存单元必然被CS:IP指向过.
网友评论