栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

汇编语言第2课、寄存器

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

汇编语言第2课、寄存器


CPU 由运算器、控制器和寄存器等器件构成,这些器件靠内部总线相连。前一章的总线相对于 CPU 内部来说是外部总线。内部总线实现 CPU 内部各个器件之间的联系,外部总线实现 CPU 和主板上其他器件的联系。


2.1 通用寄存器

8086CPU 的所有寄存器都是 16 位的,可以存放两个字节,AX、BX、CX、DX这四个寄存器被称为通用寄存器。

为兼容上一代 8 位CPU,这四个通用寄存器可以分为两个独立的8位寄存器来使用:



ah 和 al 是两个独立的 8 位寄存器,不会进位。

在进行数据传送或运算时,要注意指令的两个操作对象的位数应该是一致的,8 位寄存器和 16 位寄存器之间无法传送数据。


2.2 物理地址
  • 16 位 CPU 的特性:

    由于 8086 CPU 地址总线为 20 位,可以有 1 MB 的寻址能力,但 8086 CPU是 16 位 CPU,一次只能送出 16 位地址,寻址能力只有 64KB,因此在内部用两个 16 位地址合成的方法来形成一个 20 位的物理地址。


2.3 段寄存器

8086 CPU 有 4 个段寄存器:CS(code)、DS(data)、SS(stack)、ES(extra)

  • 8086CPU 的工作过程可以简要描述如下:

总结:CPU 将 CS:IP 指向的内存单元中的内存看做指令,因为,在任何时候,CPU 将 CS、IP 中的内容当做指令的段地址和偏移地址,用他们合成指令的物理地址,到内存中读取指令码,执行。如果说,内存中的一段信息曾被 CPU 执行过的话,那么它所在的内存单元必然被 CS:IP指向过。


2.4 修改指令


CPU 从何处执行指令是由CS、IP 中的内容来决定的,可以通过改变CS、IP 的内容来控制 CPU 执行目标指令。

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

仅修改IP的内容:jmp ax;


2.5 Debug 的使用


实验任务1:



实验任务2:


实验任务3:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/512542.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号