据说8086微处理器有1MB的内存和20位地址,16位数据总线。我的疑问是,如果它是1MB内存,那么意味着(2^20 * 2^3) (1字节=8位)位或2^23位就是整个内存大小。那么,由于8086是一个16位寄存器,那么2^20 (来自地址线)* 2^4( 16位大小)就是内存,即2^24位,这不是我上面计算的值。因此,我的评估是错误的,这是什么?
发布于 2019-01-23 23:12:04
2^20个地址中的每个地址都指向一个8位字节。
8086的一些机器指令在字节(8位)上操作(使用寄存器AH、AL、BH、BL ...)和其他机器指令对字(16位)进行操作(使用寄存器AX、BX等)。
使用字指令时,存储器中的两个相邻字节(地址(a)和(a+1))被视为字数据。我不记得8086是否强制字数据存储器引用的地址对齐。但是,2^20字节只包含2^19个字(与偶数地址对齐)。
位是保守的:(2^20 * 2^3) = (2^19 * 2^4) = 2^23
https://stackoverflow.com/questions/54329829
复制相似问题