4 added 3 characters in body

80386 AssemblerMachine Code, 4 bytes

F3 0F B8 C1


which takes the integer in cx and outputs the count in ax, and is equivalent to:

popcnt ax, cx     ; F3 0F B8 C1


And here is an 11 10 byte solution not using POPCNT:

31 C0 D1 E9 10 E0 85 C9 75 F8


which is equivalent to:

xor ax, ax        ; 31 C0   Set ax to 0
shr cx, 1         ; D1 E9   Shift cx to the right by 1 (cx >> 1)
adc al, ah        ; 10 E0   al += (ah = 0) + (cf = rightmost bit before shifting)
test cx, cx       ; 85 C9   Check if cx == 0
jnz $-6 ; 75 F8 Jump up to shr cx, 1 if not  80386 Assembler, 4 bytes F3 0F B8 C1  which takes the integer in cx and outputs the count in ax, and is equivalent to: popcnt ax, cx ; F3 0F B8 C1  And here is an 11 10 byte solution not using POPCNT: 31 C0 D1 E9 10 E0 85 C9 75 F8  which is equivalent to: xor ax, ax ; 31 C0 Set ax to 0 shr cx, 1 ; D1 E9 Shift cx to the right by 1 (cx >> 1) adc al, ah ; 10 E0 al += (ah = 0) + (cf = rightmost bit before shifting) test cx, cx ; 85 C9 Check if cx == 0 jnz$-6           ; 75 F8   Jump up to shr cx, 1 if not


80386 Machine Code, 4 bytes

F3 0F B8 C1


which takes the integer in cx and outputs the count in ax, and is equivalent to:

popcnt ax, cx     ; F3 0F B8 C1


And here is an 11 10 byte solution not using POPCNT:

31 C0 D1 E9 10 E0 85 C9 75 F8


which is equivalent to:

xor ax, ax        ; 31 C0   Set ax to 0
shr cx, 1         ; D1 E9   Shift cx to the right by 1 (cx >> 1)
adc al, ah        ; 10 E0   al += (ah = 0) + (cf = rightmost bit before shifting)
test cx, cx       ; 85 C9   Check if cx == 0
jnz $-6 ; 75 F8 Jump up to shr cx, 1 if not  3 added 168 characters in body 80386 Assembler, 4 bytes F3 0F B8 C1  which takes the integer in cx and outputs the count in ax, and is equivalent to: popcnt ax, cx ; F3 0F B8 C1  And here is an 11 10 byte solution not using POPCNT: 31 C0 D1 E9 10 E0 85 C9 75 F8  which is equivalent to: xor ax, ax ; 31 C0 Set ax to 0 shr cx, 1 ; D1 E9 Shift cx to the right by 1 (cx >> 1) adc al, ah ; 10 E0 al += (ah = 0) + (cf = rightmost bit before shifting) test cx, cx ; 85 C9 Check if cx == 0 jnz$-6           ; 75 F8   Jump up to shr cx, 1 if not


80386 Assembler, 4 bytes

F3 0F B8 C1


which takes the integer in cx and outputs the count in ax, and is equivalent to:

popcnt ax, cx     ; F3 0F B8 C1


And here is an 11 10 byte solution not using POPCNT:

31 C0 D1 E9 10 E0 85 C9 75 F8


which is equivalent to:

xor ax, ax        ; 31 C0
shr cx, 1         ; D1 E9
adc al, ah        ; 10 E0
test cx, cx       ; 85 C9
jnz $-6 ; 75 F8  80386 Assembler, 4 bytes F3 0F B8 C1  which takes the integer in cx and outputs the count in ax, and is equivalent to: popcnt ax, cx ; F3 0F B8 C1  And here is an 11 10 byte solution not using POPCNT: 31 C0 D1 E9 10 E0 85 C9 75 F8  which is equivalent to: xor ax, ax ; 31 C0 Set ax to 0 shr cx, 1 ; D1 E9 Shift cx to the right by 1 (cx >> 1) adc al, ah ; 10 E0 al += (ah = 0) + (cf = rightmost bit before shifting) test cx, cx ; 85 C9 Check if cx == 0 jnz$-6           ; 75 F8   Jump up to shr cx, 1 if not

2 added 8 characters in body

80386 Assembler, 4 bytes

F3 0F B8 C1


which takes the integer in cx and outputs the count in ax, and is equivalent to:

popcnt ax, cx     ; F3 0F B8 C1


And here is an 1111 10 byte solution not using POPCNT:

31 C0 D1 E9 83 D010 00E0 85 C9 75 F7F8


which is equivalent to:

xor ax, ax        ; 31 C0
shr cx, 1         ; D1 E9
adc axal, 0 ah        ; 83 D010 00E0
test cx, cx       ; 85 C9
jnz $-76 ; 75 F7F8  80386 Assembler, 4 bytes F3 0F B8 C1  which takes the integer in cx and outputs the count in ax, and is equivalent to: popcnt ax, cx ; F3 0F B8 C1  And here is an 11 byte solution not using POPCNT: 31 C0 D1 E9 83 D0 00 85 C9 75 F7  which is equivalent to: xor ax, ax ; 31 C0 shr cx, 1 ; D1 E9 adc ax, 0 ; 83 D0 00 test cx, cx ; 85 C9 jnz$-7           ; 75 F7


80386 Assembler, 4 bytes

F3 0F B8 C1


which takes the integer in cx and outputs the count in ax, and is equivalent to:

popcnt ax, cx     ; F3 0F B8 C1


And here is an 11 10 byte solution not using POPCNT:

31 C0 D1 E9 10 E0 85 C9 75 F8


which is equivalent to:

xor ax, ax        ; 31 C0
shr cx, 1         ; D1 E9
adc al, ah        ; 10 E0
test cx, cx       ; 85 C9
jnz \$-6           ; 75 F8

1