汇编语言(王爽版)学习笔记 第二章 寄存器【CPU工作原理】(3)

2.9 段寄存器

  • 段寄存器是提供段地址的
  • 8086CPU有4个段寄存器:CS、DS、SS、ES
  • 当8086CPU要访问内存时,由这4个段寄存器提供内存单元的段地址

2.10 CS和IP

CS和IP是8086CPU中最关键的寄存器,它们指示了CPU当前要读取指令的地址。

CS为代码段寄存器、IP为指令指针寄存器

8086PC读取和执行指令的相关部位

8086PC工作过程的简要描述

  • 在8086CPU加电启动或复位后(即CPU刚开始工作时)CS和IP被设置为CS=FFFFH,IP=0000H。
  • 即在8086PC机刚启动时,CPU从内存FFFF0H单元中读取指令执行。
  • FFFF0H单元中的指令是8086PC机开机后执行的第一条指令。
  • 在任何时候,CPU讲CS、IP中的内容当作指令的段地址和偏移地址,用它们合成指令的物理地址,到内存中读取指令码,执行。
  • 如果说,内存中的一段信息曾被CPU执行过,那么,它所在的内存单元必然被CS:IP指向过。

2.11 修改CS、IP指令

mov指令可以改变8086CPU大部分寄存器的值,被称为传送指令。

mov指令不能用于设置CS、IP的值

转移指令

同时修改CS、IP中的内容:
jmp 段地址:偏移地址
功能:用指令中给出的段地址修改CS,偏移地址修改IP。

仅修改IP的内容:
jmp 某一合法寄存器

mov ax,200
jmp ax(类似于mov IP,ax)

功能:用寄存器中的值修改IP

2.12 代码段

  • 对于8086PC机,在编程时,可以根据需要,将一组内存单元定义为一个段。
  • 可以将长度为N(N<=64KB)的一组代码,存在一组地址连续、起始地址为16的倍数的内存单元中,这段内存是用来存放代码的,从而定义了一个代码段。

CPU只认被CS:IP指向的内存单元中的内容为指令。
所以要将CS:IP指向所定义的代码段中的第一条指令的首地址。


小结

  1. 段地址在8086CPU的寄存器中存放。当8086CPU要访问内存时,由段寄存器提供内存单元的段地址。8086CPU有4个段寄存器,其中CS用来存放指令的段地址。
  2. CS存放指令的段地址,IP存放指令的偏移地址。
  3. 8086机中,任意时刻,CPU将CS:IP指向的内容当作指令执行。
  4. 8086CPU的工作过程:
    (1)从CS:IP指向内存单元读取指令,读取的指令进入指令缓冲器;
    (2)IP指向下一条指令;
    (3)执行指令;(转到步骤(1),重复这个过程)
  5. 8086CPU提供转移指令修改CS、IP的内容

检测点2.3

在这里插入图片描述
修改4次ip
在这里插入图片描述
在这里插入图片描述
最后ip=0

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,汇编语言王爽第三的复习资料汇总如下: 1. 第〇章 课程资料:包括课件、源代码、电子书和课后习题答案。 2. 第一章 基础知识:介绍了汇编语言的编程思想和硬件系统的结构,以及汇编语言的主体——汇编指令。 3. 第二章 寄存器CPU工作原理):详细介绍了CPU工作原理寄存器的作用。 4. 第三章 寄存器(内存访问):介绍了如何使用寄存器进行内存访问。 5. 第四章 第一个程序:演示了如何编写第一个汇编程序。 6. 第五章 [BX]和loop指令:介绍了[BX]和loop指令的使用方法。 7. 第六章 包含多个段的程序:介绍了如何编写包含多个段的程序。 8. 第七章 更灵活定位内存地址:介绍了如何更灵活地定位内存地址。 9. 第八章 数据处理的两个基本问题:介绍了数据处理中的两个基本问题——进位和溢出。 10. 第九章 转移指令的原理:介绍了转移指令的原理和使用方法。 11. 第十章 call和ret指令:介绍了call和ret指令的使用方法。 12. 第十一章 标志寄存器:介绍了标志寄存器的作用和使用方法。 13. 第十二章 内中断:介绍了内中断的概念和使用方法。 14. 第十三章 int指令:介绍了int指令的使用方法。 15. 第十四章 端口:介绍了如何使用端口进行输入输出操作。 16. 第十五章 外中断:介绍了外中断的概念和使用方法。 17. 第十六章 直接定址表:介绍了直接定址表的概念和使用方法。 18. 第十七章 使用BIOS进入键盘输入和磁盘读写:介绍了如何使用BIOS进行键盘输入和磁盘读写操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值