汇编语言学习笔记二:访问内存的寄存器

本文介绍了8086CPU中内存地址的组成,强调了DS寄存器在内存访问中的作用,以及如何通过段地址和偏移地址访问内存。此外,详细阐述了栈操作的原理,包括PUSH和POP指令的工作方式,指出8086CPU中栈顶地址由SS和SP寄存器指示,并提醒程序员注意栈操作的越界风险。
摘要由CSDN通过智能技术生成

1、通过前一篇章的学习,知道CS和IP寄存器的内容合成的物理地址指向的是执行指令的地址。而访问内存也需要知道内存的地址,内存地址也是由段地址和偏移地址组成,8086CPU中默认存放内存地址段地址的寄存器是DS寄存器,偏移地址则是由[n]表示,n表示偏移量。例子:

MOVBX,1000H   //将1000H存放到BX寄存器当中

MOVDS,BX      //将BX中的值(1000H)存放到段寄存器DS中

MOVAL,[0]     //注意这里,既然是AL,那么移动是以字节为单位,

              //因为AL为AX的低位,长度为8位。[0]表示内存

              //偏移地址是0H,默认段地址为DS中的值1000H,

              //整体意思是将10000H中的数据存放在AL中。

(1)要注意,数据和段寄存器直接是不能直接传递的,因此必须以普通寄存器为中介,现将数据存入通用寄存器,再将通用寄存器的数据传入段寄存器中。

(2)假如第三条指令是MOV AX,[0],那么就是传递一个字的内容,就是将10000H和10001H中的数据总计16位存入寄存器AX当中。

2、内存单元(以字节为单位)存储数据时,是以字节为单位存放,存放的形式与系统是大端还是小端有关。小端是低地址存放低位字节,高地址存放高位字节;大端则是低地址存放高位字节,高地址存放低位字节。这里讲的8086是小端系统。8086的寄存器是16位。那么一次性可以存放一个字(两个字节)。而存放一个字是用两个地址连续的内存单元来存放,由低地址到高地址࿰

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值