3.寄存器(内存访问)《汇编语言》

本文介绍了8086CPU中寄存器如何存储字,详细阐述了DS和地址的关系,字的传送,以及栈的操作,包括push和pop指令的使用,同时讨论了栈顶超界的问题。
摘要由CSDN通过智能技术生成

第三章 寄存器(内存访问)

3.1 内存中字的存储

​ CPU中,使用16位寄存器来存储一个字.高8位存放高位字节,低8位存放低位字节.内存单元是字节单元,所以需要用两个地址连续的内存单元来存放,这个字的低位字节存放在低地址中,高位字节存放在高地址中.

​ 字单元: 即存放一个字型数据(16位)的内存单元,由两个地址连续的内存单元组成.

​ 我们将起始地址为N的字单元简称为N地址字单元.

3.2 DS和[address]

​ 8086CPU中有一个DS寄存器,通常用来存放访问数据的段地址.

​ 如果我们要读取10000单元的内容,程序如下.

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

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

​ "[…]“表示一个内存单元,”[…]"中的0表示内存单元的偏移地址.指令执行时,8086CPU自动取ds中的数据为内存单元的段地址.

​ 8086CPU不支持将数据直接送入段寄存器的操作,ds是一个段寄存器.

3.3 字的传送

​ 因为8086CPU为16位结构,有16根数据总线,所以可以一次性传送16位数据,即一个字.只要在mov指令中给出16位的寄存器就可以进行16位数据的传送.比如.

​ mov bx,1000H
​ mov ds,bx
​ mov ax,[0] ;1000:0处的字型数据送入ax
​ mov [0],cx ;cx中的16位数据送到1000:0处

​ 内存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值