问题描述
- 80386内存寻址问题,汇编语言学习疑惑
-
8086内存寻址是通过段地址加偏移的方式,因为地址总线长度是20位,而寄存器是16位的,
但是80386的地址总线长度是32位,而寄存器也是32位,通过一个寄存器不就可以寻址吗?
为什么要搞得这么麻烦?为了兼容吗,但保护模式下有不需要考虑兼容问题,为什么不用一个32位寄存器寻址呢?
解决方案
方便实现段或页式内存管理。
解决方案二:
你学习的是过时的dos下的汇编,无论你的处理器是32位的还是64位的,dos都是16位的,你实际上都是在给一个8086在写程序。
如果你用masm,在windows下写汇编程序,完全和C语言一样,可以使用32位寻址。
时间: 2024-08-19 12:10:34