《汇编语言(第四版)》王爽 第二章 寄存器 笔记

第二章 寄存器

CPU中:
运算器:进行信息处理
寄存器:进行信息存储
控制器:控制各种器件进行工作
内部总线:连接各种器件,进行数据的传送
对于程序员来说,CPU中的寄存器无比重要,程序员通过改变各种寄存器中的内容实现对CPU的控制。

8086CPU有14个寄存器,分别是:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW。

2.1 通用寄存器

8086CPU所有寄存器都是16位的,可以存放两个字节。
其中AX、BX、CX、DX这4个寄存器通常用来存放一般性的数据,被称为通用寄存器
8086CPU为兼容早期8位寄存器CPU,其1个16位通用寄存器可以看作两个8位寄存器来使用,例如AX可分成高八位AH低八位AL使用。

2.2 字在寄存器中的存储

8086CPU可以处理两种尺寸的数据:
(1)字节:byte,1字节=8bit,可存储于一个8位寄存器中
(2)字:word,1字=2字节,可存在于一个16位寄存器中

其中16位寄存器分为高八位和低八位,例如0100111000100000表示十进制数20000,其高八位为78,低八位为32。四位二进制数可以看作一位十六进制数,所以可写为4E20。

2.3 几条汇编指令

举例:

汇编指令控制CPU完成的操作用高级语言的语法描述
Mov ax, 18将18送入寄存器AXAX = 18
Mov ah, 78将78送入寄存器AHAH = 78
Add ax, 8将寄存器AX中的数值加上8AX = AX + 8
Mov ax, bx将寄存器BX中的数据送入寄存器AXAX = BX
Add ax, bx将AX和BX中的数值相加,结果存在AX中AX = AX + BX

注意:汇编指令和寄存器名称不区分大小写

2.4 物理地址

物理地址:每个内存单元在存储空间中都有的唯一的一个地址,供CPU访问时使用。

2.5 16位结构的CPU

16位结构的结构特征:
运算器一次最多可以处理16位的数据
寄存器的最大宽度为16位
寄存器和运算器之间的通路为16位

2.6 8086CPU给出的物理地址的方法

8086CPU读写内存的步骤:
(1)CPU中的相关的部件提供两个16位的地址,一个称为段地址,另一个称为偏移地址;
(2)段地址和偏移地址通过内部总线送入一个称为地址加法器的部件;
(3)地址加法器将两个16位地址合成为一个20位的物理地址;
(4)地址加法器通过内部总线将20位物理地址送入输入输出控制电路;
(5)输入输出控制电路将20位物理地址送上地址总线;
(6)20位物理地址被地址总线传送到存储器

地址加法器原理:采用物理地址=段地址×16+偏移地址的方法合成。

2.7 “段地址×16+偏移地址=物理地址”的本质含义

8086CPU的寻址功能是“基础地址+偏移地址=物理地址”。

2.8 段的概念

内存没有分段,段的划分来自于CPU。CPU给出内存单元的物理地址的方式,决定我们用分段的方法管理内存

2.9 段寄存器

8086CPU中有4个段寄存器:CS、DS、SS、ES。

2.10 CS和IP

CS和IP是8086CPU中最关键的两个寄存器,它们指示了CPU当前要读取指令的地址,CS是代码段寄存器,IP是指令指针寄存器
8086机中,任意时刻,CPU将CS:IP指向的内容当作指令执行。

2.11 修改CS、IP的指令

主要使用mov或者jmp命令,可修改CS寄存器或IP寄存器的数据。

2.12 代码段

CPU只认被CS:IP指向的内存单元中的内容为指令,我们要让CPU执行我们放在代码段中的指令,必须要将CS:IP指向所定义的代码段中的第一条指令的首地址。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三元湖有大锦鲤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值