编译原理学习笔记(第三章 寄存器(内存访问))

寄存器(内存访问)

之前从从访问内存的角度再来学几个重要的寄存器。

3.1、内存中字的储存

CPU中,用16位寄存器来储存一个字(两个字节),但是内存单元是字节单元(一个单元存放一个字节),所以一个字要用两个连续的内存单元来存放,低位字节存放低地址单元中,高位字节存放在高地址单元中。

所以我们提出字单元的概念:**字单元,即存放一个字型数据(16位)的内存单元,由两个地址连续的内存单元组成。**一般将起始地址为N的单元称为N地址字单元。

3.2 DS和[address]

CPU要读取一个内存单元的时候,必须先给出这个内存单元的地址。比如要读取10000H单元的内容,可以用如下的程序段进行:

mov bx, 1000H
mov ds, bx
mov al, [0]

上面的三条指令将 10000H(1000:0)中的数据读到 al 中。

由于8086CPU不支持将内存数据直接读入ds(段寄存器),所以需要先将内存数据先读入bx(通用寄存器),然后再将数据在寄存器间转移。

“ mov al, [0] ”中 “[ ]” 表示一个内存单元, “[ ]” 中的 0 表示内存单位的偏移地址,而内存的段地址是 8086CPU 从 ds 寄存器中自动读取的,所以在把数据移入寄存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值