汇编指令对照表

汇编 专栏收录该内容
1 篇文章 0 订阅

指令后缀

后缀大小(字节)C语言对应
b1char
w2short
l4(unsigned) int / long / char*
s4float

寻址指令

名称汇编样例含义
立即数寻址$ 11
寄存器寻址%eaxeax
绝对寻址0x104*0x104
间接寻址(%eax)*eax
(基址+偏移量)寻址4(%eax)*(4+eax)
变址寻址1(%eax, %ebx)*(eax+ebx)
变址寻址29(%eax, %ebx)*(9+eax+ebx)
伸缩化变址寻址1(, %eax, 4)*(eax*4)
伸缩化变址寻址20xfc(, %eax, 4)*(0xfc+eax*4)
伸缩化变址寻址3(%eax, %ebx, 4)*(eax+ebx*4)
伸缩化变址寻址48(%eax, %ebx, 4)*(8+eax+ebx*4)

数据传送指令

指令效果描述
movl S, DS–>D传双字
movw S, DS–>D传字
movb S, DS–>D传字节
movsbl S, D符号扩展S–>D符号位填充(字节->双字)
push S%esp-4–>%esp; S–>*(%esp)压栈
pop D*(%esp)–>D; %esp+4–>%esp弹栈

算术和逻辑操作指令

指令效果描述
lea S, D&S–>D与mov S,D的区别是lea是取S的地址,D仅能是寄存器
inc DD++加1
dec DD–减1
neg D-D–>D取负
not D~D–>D取反
add S,DS+D–>D
sub S,DS-D–>D
mul S,DS*D–>D
xor S,DS^D–>D异或
or S,DS|D–>D
and S,DS&D–>D
shl k,DD << k–>D左移
shr k,DD >> k–>D右移

比较指令

指令效果描述
cmp S1, S2S1-S2比较,差关系
test S1, S2S1&S2比较,与关系

跳转指令

指令效果描述
jmp Label跳转到 Label 处无条件跳转
je Label比较操作结果为0时跳转到Label处结果为0时条件跳转
jne Label比较操作结果不为0时跳转到Label处结果不为0时条件跳转
js Label比较操作结果为负数时跳转到Label处结果为负数时跳转
jns Label比较操作结果为非负数时跳转到Label处结果为非负数时跳转
jg Label比较操作结果为S2 > S1时跳转到Label处结果为大于时跳转(有符号)
jge Label比较操作结果为S2 ≥ S1时跳转到Label处结果为大于等于时跳转(有符号)
jl Label比较操作结果为S2 < S1时跳转到Label处结果为小于时跳转(有符号)
jle Label比较结果为S2 ≤ S1时跳转到Label处结果为小于等于时跳转(有符号)
ja Label比较操作结果为S2 > S1时跳转到Label处结果为大于时跳转(无符号)
jae Label比较操作结果为S2 ≥ S1时跳转到Label处结果为大于等于时跳转(无符号)
jb Label比较操作结果为S2 < S1时跳转到Label处结果为小于时跳转(无符号)
jbe Label比较结果为S2 ≤ S1时跳转到Label处结果为小于等于时跳转(无符号)
  • 3
    点赞
  • 0
    评论
  • 8
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

sprintwind

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值