汇编语言寄存器的内存范围

寄存器——内存访问

内存中字的存储大小是16bit。

如果我们想要对内存进行访问,我们要知道一个寄存器。

DS——date segment.

比如我想访问10000h处的内存,我们需要设置ds的值为1000h。

先看程序:

mov ax,1000h

mov ds,ax

这样ds寄存器已经修改成了1000.

如果我们想要对1000:0000这块内存进行写入,看如下程序:

mov ax,1000h

mov ds,ax

mov bx,1234

mov [0000],bx

现在1000:0000这块地址的值已经被修改成了34,1000:0001的值已经被修改成了12。

这块地址的值已经修改了,我们现在把这块地址的值读取到dx。

mov ax,1000h

mov ds,ax

mov bx,1234

mov [0000],bx

mov dx,[0000]

可以看到,dx的值是1234。

可以知道,ds的内存大小是从1000:0000~1000:ffff。

处了对内存的管理,还可以对栈进行管理。

首先我们要知道,什么是“栈”。

“栈”就是先进后出,后进先出的数据结构。

我们使用哪些寄存器来管理栈?

使用:ss和sp来管理栈。

ss——stack segment

sp——stack point

使用:push和pop来修改ss和sp的值。

看如下程序:

mov ax,1000

mov ss,ax

mov sp,0010

mov bx,1234

push bx

mov bx,5678

push bx



pop ax

pop bx



add ax,bx

push ax



pop bx

当然,栈是有界限的,比如以上程序栈的界限是在1000:0000~1000:000f 的这个范围之内,所以,我们在使用栈的时候要注意栈的界限防止越界。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值