8086cpu中ip是怎么知道要自动加2或3的
8086cpu中ip是怎么知道要自动加2或3的 根据指令的长度不同 早上好~ 楼主。问题:8086cpu中ip是怎么知道要自动加2或3的
分析,cpu 的执行指令的过程
1, 从cs:ip指向的内存单元读取指令,读取的指令进入指令缓冲器
2, ip =ip+读取指令的长度,从而指向下一条指令 (现在知道了吗?)
3,指行指令,重复上面的过程
比如:( 假设)
cs = 1000,ip = 0
(内存) (汇编指令对应的内存的内容) (汇编指令)
1000:0 b80000 ( 十六进制) mov ax, 0
1000:3 050100 addax, 1
1000 :6 40 inc ax
你看 cs = 1000,ip = 0, 这时cpu将从cs:ip指向的内存单元读取指令,读取的指令进入指令缓冲器, 也就是 b80000 (mov ax, 0), ip =ip+读取指令的长度, 也就是 ip = ip+3因为 b80000 (mov ax, 0)占 3个 字节,所以加3 , 加3后指向了 1000:3 ,这时cpu将从cs:ip指向的内存单元读取指令,读取的指令进入指令缓冲器, 也就是 050100 (addax, 1), ip =ip+读取指令的长度, 也就是 ip = ip+3 加3后指向了 1000:6 ,这时cpu将从cs:ip指向的内存单元读取指令,读取的指令进入指令缓冲器, 也就是 40 (incax), ip =ip+读取指令的长度, 也就是 ip = ip+1
好了~ 楼主我描述完毕希望能帮助你
页:
[1]