问题描述:已知变量X的值为2767,请编程统计变量X的二进制中有多少个一,并记入ONE变量。
分析:数值在内存中的存储本来就是二进制,所以不需要再做转换,使用移位指令统计每一位即可。
代码:
data segment x dw 2767 one dw 0 data ends code segment start: assume ds:data,cs:code mov ax,data mov ds,ax mov cx,16 mov bx,x loop1: shl bx,1 jc L1 loop loop1 jmp next L1: inc one loop loop1 next: mov dx,one add dx,30h mov ah,02h int 21h mov ax,4C00H int 21h code ends end start
2767的二进制位:0000101011001111