区块链技术博客
www.b2bchain.cn

常用汇编总结求职学习资料

本文介绍了常用汇编总结求职学习资料,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

逆向中,汇编是绕不开的,这个说起来就比较多了,本文算是一个简单总结,详细深入了解还需要系统的学习。

汇编语言的种类

  • 8086汇编(16bit)
  • x86汇编(32bit)
  • x64汇编(64bit)
  • ARM汇编(嵌入式、移动设备) p……

x86、x64汇编根据编译器的不同,有2种书写格式

  • Intel:Windows派系
  • AT&T :Unix派系

作为iOS开发工程师,最主要的汇编语言是

  • AT&T汇编 -> iOS模拟器
  • ARM汇编 -> iOS真机设备

常见的汇编指令

项目 AT&T Intel 说明
寄存器命名 %rax rax
操作数顺序 movq %rax, %rdx mov rdx, rax 将rax的值赋值给rdx
常数立即数 movq $0x10, %rax mov rax, 0x10 将0x10赋值给rax
内存赋值 movq $0xa, 0x1ff7(%rip) mov qword ptr [rip+0x1ff7], 0xa 将0xa赋值给地址为rip + 0x1ff7的内存空间
取内存地址 leaq -0x18(%rbp), %rax lea rax, [rbp – 0x18] 将rbp – 0x18这个地址值赋值给rax
jmp指令 jmp *%rdx jmp rdx call和jmp写法类似
操作数长度 leaw 0x10(%dx), %ax lea ax, [dx + 0x10]

操作数长度的说明

  • b = byte (8-bit)
  • s = short (16-bit integer or 32-bit floating point)
  • w = word (16-bit)
  • l = long (32-bit integer or 64-bit floating point)
  • q = quad (64 bit) t = ten bytes (80-bit floating point)

寄存器

有16个常用寄存器

  • rax、rbx、rcx 、rdx、rsi、rdi、rbp、rsp
  • r8、r9、r10、r11、r12、r13、r14、r15

寄存器的具体用途

  • rax常作为函数返回值使用
  • rdi、rsi、rdx、rcx、r8、r9等寄存器常用于存放函数参数
  • rsp、rbp用于栈操作
  • rip作为指令指针
    • 存储着CPU下一条要执行的指令的地址
    • 一旦CPU读取一条指令,rip会自动指向下一条指令(存储下一条指令的地址)

逆向中,汇编是绕不开的,这个说起来就比较多了,本文算是一个简单总结,详细深入了解还需要系统的学习。

汇编语言的种类

  • 8086汇编(16bit)
  • x86汇编(32bit)
  • x64汇编(64bit)
  • ARM汇编(嵌入式、移动设备) p……

x86、x64汇编根据编译器的不同,有2种书写格式

  • Intel:Windows派系
  • AT&T :Unix派系

作为iOS开发工程师,最主要的汇编语言是

  • AT&T汇编 -> iOS模拟器
  • ARM汇编 -> iOS真机设备

常见的汇编指令

项目 AT&T Intel 说明
寄存器命名 %rax rax
操作数顺序 movq %rax, %rdx mov rdx, rax 将rax的值赋值给rdx
常数立即数 movq $0x10, %rax mov rax, 0x10 将0x10赋值给rax
内存赋值 movq $0xa, 0x1ff7(%rip) mov qword ptr [rip+0x1ff7], 0xa 将0xa赋值给地址为rip + 0x1ff7的内存空间
取内存地址 leaq -0x18(%rbp), %rax lea rax, [rbp – 0x18] 将rbp – 0x18这个地址值赋值给rax
jmp指令 jmp *%rdx jmp rdx call和jmp写法类似
操作数长度 leaw 0x10(%dx), %ax lea ax, [dx + 0x10]

操作数长度的说明

  • b = byte (8-bit)
  • s = short (16-bit integer or 32-bit floating point)
  • w = word (16-bit)
  • l = long (32-bit integer or 64-bit floating point)
  • q = quad (64 bit) t = ten bytes (80-bit floating point)

寄存器

有16个常用寄存器

  • rax、rbx、rcx 、rdx、rsi、rdi、rbp、rsp
  • r8、r9、r10、r11、r12、r13、r14、r15

寄存器的具体用途

  • rax常作为函数返回值使用
  • rdi、rsi、rdx、rcx、r8、r9等寄存器常用于存放函数参数
  • rsp、rbp用于栈操作
  • rip作为指令指针
    • 存储着CPU下一条要执行的指令的地址
    • 一旦CPU读取一条指令,rip会自动指向下一条指令(存储下一条指令的地址)

逆向中,汇编是绕不开的,这个说起来就比较多了,本文算是一个简单总结,详细深入了解还需要系统的学习。

汇编语言的种类

  • 8086汇编(16bit)
  • x86汇编(32bit)
  • x64汇编(64bit)
  • ARM汇编(嵌入式、移动设备) p……

x86、x64汇编根据编译器的不同,有2种书写格式

  • Intel:Windows派系
  • AT&T :Unix派系

作为iOS开发工程师,最主要的汇编语言是

  • AT&T汇编 -> iOS模拟器
  • ARM汇编 -> iOS真机设备

常见的汇编指令

项目 AT&T Intel 说明
寄存器命名 %rax rax
操作数顺序 movq %rax, %rdx mov rdx, rax 将rax的值赋值给rdx
常数立即数 movq $0x10, %rax mov rax, 0x10 将0x10赋值给rax
内存赋值 movq $0xa, 0x1ff7(%rip) mov qword ptr [rip+0x1ff7], 0xa 将0xa赋值给地址为rip + 0x1ff7的内存空间
取内存地址 leaq -0x18(%rbp), %rax lea rax, [rbp – 0x18] 将rbp – 0x18这个地址值赋值给rax
jmp指令 jmp *%rdx jmp rdx call和jmp写法类似
操作数长度 leaw 0x10(%dx), %ax lea ax, [dx + 0x10]

操作数长度的说明

  • b = byte (8-bit)
  • s = short (16-bit integer or 32-bit floating point)
  • w = word (16-bit)
  • l = long (32-bit integer or 64-bit floating point)
  • q = quad (64 bit) t = ten bytes (80-bit floating point)

寄存器

有16个常用寄存器

  • rax、rbx、rcx 、rdx、rsi、rdi、rbp、rsp
  • r8、r9、r10、r11、r12、r13、r14、r15

寄存器的具体用途

  • rax常作为函数返回值使用
  • rdi、rsi、rdx、rcx、r8、r9等寄存器常用于存放函数参数
  • rsp、rbp用于栈操作
  • rip作为指令指针
    • 存储着CPU下一条要执行的指令的地址
    • 一旦CPU读取一条指令,rip会自动指向下一条指令(存储下一条指令的地址)

部分转自互联网,侵权删除联系

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 常用汇编总结求职学习资料
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们