首页 文章
  • 2 votes
     answers
     views

    LEA和MOV指令比较

    Instruction 1: LEA DX, MESSAGE ; Move the address of MESSAGE in register DX Instruction 2: MOV DX, OFFSET MESSAGE ; Move the address of MESSAGE in register DX 问题: 上述说明是否相同?他们似乎工作方式相似,但我刚刚开始编程程序集,所...
  • 1 votes
     answers
     views

    x86_64 - 编码mov指令

    编码x86_64指令 mov rcx,rdx (使用https://defuse.ca/online-x86-assembler.htm)输出 48 89 D1 . 使用this reference检查操作码显示该字节序列如何编码指令 . 但是,该表中的两行(操作码 8B )是一个非常相似的 mov 指令,但是操作数的顺序是翻转的 .实际上我可以使用 48 8b ca (通过反编译验证)对相同的...
  • 0 votes
     answers
     views

    如何为mov eax生成a1操作码,moffs32

    为了帮助理解x86指令集,我一直在NASM中尝试各种形式的 mov ,并将生成的代码与英特尔文档中列出的操作码进行比较 . 他们中的大多数都是按照我的预期出来的,但似乎让NASM产生了: a1 mov eax,moffs32 特别是,这不会这样做(组装成另一个操作码): mov eax,[44332211h] 64位变体和反操作码a3也是如此 . 如何让汇编程序生成这些操作码?我误解了“...
  • 1 votes
     answers
     views

    从x86中的寄存器加载值所花费的时间

    我目前正在从书 Art of Intel x86 Assembly 学习x86 . 在它讨论不同指令类和操作码如何工作的部分中,它表示一个字节操作码被编码为 iiirrmmm ,其中三个 i 表示指令类, rr 表示4个主寄存器, mmm 可以表示多个值可选的2字节内存操作数,形式为 AX , [AX] , [AX+XXXX] 等 . 例如, 101 对应 [XXXX+BX] , 100 对应 [...
  • 9 votes
     answers
     views

    x86程序集中的mov指令

    从我读到的 mov 开始,它将第二个参数复制到第一个参数中 . 然后,这是做什么的? movl 8(%ebp), %edx 它将edx中的任何内容复制到函数的第一个参数(因为 ebp 的偏移量为8是一个参数)? 我觉得这真正意味着将第一个参数移动到 edx 寄存器中,但我在维基百科上读到它是另一种方式?
  • 5 votes
     answers
     views

    汇编“mov”指令

    我通过将c程序与其程序集等效进行比较来学习汇编 . 这是代码 . .file "ex3.c" .section .rodata .LC0: .string "I am %d years old.\n" .LC1: .string "I am %d inches tall.\n" .text .gl...

热门问题