;====================================
; 统计寄存器AX中1 的个数
DATAS segment DATAS ends CODES segment
START:
mov AX,DATAS
mov DS,AX
;正式代码部分
mov AX,1001111011B ;2进制数7个1
mov CX, ;CX置为0
mov CH, ;记录当前操作的第几位数字
NEXT:
test AX,0001H;让...0001与AX进行 与 运算
JZ isZero ;如果为0继续循环判断下一个
inc CL ;自增1 isZero:
dec CH ;高位-1
JZ EXIT ;if(CH=0)则跳转到EXIT
SHR AX, ;逻辑右移1位
JMP NEXT
EXIT:
count db ?,'$';向屏幕打印输出结果
add cl,30H
mov count,cl
Lea dx,count
mov AH, ;09号功能调用
INT 21H mov AL, ;置退出码
mov AH,4CH ;置功能调用号
INT 21H ;软中断指令:实施功能调用
CODES ends
end START