汇编语言 寄存器

寄存器

一个典型的CPU由运算器,控制器,寄存器(CPU工作原理)等器件构成,这些器件靠内部总线相连

运算器进行信息处理
寄存器进行信息存储
控制器控制各个器件进行工作
内部总线连接各种器件,在它们之间进行数据传送

8086CPU14个寄存器
AX,BX,CX,DX,SI,DI,SP,BP,IP,CS,CC,DS,ES,PSW
所有寄存器都是16位,可以存放两个字节,即16个二进制数据

通用寄存器
AX BX CX DC通常用来存放一般性的数据
每个寄存器可以分为两个独立的八位寄存器
AX > AH,AL
BX > BH,BL
CX > CH,CL
DX > DH,DL
高八位(8-15)寄存器构成AH(高位)
低八位(0-7)寄存器构成AL(低位)

字在寄存器中的存储
字节(byte)8个二进制组成
字(word)两个字节组成,分为高位字节和低位字节,分别存储到高,低位寄存器
字=0100111000100000
AX=0100111000100000 AH=01001110 AL=00100000
16进制一位=二进制四位

几条汇编指令
MOV AX,18 将18送入寄存器AX
MOV AH,78 将78送入寄存器AH
ADD AX,8 将寄存器AX中的数值加上8
MOV AX,BX 将寄存器BX中的数据送入寄存器AX
ADD AX,BX 将AX和BX中的数值相加,结果存在AX中

物理地址
每一个内存单元在内存地址空间中都有一个唯一的地址,这个地址我们称为物理地址
CPU通过地址总线送入存储器的必须是一个内存单元的物理地址,在CPU向地址空间发出物理地址之前,必须要在内部先形成这个物理地址

8086是16位结构的CPU
运算器一次最多库处理16位数据
寄存器的最大宽度为16位
寄存器和运算器之间的通路是16位
在8086的内部,能够一次性处理,传输,暂时存储的信息长度最大是16位

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

段的概念
在编程时可以根据需要,将若干个地址连续的内存单元看作一个段,用段地址16定位起始地址(基础地址)用偏移地址定位段中的内存单元
注意:段地址
16必然时16 的倍数,所以一个段起始地址也一定是16的倍数
偏移地址为16位,16位地址的寻址能力是64K,所以一个段的长度最大时64k

段寄存器(8086)
四个段寄存器(CS SC SS ES)
CPU访问内存时由这四个段寄存器提供内存单元的段地址
CS和IP
CS和IP是8086CPU中两个最关键的寄存器,它们指示了CPU当前要读取指令的地址
CS为代码段寄存器,IP为指令指针寄存器
在8086中 任意时刻 设CS中的内容为M ,IP当中的内容为N,计算机都将从M*16+N的内存单元开始,读取一条指令并执行(每条指令的长度不同)每次执行完以后IP=(IP+指令长度)

修改CS: IP指令
在CPU中,程序员能够用指令读写的部件只有寄存器
CS ,IP中的内容决定了CPU从何处开始执行指令,修改CS IP中的内容来控制CPU执行目标指令
能够修改CS IP的内容的指令被称为转移指令
Jmp 段地址:偏移地址
jmp 2AE3:3 修改后CS=2AE3 IP=0003 CPU将从2AE33处读取指令(2AE3*16+0003)
jmp 3:0B16 修改后CS=0003 IP=0B16

Jmp 某一合法寄存器(偏移地址IP单独修改)
Jmp ax 执行前AX=1000H CS=2000 IP=0003
执行后 AX=1000H CS=2000 IP=1000
代码段
讲一段内存当成代码段仅仅是我们在编程时的一种安排,计算机并不会自动执行,必须将CS:IP指向定义代码段中的第一条指令的首地址

----------------------------------------------------------------------------------------------抄书系列《王爽汇编语言第三版》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值