题目要求:编写程序段,将AX寄存器的内容以相反的顺序传送到DX寄存器中,并要求AX中的内容不被破坏,然后统计DX寄存器中1的个数并存入BL中。
CODE SEGMENT
ASSUME CS:CODE
START: MOV AX,4321H ;假定值
PUSH AX ;AX寄存器内容压栈保护
MOV CX,16 ;设定循环次数
XOR BL,BL ;清空BL寄存器内容
NEXT: SHR AX,1 ;逻辑右移,AX寄存器的最低位的值送入CF中
RCL DX,1 ;将CF的值移入DX寄存器的最低位
JNC S1 ;判断是否有进位,如果CF = 1则表示有一个1,计数一次,如果CF=0,则表示没有进位,不计数直接跳转
INC BL ;计数
S1: LOOP NEXT ;循环
POP AX ;恢复AX寄存器
MOV AH,4CH
INT 21H
CODE ENDS
END START