java 置位,汇编语言置位和清除单个CPU标志位

怎样能方便地置位和清除零标志位、符号标志位、进位标志位和溢出标志位?有几种方法,其中的一些需要修改目标操作数。要将零标志位置 1,就把操作数与 0 进行 TEST 或 AND 操作;要将零标志位清零,就把操作数与 1 进行 OR 操作:

test al, 0           ;零标志位置 1

and al, 0           ;零标志位置 1

or al, 1              ;零标志位清零

TEST 指令不修改目的操作数,而 AND 指令则会修改目的操作数。若要符号标志位置 1,将操作数的最高位和 1 进行 OR 操作;若要清除符号标志位,则将操作数最高位和 0 进行 AND 操作:

or al, 80h         ;符号标志位置 1

and al, 7Fh       ;符号标志位清零

若要进位标志位置 1,用 STC 指令;清除进位标志位,用 CLC 指令:

stc                   ;进位标志位置 1

clc                   ;进位标志位清零

若要溢出标志位置 1,就把两个正数相加使之产生负的和数;若要清除溢出标志位,则将操作数和 0 进行 OR 操作:

mov al,7Fh       ; AL = +127

inc al                ; AL = 80h (-128), OF=1

or eax, 0           ; 溢出标志位清零

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值