当前位置: 代码迷 >> 汇编语言 >> 汇编语言中,为什么要求数据段的起始地址必须为16的倍数?该如何处理
  详细解决方案

汇编语言中,为什么要求数据段的起始地址必须为16的倍数?该如何处理

热度:1097   发布时间:2013-02-26 00:00:00.0
汇编语言中,为什么要求数据段的起始地址必须为16的倍数?
不理解,另外代码段、栈段也是一样的要求。这是为什么??

------解决方案--------------------------------------------------------
探讨
这个对齐,和数据访问上的对齐不是一个意思吧。
段的起始地址对齐,完全是由于其地址组成方式决定的。完整的地址当初被设计为 段址*16+偏址,所以就要求段对齐在 16 的倍数上了。定为 16 应该是和当时内存容量的预期有关。这样的地址形成方式可以访问到 1M 的内存空间,对当时来说,应该很大了。
  相关解决方案