王爽《汇编语言》有几个地方不明白:
1:段地址X16,哪个16我换成10用10进制来乘可以吗?
2:起始地址为10000H, 段地址为1000H(这个段地址1000H是怎么得来的?请尽量详细通俗点) 大小为100H(这个就更不明白了大小指的是什么?为什么又变成100H了?)
3:我们也可以认为地址:10000H~1007FH 、10080H~100FFH 的内存单元组成两个段,它们的起始地址(基础地址)为:10000H 和 100080H, 段地址为: 1000H(这个也不明白) 和 1008H(这个也不明白是怎么出来的),大小都为80H(这个更是不明白,为什么说是大小都为80H.) 请各位大哥指点指点,,请尽量详细通俗点,谢谢!
第一个问题.我是否能这样理解?
那个16和10其实就是16进制和10进制(16进制就X16, 10进制就X10),我算的时候能不能把它换成10进制来算X10最后在把结果换成16进制.对了(十六进制计算 2E * 0x10 = 2E0 那个0x10是什么意思呢?
)
第二个问题:也是最搞不清的一个问题/
偏移是16位 最大是FFFF(65535=64K)最多只能表示64K的大小,不能访问1M的内存(如果要访问的话就必须要把1M内存分成N块每块在64K以内?)
地址10000H(65536=64K)~100FFH(65791=64K)两数相差255,一个8位寄存位)的内存单元组成一个段(这里的两个地址都是64K能小点吗?)
将10000H/16=10000H/0x10=1000H(这里不是太明白为什么要除呢?段地址X16=物理地址,难道基地址除16是算段地址?)这个就是段地址了;它的大小是100FF-10000+1=(100H 256)(这个大小指的是什么,有什么意义?起到什么作用?)还请在指点指点,就差一点就明白了!