Number Format Conversion
Number Format Conversion
.MODEL SMALL .STACK .DATA MENU DB 10,13,"1.BINARY TO DECIMAL" DB 10,13,"2.DECIMAL TO BINARY" DB 10,13,"3.EXIT$" MSG0 DB 10,13,"ENTER YOUR CHOICE: $" LINE DB 10,13," $" NUM1 DW 0H LIST DB 10 DUP(0) ARR DB 10 DUP(0) NUM2 DW 0H SUM DW 0H MSG DB 10,13,"ENTER THE BIN NUMBER:$" MSG1 DB 10,13,"THE EQUIVALENT DECIMAL NUMBER IS:$" MSG2 DB 10,13,"ENTER THE DECIMAL NUMBER:$" MSG3 DB 10,13,"THE EQUIVALENT BINARY NUMBER IS:$" .CODE PRINT PROC NEAR MOV BL,0H MOV AX,0H PUSH1: MOV DX,0H MOV CX,10 MOV AX,NUM1 DIV CX INC BL MOV NUM1,AX ADD DX,30H PUSH DX CMP NUM1,0 JNE PUSH1 POP1: POP DX MOV AH,06H INT 21H DEC BL CMP BL,0 JNE POP1 RET PRINT ENDP
POWER PROC NEAR mov ax,num1 mov cx,num2 cmp cx,0 je zero cmp cx,1 je one
dec cx pow1: mul num1 loop pow1 one: jmp result zero: mov AX,01h jmp result ;RESULT result: MOV NUM1,AX RET ENDP read proc near MOV AX,0H MOV NUM1,0H LOOP1: MOV AH,01H INT 21H CMP AL,13 JE EXITS CMP AL,'0' JB LOOP1 CMP AL,'9' JA LOOP1 SUB AL,30H MOV BH,0H MOV BL,AL MOV AX,10 MUL NUM1 MOV NUM1,AX ADD NUM1,BX JMP LOOP1 EXITS: RET endp .STARTUP MOV AX,@DATA MOV DS,AX MENU1: MOV AH,09H LEA DX,MENU INT 21H MOV AH,09H LEA DX,MSG0 INT 21H MOV AH,01H INT 21H
CMP AL,'1' JE B2D CMP AL,'2' JE D2B CMP AL,'3' JE EXIT2 JMP MENU1 EXIT2: MOV AH,4CH INT 21H B2D: LEA MOV INT LEA MOV INT MOV DX,LINE AH,09H 21H DX,MSG AH,09H 21H SI,0H
LOOP4:MOV AH,01H INT 21H CMP AL,13 JE EXIT SUB AL,30H INC SI MOV LIST[SI],AL JMP LOOP4 EXIT: MOV BX,0H L1: MOV NUM1,2H
CMP SI,0 JE EXIT1 MOV NUM2,BX CALL POWER MOV AH,0H MOV AL,LIST[SI] DEC SI INC BX L2:MUL NUM1 ADD SUM,AX JMP L1 EXIT1: MOV AX,SUM MOV NUM1,AX MOV AH,09H LEA DX,MSG1 INT 21H CALL PRINT LEA DX,LINE MOV AH,09H INT 21H JMP MENU1 D2B:
LEA DX,LINE MOV AH,09H INT 21H mov ah,09h lea dx,msg2 int 21h mov si,0h call read mov ax,num1 loop3: mov cl,2h div cl mov arr[si],ah mov ah,0 inc si cmp al,0 jne loop3 mov ah,09h lea dx,msg3 int 21h loop5: dec si mov dl,arr[si] mov dh,0h add dx,30h mov ah,06h int 21h cmp si,0h jne loop5 LEA DX,LINE MOV AH,09H INT 21H JMP MENU1 END
OUTPUT 1.BINARY TO DECIMAL 2.DECIMAL TO BINARY 3.EXIT ENTER YOUR CHOICE: 1 ENTER THE BIN NUMBER: 1010 THE EQUIVALENT DECIAML NUMBER IS:10 1.BINARY TO DECIMAL 2.DECIMAL TO BINARY 3.EXIT
2 1.BINARY TO DECIMAL 2.DECIMAL TO BINARY 3.EXIT ENTER YOUR CHOICE: 1 ENTER THE DECIMAL NUMBER: 8 THE EQUIVALENT BINARY NUMBER IS:1000 1.BINARY TO DECIMAL 2.DECIMAL TO BINARY 3.EXIT 3