汇编语言笔记_2

2.寄存器

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

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通常用来存放一般性的数据,称为通用寄存器

8086CPU的 AX、BX、CX、DX这4个寄存器都可分为两个可独立使用的 8 位寄存器来用:

AX可分为AH(高八位)和AL(低八位),BX可分为BHBL,以此类推

image-20250217100506882

2.2 几条汇编指令

image-20250217100745022

注意:

  • 在写一条汇编指令或一个寄存器的名称时不区分大小写

  • 对于溢出的情况,溢出的部分直接丢失。

  • al参与运算时,是作为一个独立的8位寄存器来使用的,和ah没有关系,al的进位不会存储在ah中

2.3 8086CPU

8086是16位机(16位结构的CPU、16位结构、字长位16位)具有以下特性:

  • 运算器一次最多可以处理16位数据
  • 寄存器最大宽度为16位
  • 寄存器与运算器之间的通路位16位

8086CPU有20位地址总线,可以达到1MB寻址能力。又是16位结构,在内部一次性 处理、传输、暂时存储的地址为16位

8086CPU采用一种在内部用两个16位地址合成的方法来形成一个20位的物理地址。

image-20250217101547448

地址加法器采用物理地址=段地址x16+偏移地址的方法用段地址和偏移地址合成物理 地址,实际上就是段地址左移4位在加上偏移地址就是对应的物理地址

例如:

image-20250217101920671

一般地说,“基础地址+偏移地址=物理地址”8086CPU中,段地址x16看作基础地址

注意前面提到的“段”的概念。事实上,内存没有分段,由于8086CPU用 “基础地址(段地址x16)+偏移地址=物理地址”的方式给出内存单元的物理地址,使得我们可以用分段 的方式来管理内存。

在编程时可以根据需要,将若干地址连续的内存单元看作一个段 ,用段地址x16定位 段的起始地址(基础地址),用偏移地址定位段中的内存单元

有两点需要注意: 段地址x16必然是16的倍数,所以一个段的起始地址也一定是16的倍数;偏移地址为16位,16位地址的寻址能力为64KB,所以一个段的长度最大 为64KB。

CPU可以用不同的段地址和偏移地址来形成同一个物理地址

2.4 CS和IP

8086CPU在访问内存时要由相关部件提供内存单元的段地址和偏移地址,送入地址加法器合成物理地址。段地址在8086CPU的段寄存器中存放。段寄存器有4个:CS、DS、SS、ES。这里只看CS

CS是代码段寄存器,IP是指令指针寄存器,它们指示了CPU当前要读取指令的地址

任意时刻,设CS中的内容为 M,IP中的内容为N,8086CPU将从内存Mx16+N单元开始,读取一条指令并执行。

也可以理解为,任意时刻,CPU将CS:IP指向的内容当做指令执行

例如:

image-20250217103137525

image-20250217103217760

image-20250217103201878

CPU的工作流程简述如下:

(1)从CS:IP指向的内存单元读取指令,读取的指令进入指令缓冲 器;

(2)IP=IP+所读取指令的长度,从而指向下 一条指令;

(3) 执行指令。转步骤(1),重复

在8086CPU加电启动或复位后(刚开始工作时)CS和IP被设置为CS=FFFFH,IP=0000H。即从FFFF0H单元读取指令执行,这个单元中的指令是8086PC机开机后执行的第一条指令

2.5 CS、IP的修改

CPU中,程序员能够用指令读写的部件只有寄存器,可以通过改变CS和IP的内容来控制CPU执行目标命令

mov可以改变AX、BX、CX、DX即通用寄存器的值,但不能用于设置CS、IP的值

jmp:若想同时修改CS、IP的内容,可用形如“jmp 段地址: 偏移地址”的指令完成

例如:

image-20250217103947433

若只想修改IP,可用形如 “jmp某一合法寄存器”的指令完成,如

小结

  • CPU只认被CS:IP指向的内存单元中的内容为指令
  • 8086CPU提供转移指令修改CS、IP的内容。
posted @   Q7h2q9  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示