ca001
stack segment
db 64 dup (?)
stack ends
code segment
assume cs:code,ss:stack
start:
mov ax,1010011100101010B
call CalcAmount
exit:
mov ax,4C00H
int 21H
CalcAmount:
;(統計二進制數AX中含1的個數)
;(結果放在CX中)
xor cx,cx
CA001:
shr ax,1
jz CA002
jnc CA001
inc cx
jmp short CA001
CA002:
inc cx;最後壹次右移之後AX已為0,但並CX沒有加壹,補上
ret
code ends
end start