学习笔记文学创作中华文学

常见汇编指令

2021-07-17  本文已影响0人  佩玖吟
指令类型 指令操作码 指令示例 作用或对应的高级语言写法
数据传送指令 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

流程控制

指令 全称 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
上一篇 下一篇

猜你喜欢

热点阅读