8086/8088指令系统详解之(3)位操作指令

位操作指令

1,逻辑运算指令
2,移位指令
3,循环移位指令

1,逻辑运算指令

这里写图片描述

说明:TEST相当于AND运算,但是不保存结果,仅影响标志。

对状态标志位的影响:除了NOT指令对状态标志位不产生影响外,AND,OR,XOR,TEST四条指令对状态标志位均有影响。这四条指令根据其各自的运算结果影响SF、ZF和PF状态标志位,同时将CF和OF清0,AF的值不确定。

1)逻辑“与”指令AND(logical AND)

格式: AND dst, src

操作:AND指令将目的操作数与源操作数进行逻辑“与”运算,并将结果送回目的操作数。

寻址方式:目的操作数可以是寄存器和存储器,源操作数可以是立即数、寄存器和存储器。但两者不能同时为存储器操作数。

例:

  AND AL, 00001111H        ;寄存器“与”立即数
  AND CX, DI               ;寄存器“与”寄存器
  AND SI, MEM_NAME         ;寄存器“与”存储器
  AND ALPHA[DI],AX         ;存储器“与”寄存器
  AND [BX][SI], 0FFFEH     ;存储器“与”立即数

用法:AND指令可以用于屏蔽某些不关心的位(与0相与),保留感兴趣的位(与1相与)。

例:将小写字母转化为大写字母
利用AND AL,11011111B指令可以将AL中保存的小写字母转化为大写字母。而若AL中的字母本来就是大写字母,则该指令不改变其值。

;判断输入的字符是否为‘Y’或‘y’,即不区分大小写
   MOV  AH, 01H        ;接受键盘输入的一个字符
   INT  21H            ;调用中断功能,功能号由AH指定
   AND  AL,11011111B   ;屏蔽第五位,转换为大写字母
   CMP  AL,'Y'         ;与Y比较
   JE   YES            ;若相等则跳转到YES
   ......
YES:
    ......
2)测试指令TEST(TEST or non-destructive logical AND)

格式: TEST dst, drc
操作:把目的操作数与源操作数相与,但结果不送回目的操作数。只将结果反映在标志位上。
寻址方式:目的操作数可以是寄存器和存储器,源操作数可以是立即数、寄存器和存储器。但两者不能同时为存储器操作数。

例:

TEST BH, 7                ;寄存器“与”立即数
TEST SI, BP      
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值