汇编指令小结


一.算术运算指令

指令 模板 具体作用
add add ax,bx 将bx+ax的值储存在ax中
sub sub ax,bx 将ax-bx的值存在ax中
inc inc bx 将bx的值加1,不影响flag寄存器相关位置
dec dec bx 将bx的值减1,……
mul mul ax,bx 将ax*bx的值存在ax中,如果是32位乘法则要将高位字节储存与dx中,低位储存于ax中,16位大差不差
div div ax,bx ax/bx的值储存于ax……
adc adc ah,bh (ah)=(bh)+(ah)+ CF
sbb sbb ax,bx (ax)=(ax)-(bx)- CF
cmp cmp ax,bx 将ax-bx但不储存在任何地方只影响flag寄存器的相关位置,用于判断两数大小

二.逻辑运算指令

指令 模板 具体作用
and and ax,bx 用于定向更改二进制数的某位,如字母的大小写变换,只有两边同为1时结果为1
or or ax,bx 只有两边都为0时结果为0,其它为1
xor xor ax,bx 同为1或0结果为0或者为1
not not al 取al值的反码

三.目的地址传送指令

指令 模板 具体作用
lea lea bx,dx:[98H] 把偏移地址存到bx,相当于C语言中的&符号
lds lds si,string 把段地址:偏移地址存到ds:si中
les,lfs,lgs,lss …… ……

四.通用数据传送指令

指令 模板 具体作用
mov mov ax,bx 将bx中的数据覆盖到ax中
push push ax 将ax中的值压入栈中
pop pop ax 将栈中的值取出进ax中

五.程序转移指令(长转移)

指令 模板 具体作用
jmp jmp ax,bx 无条件跳转指令,根据偏移量进行跳转
call call s 将当前地址推入栈中,并跳转到s处
ret ret 将栈中地址弹出至ds:ip并跳转

条件转移指令(短转移)

指令 模板 具体作用
je/jz je/jz s 若相等则跳转
jne/jnz …… 若不相等则跳转
jb/jl …… 若小于则跳转
ja/jg …… 若大于则跳转
jge …… 若大于等于则跳转
jle …… 若小于等于则跳转

循环控制指令

指令 模板 具体作用
loop loop s 消耗cx中的值,并跳转至s处
jcxz jcxz s 当cx中值为0时跳转至s
jecxz …… ……

文章作者: 矢坕
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 矢坕 !
  目录