常见汇编指令

作者: 佩玖吟 | 来源:发表于2021-07-17 23:05 被阅读0次
  • 指令基本格式
    • 操作码 操作数1 (操作数2 ……)
    • 对于双操作数指令,一般来说第一个是目标操作数
  • 简单指令示例
指令类型 指令操作码 指令示例 作用或对应的高级语言写法
数据传送指令 mov mov rax, rbx mov qword ptr [rdi], rax rax = rbx *(rdi) = rax
取地址指令 lea lea rax, [rsi] rax = & *(rsi)
算术运算指令 add add rax, rbx add qword ptr[rdi], rax rax += rbx *(rdi) += rax
sub sub rax, rbx rax -= rbx
逻辑运算指令 and and rax, rbx rax &= rbx
xor xor rax, rbx rax ^= rbx
函数调用指令 call call 0x401000 执行0x40100地址的函数
函数返回指令 ret ret 函数返回
比较指令 cmp cmp rax, rbx 根据rax与rbx比较的结果改变flags
无条件跳转指令 jmp jmp 0x401000 跳到0x401000地址执行
栈操作指令 push push rax 将rax的值压入栈中
pop pop rax 从栈上弹出一个元素放入rax

流程控制

  • 无条件跳转 jmp

  • 有条件跳转

    • 通过cmp,test等指令改变flags的值,根据flags的情况进行跳转
指令 全称 cmp a, b条件 Flags条件
jz/je Jump if Zero/Equal a = b ZF = 1
jnz/jne Jump if not Zero/Equal a != b ZF = 0
jb/jnae/jc Jump if below/not above or equal/carry a < b,无符号数 CF = 1
ja/jnbe Jump if above/not below or equal a > b,无符号数
Jna****/****jbe Jump if not above/below or equal a <= b,无符号数
Jnc/jnb/jae Jump if not carry/not below/above or equal a >= b,无符号数 CF = 0
jg/jnle jump if greater/not less or equal a> b,有符号数
jge/jnl jump if greater or equal/not less a >= b,有符号数
jl/jnge jump if less/not greater or equal a < b,有符号数
jle/jng jump if less or equal/not greater a <= b,有符号数
jo jump if overflow OF = 1
js jump if signed SF = 1
  • 函数调用与返回 call ret

相关文章

  • 常见汇编指令

    随时更新 leave: leave是汇编语言中的一条指令名 在32位汇编下相当于mov esp,ebppop eb...

  • 《汇编》 常见指令

    因为最近都是用cmd markdown进行写文章了,但是文章链接还是会挂在这里。汇编常见指令

  • 常见汇编指令

    指令基本格式操作码 操作数1 (操作数2 ……)对于双操作数指令,一般来说第一个是目标操作数 简单指令...

  • lab1 二进制炸弹

    汇编与反汇编 汇编与反汇编的区别 phase_1 比较字符串是否相同 二进制炸弹 常见汇编指令详解 AT&T 格式...

  • Swift 汇编常见指令

    mov: 将某一寄存器的值复制到另一寄存器(只能用于寄存器与寄存器或者寄存器与常量之间传值,不能用于内存地址)...

  • 常见的汇编指令

  • 逆向笔记(三)-汇编指令

    汇编指令 针对汇编来说,汇编指令是必须了解的,而且汇编中汇编指令比较多,但是每一个汇编指令对应的机器码是固定不变的...

  • 16位汇编简记

    汇编: 汇编即是机器指令助记符,机器指令让cpu工作。像是mov、jmp、jcxz等汇编指令都有对应的机器指令。有...

  • 学习汇编--写一个完整的汇编(一)

    汇编指令 汇编有两类指令组成汇编指令如move,add,sub等,有对应的机器指令,可以被编译为机器指令最终被CP...

  • 逆向学习 持续更新中

    什么是汇编 机器指令能被计算机直接识别 汇编指令需要通过编译器转为机器指令 汇编指令和机器指令的差别在于指令的表示...

网友评论

    本文标题:常见汇编指令

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