ca001

segmento de pila

db 64 dup (?)

finales de pila

segmento de código

supongamos cs: código, ss: pila

inicio:

mov ax, 1010011100101010B

llamar a CalcAmount

salir:

mov ax, 4C00H

int 21H

CalcAmount:

(cuenta el número de unos en el número binario AX)

; (Los resultados se colocan en CX)

xor cx, cx

CA001:

shr ax, 1

jz CA002

jnc CA001

inc cx

jmp short CA001

CA002:

inc cx después de la última derecha; shift Ya es 0, pero CX no se ha incrementado en uno, así que agréguelo

ret

código termina

fin de inicio