[004][汇编语言]检测点2.3 CS IP jmp 指令执行 段地址寄存器

检测点2.3

《汇编语言》检测点2.3

遵循指令被送入指令缓冲器 -> IP值自动增加 -> 指令被执行的顺序 : 四次修改

  • mov ax,bx 被送到 指令缓冲器 之中
  • IP自动增加【第一次修改】
  • mov ax,bx被执行
  • sub ax,ax被送到 指令缓冲器 之中
  • IP自动增加【第二次修改】
  • sub ax,ax被执行,ax=ax-ax, ax中的内容变成0000H
  • jmp ax被送到 指令缓冲器 之中
  • IP自动增加【第三次修改】
  • jmp ax指令被执行 ,就是讲IP的内容修改成0000H【第四次修改】

8086CPU 读取执行指令过程的简要描述

逻辑结构展示

8086 CPU 逻辑结构展示

8086CPU 读取执行指令过程的简要描述

1、从CS:IP 指向的内存单元读取指令,读取的指令进入指令缓冲器
2、IP寄存器内的值自动增加,指向下一条指令
3、执行指令,并转到步骤1

8086 CPU 寄存器

  • 8086CPU,有一个叫做IP指令指针寄存器
  • 8086CPU ,有4个段地址寄存器:CS DS SS ES
  • CS代码的段地址寄存器
  • CPU将 CS:IP(即段地址X16+偏移地址)指向的内存单元中的内容看作是指令(而非数据
  • 8086CPU,加电启动或者复位后,CS=FFFFH,IP=0000H,因此,CS:IP=FFFF0H单元中的指令是8086PC机器开机后执行的第一条指令

汇编指令

汇编指令  jmp 2AE3:3
执行后  CS = 2AE3H  IP=0003H
CPU 将从 2AE33H 处开始读取指令

  • jmp 某一合法寄存器 : 用寄存器中的值修改IP寄存器中的值
jmp ax 
指令执行前 ax=1000H CS=2000H IP=0003H
指令执行后 ax=1000H CS=2000H IP=1000H

IP寄存器中的值被修改成和ax一样的了
  • jmp 指令是一种转移指令mov指令是一种传送指令

IP 寄存器的自动增加

  • 执行的指令占用了 2 个内存单元,IP寄存器的值就会自动加 2
  • 执行的指令占用了 3 个内存单元,IP寄存器的值就会自动加 3
  • 一个内存单元存放一个Byte(字节),也写作一个B,3个内存单元意味着长度就是3Byte,(点我复习 内存单元, 见小标题-地址宽度)

8086CPU 读取,执行一条指令的过程

  • 书上本章的图解是step-by-step的,相当漂亮,强烈推荐!

《汇编语言(第3版)》 第2章 寄存器 26页~29页


图2.11

图2.12~2.14

图2.15~2.17

图2.18~2.19
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容