moffs的段基础16/32

时间:2019-02-06 18:04:47

标签: assembly x86 instructions opcode

我正在查看不同的MOV指令,并对其中之一有疑问。 MOV moffs16 / 32,AX 指令。根据英特尔手册:“ moffs8,moffs16,moffs32和moffs64操作数指定相对于段基的简单偏移量,其中8、16、32和64表示数据大小。”该指令的操作码是A3,我想知道的是相对于哪个段寄存器的偏移量?是CS,DS还是ES?

1 个答案:

答案 0 :(得分:3)

根据基本体系结构手册中的 3.7.4指定段选择器部分:

  

段选择器可以隐式或显式指定。 [...]   处理器根据以下条件自动选择一个段:   表3-5中给出的规则。

     

AuthType Basic AuthName "My Website Name" AuthUserFile /path/to/.htpasswd Require valid-user 任何以ESP或EBP寄存器为基础的内存引用   注册。

     

SS所有数据引用,但相对于堆栈或   字符串目标。

问题中的指令仅使用一个常数偏移量,因此没有有效的寄存器地址。因此,除非被前缀覆盖,否则它就是DS