美文网首页Swift
Swift Day04 常见AT&T汇编

Swift Day04 常见AT&T汇编

作者: 望穿秋水小作坊 | 来源:发表于2020-11-27 22:33 被阅读0次
    1. movq %rax, %rdx 是什么意思?
    • rax 的值赋值给 rdx
    2. movq $0x10, %rax 是什么意思?
    • 0x10 赋值给 rax
    3. movq $0xa, 0x1ff7(%rip) 是什么意思?
    • 0xa 赋值给地址为 rip+0x1ff7 的内存空间
    • MOV指令可以在 CPU 内CPU存储器之间传送数据
    • 寄存器寄存器
    • 立即数寄存器
    • 立即数存储器
    • 寄存器存储器
    • 存储器寄存器
    4. xorl %ecx, %ecx 是什么意思?
    • 将 %ecx 和 %ecx 进行异或操作,其实效果就是将 %ecx 的内存值归零
    • xorl 、 movl 、andl 都可以将内存值归零,但是 xorl效率最高的
    6. leaq -0x18(%rbp), %rax 是什么意思?
    • rbp-0x18 的地址值赋值给 %rax
    • lea 指令:load effective address,加载有效地址,可以将有效地址传送到指定的寄存器。
    • 指令形式是从存储器读数据寄存器,效果是将存储器的有效地址写入到目的操作数,简单来说,就是 C 语言中的 &
    7. jmp 0x4001002 是什么意思?
    • 跳到 指定地址0x4001002 继续开始执行指令
    8. movq leaw movb movl中的 b w l q分别代表什么?
    • bbyte = 8bit 1字节
    • wword = 16bit 2字节
    • llong = 32bit 4字节
    • qquad-word = 64bit 8字节
    9. 32为的寄存器以什么字母开头?64 位的寄存器以什么开头?
    • 32 位的寄存器以 e 开头,占 4 字节
    • 64 位的寄存器以 r 开头,占 8 字节
    10. 常用的一些 lldb 指令
    lldb 指令
    11. 在汇编指令中 rip 存储的是什么?
    • rip 存储的是指令的地址
    • CPU 要执行的下一条指令的地址就存储在 rip 中
    12. 一般规律
    • 内存地址格式为:0x4bdc(%rip),一般是全局变量,在全局区(数据段)
    • 内存地址格式为:-0x78(%rbp),一般是局部变量,栈空间
    • 内存地址格式为:0x10(%rax),一般在堆空间
    • rax、rdx常作为函数返回值使用
    • rdi、rsi、rdx、rcx、r8、r9这些寄存器常用语存放函数参数
    13. movq $0xb,(%rax) 是什么意思?
    • 立即数11 的值赋给 rax中存储的地址所在的内存

    相关文章

      网友评论

        本文标题:Swift Day04 常见AT&T汇编

        本文链接:https://www.haomeiwen.com/subject/nuefwktx.html