汇编中的操作指令

表格不太会搞,,,将就着看吧。。。

算术运算指令

说明:小括号里是指令格式,后面是指令的功能,OPD是目的操作数,OPS是源操作数

1、加法指令

ADD加法(ADD OPD,OPS):       OPD<—OPD+OPS

ADC带进位加法(ADC  OPD,OPS): OPD<—OPD+OPS+CF

INC加1(INC OPD):OPD的内容加1,OPD可以是reg或mem,不影响CF的值

(reg:寄存器   mem:内存单元   imm:立即数)

2、减法指令

 SUB减法指令(SUB OPD,OPS):OPD<—OPD-OPS
 
SBB带借位减法指令(SBB OPD,OPS):OPD<—OPD-OPS-CF

DEC减1指令(DEC OPD):OPD<—OPD-1

NEG求补指令【NEG OPD(OPD可以是reg或mem)】:对操作数OPD进行求补运算,即对操作数OPD连同符号位求反加1,并将结果送回OPD
对0求补时,CF=0,其他情况下CF=1

CMP比较指令(CMP OPD,OPS):CMP指令与SUB指令类似,将两个操作数相减,结果不送回OPD。改变标志位

3、乘法指令

MUL 无符号数的(MUL OPD):操作数可以是reg或mem,不能是立即数

OPD为8位时,AX<—(AL)*OPD  AL是隐含操作数

OPD为16位时,(DX)(AX)<—(AX)*OPD 同理,AX是隐含操作数

IMUL 有符号数的:与无符号数的类似

4、除法指令

DIV 无符号除法(DIV OPD)和无符号数的乘法指令类似

IDIV 有符号数除法 

逻辑运算指令

AND逻辑与(都为1时取1)
OR逻辑或(其1为1则取1)
NOT逻辑非(本来值的反值)
XOR逻辑异或(排斥相同,一个为0一个为1时结果为1)
TEST测试指令(进行逻辑与操作,结果不送回目的操作数,仅建立结果状态标志,可用来测试某位是否为0)

无符号数操作指令

  指令                          转移条件               
JA/JNBE                       CF=0ANDZF=0                  A>B
JAE/JNB                       CF=0                         A>=B
JB/JANE                       CF=1                         A<B
JBE/JNA                        CF=1ORZF=1                  A<=B

带符号数转移指令

  指令                         转移条件
JG/JNLE                      ZF=0ANDSF=OF                        A>B
JGE/JNL                      SF=OF                               A>=B
JL/JNGE                      SF不等于OF                           A<B
JLE/JNG                      ZF=1ORSF不等于OF                     A<=B

其实意思就是

比如JA,当A>B时转移,否则继续执行下一条指令,

移位指令

一般移位:

SAL/SAR:算数左移/右移
SHL/SHR:逻辑左移/右移

算数左移和逻辑左移一样,操作数左移,最低位补0,最高位进CF
算数右移:操作数右移,最高位不变,最低位进CF
逻辑右移:操作数右移,最高位补0,最低位进CF
debug中用SHR和SHL

循环移位:

ROL OPD,OPS:不带进位循环左移
ROR OPD,OPS:不带进位循环右移
RCL    OPD,OPS:带进位循环左移
RCR    OPD,OPS:带进位循环右移

串操作指令

取串: 把源串当中si指向的字或字节送AX或AL

LODSB         取源串一个字节 
LODSW        取源串一个字

存串

STOSB       送字节到目的串
STOSW       送字到目的串

串传送

MOVSB   字节传送
MOVSW 字传送

串比较

CMPSB  字节比较
CMPSW  字比较

串搜索

SCASB   搜索字节
SCASW      搜索字

重复前缀 REP

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柯糖

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

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值