已知三个无符号数a,b,c,存放在ADR开始的连续单元,编制完成下列操作的程序:若a,b,c同时为偶数,将FLAG单元置1,若同时为奇数,FLAG置0,否则为全1
关键词: 判断奇偶性 汇编 此代码为CSDN DelphiGuy() 所做。版权所有。
xor bx,bx; 清零
mov cx,3 ;初始化循环次数
lea si,ADR ;取数据首地址
cld ;DF = 0 清零方向 使变址寄存器为自动增加
@@1:lodsb ;自动将SI指出的字节(字)加载到AL(AX)中
and al,1 ;判断是否为奇数
add bl,al ;是奇数则加到bl
loop @@1
cmp bl,0; 若bl = 0则全为偶数
mov al,1
je @@2
cmp bl,3; 若bl = 3则全为奇数
mov al,0
je @@2
mov al,0ffh; 既不都是奇数也不都是偶数
@@2:mov [FLAG],al
以上是我理解的DelphiGuy的代码。
多谢各位回答,mydo(侯佩|hopy)说的bt系列指令都有哪几个呢,介绍一条指令就行,别的我自己再找,多谢。