编写一个程序,统计AX寄存器中1的个数,结果放在CL寄存器中(假设AX=0FF37H)。

2025-03-13 13:24:51
推荐回答(1个)
回答1:

循环16遍,逐次判断某位是1是0,加入到CL。
CODE SEGMENT
ASSUME CS:CODE
START: MOV CL,0 ;循环初始化
MOV AX,0FF37H
;循环对‘1‘的个数计数
REPEAT:TEST AX,OFFFFH ;Y=0?
JZ EXIT
JNS SHIFT ;正数则转移
INC CL ;负数则计数
SHIFT:SHL AX,1
JMP REPEAT
;结束程序返回操作系统
EXIT:MOV AX,4C00H
INT 21H
CODE ENDS
END START