汇编指令

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

 

 

 

 

 

 

 

 

 

 

posted @   天子骄龙  阅读(58)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!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-编码
点击右上角即可分享
微信分享提示

目录导航