首页 > 编程知识 正文

汇编课程设计二(汇编间址寄存器)

时间:2023-05-03 05:46:20 阅读:94447 作者:4402

为了用汇编语言控制我们想控制的外围设备,需要通过控制器发送控制命令。 其控制命令保存在哪里,保存在CPU内部的构成要素之一的寄存器中。

1、CPU内部一般由4个部分组成

(1)运算器)进行信息的处理

(2)寄存器进行信息的存储

)3)控制器控制各种设备进行动作

(4)内部总线)在内部设备之间交换数据2、汇编指令的示例

2、理解物理地址正如其名,物理地址是硬件存储器单元的地址,CPU通过地址总线访问物理地址。

物理地址(8086CPU的示例)=段地址*16偏置地址

为了更好地理解物理地址,让我举个例子

上面的照片:

1 )从学校到图书馆走2826米,这个2826米被认为是图书馆的物理地址

2 )从学校到图书馆走2000米,从体育馆走826米到图书馆,最初的距离是2000米,是相对于起点的基础地址。 (起点是我们存储器地址的开始地址。 第二个距离是826米,是到基础地址的偏移地址。

这相当于基本地址=段地址*16、物理地址=基本地址偏移地址

3、什么是寄存器?

段寄存器是存储段地址的存储器,常用的段寄存器是CS、DS、SS、ES。

我们主要使用CS:IP这两个寄存器。 这两个寄存器分别是代码段寄存器和指令指针寄存器。 下图简单地表示8086CPU的读取、指令执行的结构

在上图中,在CS:IP中找到物理地址,“地址加法器”“输入输出控制电路”“20是地址总线”“D8,23,01 -在汇编中”数据总线“指令缓冲区”“执行控制器”AX通用寄存器

4、DS段寄存器的应用

mov bx,1000H

mov ds.bx

莫亚尔,0

上述3个命令将1000h(1000:0 )的数据读取至al

5、栈

每个平台的CPU都有自己的堆栈设计。 8086CPU也不例外。 堆栈的形式在LIFO之后出现,推式表示堆栈,POP表示堆栈。 例如,push ax将寄存器ax的数据发送到堆栈,pop ax取出堆栈内的数据,分配到ax。 8086堆栈操作以字为单位,即2字节。

下图为通过8086CPU执行推送指令的步骤

通过8086CPU执行pop指令的步骤如下图所示

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。