汇编指令
mov传送指令
mov ax,18 将18送入ax ax=18
mov ax,bx 将bx中的数据放入ax
mov al,[0] 将指定偏移地址中的数据送入寄存器【短地址ds】
将ds:[0]的数据送入al
mov [0],al 将al中的数据送入内存地址【ds:[0]】
mov指令不能用于设置CS、IP的值
add加法指令
add ax,8 将ax中的数值加上8 ax=ax+8
add ax,bx 将ax,bx中的数据相加放入ax
x86指令集不允许将一个变量直接与另一个变量相加,但是允许一个变量与一个寄存器相加
jmp无条件转移指令
jcxz条件转移指令
sub减法指令
sub ax,bx ax=ax-bx
mul乘法指令
div除法指令
call跳转指令、ret和retf返回跳转
push入栈指令
执行动作分为两步:
第一步:改变sp sp=sp-2
第二步:写入数据
push ax 把ax中的数据送入栈中 push 段寄存器 push [0]
不能操作字节型数据
pop出栈指令
执行动作分为两步:
第一步:读出数据
第二步:改变sp sp=sp+2
pop ax 取出栈顶数据送入ax中 pop 段寄存器 pop [0]
不能操作字节型数据
dec 减1指令
inc 加1指令
指令功能:目标操作数+1
INC指令只有1个操作数,它将指定的操作数的内容加1,再将结果送回到该操作数。INC指令将影响SF,AF,ZF,PF,OF标志位,但是不影响CF标志位
INC指令的操作数的类型可以是通用寄存器或存储单元,但不可以是段寄存器。字或字节操作均可
对于存储单元,需要用BYTE PTR或者WORD PTR说明是字节还是字操作
loop循环指令
AND逻辑与 xor异或
or逻辑或
nop空指令
什么都不做,但是会占用一个指令的时间
adc带进位加法指令
指令格式:adc 操作对象1, 操作对象2
功能:操作对象1=操作对象1+操作对象2+CF
注意:CF的值是由adc前面的指令决定的
mov ax,2 mov bx,1 sub bx,ax ;1-2最高位需要借位,所以CF=1 adc ax,1 ;2+1+1=4
提供adc指令的目的: 就是来进行加法的第二步运算的。adc指令和add指令相配合就可以对更大的数据进行加法运算。
mov ax,001EH mov bx,0F000H add bx,1000H adc ax,0020H
adc指令执行后, 也可能产生进位值, 所以也会对CF位进行设置。由于有这样的功能,我们就可以对任意大的数据进行加法运算。
sbb带借位减法指令
cmp比较指令
movsb和movsw串处理指令
cld指令:将标志寄存器的df位置0
std指令:将标志寄存器的df位置1
pushf标志寄存器的值压栈
popf栈中数据送入标志寄存器中shl和shr逻辑移位指令
sti 设置IF=1
cli 设置IF=0
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
2020-05-27 CAD-圆命令
2019-05-27 Arduino-LiquidCrystal_I2C 液晶库
2019-05-27 Arduino通讯串口
2019-05-27 python-编码