the_king
مدیرکل انجمن
اگر بخواهیم تعداد بیت های 1 را در یک عدد باینری بدست آوریم، کد زیر مناسب است،
به عنوان مثال عدد 1011010011101000 در مبنای باینری بررسی شده و تعداد بیت های
1 آن (8 بیت) اعلام می شود :
به عنوان مثال عدد 1011010011101000 در مبنای باینری بررسی شده و تعداد بیت های
1 آن (8 بیت) اعلام می شود :
کد:
.MODEL SMALL
.CODE
.STARTUP
MOV AX, 1011010011101000b
PUSH AX
CALL Return_1_Digits
CALL Print_DX
.EXIT 0
Return_1_Digits:
PUSH BP
MOV BP, SP
MOV AX, SS:[BP + 4]
MOV BX, 1
MOV CX, 16
MOV DX, 0
Loop1:
TEST AX, BX
JZ Next1
INC DX
Next1:
SHL BX, 1
LOOP Loop1
POP BP
RET 2
Print_DX:
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV AX, DX
MOV CX, 0
MOV BX, 10
loop_2:
MOV DX, 0
DIV BX
PUSH DX
INC CX
CMP AX, 0
JNE loop_2
MOV AH, 2
loop_3:
POP DX
ADD DL, "0"
INT 21H
LOOP loop_3
POP DX
POP CX
POP BX
POP AX
RET
.STACK
END