当前位置:首页 > 开发语言 > 正文

段基址是逻辑地址吗,怎么判断段基址是多少

段基址是逻辑地址吗,怎么判断段基址是多少

段基址和偏移地址 逻辑地址 是程序中使用的地址,它由段基址和段内偏移值所组成,段基址与段内偏移值都为16位的二进制数。物理地址 也叫实际地址或绝对地址,是CPU访问存储...

段基址和偏移地址

逻辑地址 是程序中使用的地址,它由段基址和段内偏移值所组成,段基址与段内偏移值都为16位的二进制数。物理地址 也叫实际地址或绝对地址,是CPU访问存储器时实际使用的地址,为20位地址。

ES 附加段:指出当前程序使用附加数据段的段基址,该段是串操作指令中目的串所在的段。

段地址是指段的起始地址,是小段的首地址,它的特点是20位物理地址的最低4位为全0,所以用段寄存器来存放高16位,所以它的范围为0000H~FFFFH。

各个逻辑段之间可以紧密相连,可以中间有间隔,也可以相互重叠(部分重叠,甚至完全重叠)。采用段基址和偏移地址方式组成物理地址的优点是:满足对8086系统的1MB存储空间的访问,同时在大部分指令中只要提供16位的偏移地址即可。

段地址 = 段基址 × 16 + 偏移地址 也就是:实际地址 = 段基址 × 16 + 补偿地址 段地址指的是物理地址 段基址指的是当前段寄存器的内容。

操作数寻址如何发现段起始地址?

1、内存寻址中段地址是由计算机的编译器分配的,它根据计算机当前内存实际使用情况,专为用户分配一个合适的固定的地址空间。

2、它们多数是使用DS的内容为段地址,只有BP和SP,要用SS作为段地址。DI,常常要用ES。书上有个表,一查便知。

3、编译时,软件就帮你安排了,每个段的段地址。你想要使用某个段时,就用传送指令来操作,即可。

4、计算机的寻址方式:立即数寻址:操作数直接给出在指令字中,即指令字中直接给出的不同再是操作数地 址,而是操作数本身。直接寻址:操作数地址字段直接给出操作数在存储器中的地址。

汇编如何计算目标操作数的物理地址

第一个为ES(段基址)*16+SI(偏移地址)第二个为SS(段基址)*16+BP+SI+6。

相当于乘十进制数16),得到一个20位的值,再加上16位的偏移量即为物理地址。

,MOV AX,OABH 立即寻址方式,0ABH直接放在代码中。2, MOV AX,BX 寄存器寻址方式,1100H放在BX中,直接送AX,不需访问内存来取操作数。

先计算数据区末字的偏移地址 16个字占20H字节的内存空间,0DDF6H+20H=DE16H,这是末字数据后面的偏移地址,末字的偏移地址为DE16H-2=DE14H。

从BP中的30H和指令里的位移量4,得到目的操作数偏移地址(EA)为0034H BP间址缺省段寄存器为SS。

选A 段地址末加个0(左移四位,这里用的是16进制表示,所以左移1位)再与偏移地址相加等于2117A就可以 如A:20250+0F2A=2117A 如B:21080+00EA=2112A 如C:20000+017A=2017A。。

急,操作系统中段首址和段基址的区别?

1、段地址指的是物理地址 段基址指的是当前段寄存器的内容。

2、显然,段基址为xxxx0H,其低4位二进制数为0,即能被16整除的主存物理地址才可作为段基址。

3、实际上,可以根据编程的需要来确定段的大小,只要段的大小不大于64KB。段的地址可以用4位来表示,这样结合16位的段内偏移地址就可以实现存储空间1MB的物理寻址了。

4、基址是应用程序被调入内存时由操作系统分配,当然,编译程序把应用程序编译成多个段,从而要求操作系统对于不同的段分配不同的基址。

5、】在实地址模式下,由于偏移地址为16位的数,故每一段的最大寻址空间是64K,且允许段重叠。2】保护模式下,偏移地址达到了32位,故每段的最大寻址范围可达4G。最后,段的起始地址是由操作系统完成分配的。

6、这一概念与街道地址系统雷同。例如:“大街2010号”由基(大街2000街段)加上偏移值(从街段开始的10号)。在IBMPC和兼容机中的数据按其相对于由段开始的相对偏移位置被识别。

最新文章