单片机基础之汇编语言入门学习(四) 物理地址 逻辑地址 段寄存器与逻辑段

一个存储单元有一个物理地址,还有多个逻辑地址

物理地址:

就是一个存储单元的编号;
每个物理存储单元都有一个20位编号;
8086CPU物理地址范围:00000H~FFFFFH   (16进制)
(寻址空间:2^20 = 1M)(2^10 = 1024b = 1kb)

逻辑地址:

在用户编程时,采用逻辑地址,形式为:
         段基地址:段内偏移地址
物理地址:将逻辑地址左移4位,加上偏移地址就得到20位物理地址

例如
逻辑地址: 1230:100
物理地址: 12400(1230*10H+100)

为什么左移4位是x10H?

     1111 1111
1111 1111              (左移4位 即2^4= 16 用16进制来表示就是10)      

段寄存器与逻辑段:

**8086CPU有4个段寄存器,每个段寄存器用来确定一个逻辑段的起始位置,每种逻辑段均有各自的用途**
CS(代码段):指明代码的起始位置
 利用CS:IP来取得下一条要执行的指令
SS(栈堆段):指明栈堆段的起始位置
 利用SS:SP操作堆栈顶的数据
DS(数据段):指明数据的起始位置
 利用DS:EA存取数据段中的数据
ES(附加段):指明附加段的起始位置
 利用ES:EA存取附加段中的数据
注意:
EA是偏地址,称之为有效地址EA
若操作数在主存中,存取的方法有直接寻址方式,寄存器间接寻址方式,寄存器相对寻址方式  ,基址变址寻址方式和相对基址变址寻址方式

没有指明段前缀时,一般的数据访问在DS(数据)段
例如:
MOV AX,[1000H]; = MOV AX,DS:[1000H] (加粗部分其实也就是逻辑地址)
从默认的DS段中取出数据
MOV AX,CS:[1000H]
从指定的CS段中去除数据
(’[ ]'内指得就是偏移地址,“:”前面就是段的基地址,没有就是默认为DS)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值