当前位置: 代码迷 >> 汇编语言 >> 请问32位保护模式下的地址有关问题
  详细解决方案

请问32位保护模式下的地址有关问题

热度:9501   发布时间:2013-02-26 00:00:00.0
请教32位保护模式下的地址问题
我们都知道在开启了分段与分页的保护机制后,每个地址是由段选择符与32位偏移量组成

那么如下形式的一条指令究竟是怎么赋值的,比如有个地址$addr
movl $addr,%eax

这里赋给eax的是??相对于当前ds选择符所指段基地址的偏移量吗?还是说其他?

------解决方案--------------------------------------------------------
将符号addr的偏移地址放入eax中。

比如说你的addr定义在data段中:

.data
addr DWORD 0

我这个是intel汇编语法,at&t的类似。

假设addr在DS段的offset是0x20000,则将0x20000放入eax.
注意ds值并没有放入,这在实际寻址时再计算。

only 偏移地址