or and test命令

使用OR与TEST指令
本文介绍了如何使用OR指令来置位以及TEST指令来测试特定位是否为0的方法。通过具体的例子,展示了如何设置源操作数以实现这些操作,并讨论了如何依据测试结果设置条件码并进行条件转移。

要置某位为一可用or指令,例:要求第5位置1,
mov al,43h
or al,20h
这两条指令执行后,(al)=63h
         0100 0011
         0010 0000
    or
    ---------------
         0110 0011
所以用or指令可以使操作数的某些位置1,只需要把or指令的源操作数设置为一个立即数,并把需要置1的位设为1,就可达到目的。

要测试操作数的某位是否为0,可用test指令,同样把test指令的源操作数设置成一个立即数,其中需要测试的位应设为1。例:
mov al,40h
test al,0afh
这两条指令执行后
    0100 0000
        1010 1111
    and
    -------------
        0000 0000
这里要求测试第0,1,2,3,5,7位是否为0,根据测试的结果设置条件码为cf=of=0,sf=0,zf=1,说明所需测试的位均为0.如果在这两 条指令之后跟一条条件转移指令jnz,如果不是0则转移,如结果为0则顺序往下执行,这样就可以根据测试的情况不同产生不同的程序分支,转向不同的处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值