当前位置:编程学习 > 汇编语言 >>

32位汇编如何寻址?16位是,段地址*16+偏移地址,那32呢?

追问:cs ip呢?
答案:32位就乘32,估计是
反正像0x00ff,到了32位下就是 0x000000ff了,所以我想就是乘32
其他:你说的段地址*16+偏移地址是特制8086,因为8086是16位芯片但是有20根地址线,所以用这种方式。
32位的汇编用在32位芯片上,地址线基本上都是32根的,就是直接寻址了。 32位多了保护模式,这个寻址比较复杂,你可以找本书看看 32位CPU在实模式下可以用16位寻址。如果是基于80x86保护模式,则要经过逻辑地址到线性地址的转换,再通过线性地址计算出物理地址。此时段寄存器中的段值是段选择子,它要在GDT或LDT中查找该段的起始地址,再与16位物理地址相加就得到线性地址。如果此时未启动分页,那么这个线性地址也就是物理地址;否则用高20位查找页目录表和页表,低12位为页内偏移。比较复杂。 

上一个:单片机初学者,求助汇编程序练习。
下一个:汇编语言应该从什么地方学起?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,