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