8086汇编_常用指令

dup伪指令

db / dw / dd nums dup (0)
原地开辟nums个大小为db 或 dw 或 dd 的 0

times伪指令

times nums db / dw / dd 0
原地开辟nums个大小为db 或 dw 或 dd 的 0

resb / resw / resd指令

resb nums
跳过nums字节大小的数据,不改变原本数据,若写到程序中,程序被读到内存的时候,内存这nums字节大小的数据,就在程序段中

resw nums
跳过nums字大小的数据,不改变原本数据

resd nums
跳过nums双字大小的数据,不改变原本数据

mov指令

mov OPRD1, OPRD2
将OPRD2送到OPRD1中

and指令

and OPRD1, OPRD2
两操作数进行按位与运算,结果存于OPRD1
两操作数长度必须一致

or指令

or OPRD1, OPRD2
两操作数进行按位或运算,结果存于OPRD1
两操作数长度必须一致

xor指令

xor OPRD1, OPRD2
两操作数进行按位异或运算,结果存于OPRD1
两操作数长度必须一致

push指令

1、push OPRD
OPRD为16为操作数或者16位寄存器,将OPRD压入栈中
等价于
sp = sp - 2
mov [ss : sp], OPRD

pop指令

1、pop OPRD
OPRD为16为操作数或者16位寄存器,将栈顶元素出栈并赋予OPRD
等价于
mov OPRD , [ss : sp]
sp = sp + 2

jmp指令

1、jmp near 标号
实现段内跳转

2、jmp OPRD
OPRD为单字操作数,实现段内跳转
OPRD为双字操作数,实现段间跳转

3、jmp far 标号
实现段间跳转

cmp指令

1、cmp OPRD1, OPRD2
两操作数进行相减比较,与sub指令不同的是,cmp指令不改变两操作数的值

JG / JL指令

1、JG 标号
比较结果为大于时,跳转

2、JL 标号
比较结果为小于时,跳转

JGE / JLE指令

1、JGE 标号
比较结果为大于等于时,跳转

2、JLE 标号
比较结果为小于等于时,跳转

call指令

1、call OPRD
过程调用(函数调用)指令,分为段内调用和段间调用,搭配ret进行使用
call指令跳转到OPRD处之前,将当前地址压入栈中

ret指令

1、ret
结束过程调用,从栈中弹出调用该过程的地址并跳转回去,与call指令搭配实现过程调用(函数调用)

未完…

04/14/2022

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值