关于初学汇编:该怎么理解“该段的起始地址为10000H,段地址大小为1000H,大小为100H

按照我看书的理解,我以为大小就是1000H 。 = = 和16位的寻址能力是64K该怎么理解。 希望解答稍微详细点。

段在内存起始位置是0x10000,但段寄存器保存的是段的起始地址的前16位,所以0x10000/0x10等于0x1000,后面说的是段所占内存为0x100.
分段寻址是因为当时的微机有1M的内存20位的地址宽度,而CPU内部只有16位宽度,16位宽的地址只能寻址64K的内存,其他的内存空间访问不了,因此因特尔设计了16位宽的段寄存器,段寄存器保存一个内存地址的高16位,段寄存器*0x10+BX SI DI BP SP 就能访问1M内存了!
你看 0xF000*0x10 +65536 是不是等于1M? 0xF000能用段寄存器来保存,由BX SI DI SP BP IP 来提供一个在64K范围内的地址
0Xf000*0x10
+ 64K
-----------------------
= 0x100000
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-17
wo cao你把前一句也打出来啊,搞得我一头雾水,还特意去番书,
设地址10000H ~ 100FFH 的内存单元组成一个段,该段起始地址(基础地址)为10000H,段地址为1000H,大小为100H.

不就是后面的数减前面的数再加1罗,等于问你 1 - 10 里面有多少个数差不多道理。
第2个回答  2020-12-03
10000H~100FFH,十六进制表示,100FF减10000得FF,大小为100,计算机表示从0开始,0~FF,0~FF就是十进制的255,0~FF+1就是十进制的256,256转换为十六进制就为100的十六进制,可以算哈
第3个回答  2019-11-11
100FF-10000 = FF 0~FF有FF+1个,大小就是FF+1,注意从0开始
相似回答