河北专接本微机原理编程题————再DA1开始的4个单元存放着一个32位数,求出其中“1”的个数,并存入count单元
程序员文章站
2022-03-10 08:22:48
...
DATA1 SEGMENT
DA1 DD 00000003H
COUNT DB ?
DATA1 ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA1
START:
MOV AX,DATA1
MOV DS,AX
MOV SI, OFFSET DA1;把DA1的有效低地址给SI
MOV BL,0 ;BL置0,做累加器
MOV BH,8 ;控制对字节单元的循环8次
MOV CX,4 ;接下来对一个一个的字节变量操作双字所以循环4次
A2:
MOV AL,BYTE PTR[SI];把字节数据放AL
A1:
ROR AL,1 ;循环右移,最末尾移到CF和最高位
JNC L1 ;CF不等于1跳
INC BL
L1:
DEC BH ;控制AL循环8次
JNZ A1 ;循环8次完了,BH为0了跳出循环,然后SI加一下一个字节单元
INC SI
LOOP A2
MOV COUNT,BL
MOV DL,BL
OR DL,30H
MOV AH,2
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
上一篇: 河北专接本微机原理编程题
下一篇: AIX系统修改用户密码依然无法登录