Using assembly implementation convert binary to octal, decimal and hexadecimal.
Source Code
;conver.asm DATA SEGMENT MENU db'Please Input your Choice:',0dh,0ah db'1:Bin-->Oct8',0dh,0ah db'2:Bin-->Dec10',0dh,0ah db'3:Bin-->Hex16',0dh,0ah db'0:Exit',0dh,0ah,'$' mess1 db'Please Input a Bin number:$' mess2 db'Output Oct is:$' mess3 db'Output Dec is:$' mess4 db'Output Hex is:$' error db'Error!Please Input your Choice again:$' TABLE DW L0,L1,L2,L3 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX L: LEA DX,MENU ;Display MENU MOV AH,09H INT 21H MOV AH,01H INT 21H SUB AL,30H CMP AL,3 JBE DONE ;If less than 4 jump to DONE LEA DX,error MOV AH,09H INT 21H JMP L DONE: LEA SI,TABLE MOV AH,0 SHL AX,1 ADD SI,AX JMP [SI] L1: CALL INBIN CALL CRLF CALL OUTOCT CALL CRLF JMP L L2: CALL INBIN CALL CRLF CALL OUTDEC CALL CRLF JMP L L3: CALL INBIN CALL CRLF CALL OUTHEX CALL CRLF JMP L L0: MOV AH,4CH INT 21H CRLF PROC MOV AH,02H MOV DL,0DH INT 21H MOV DL,0AH INT 21H RET CRLF ENDP INBIN PROC NEAR LEA DX,mess1 MOV AH,09H INT 21H MOV BX,0 BINL1: MOV AH,01H INT 21H CMP AL,0DH JZ BINL2 AND AL,01H SHL BX,1 OR BL,AL JMP BINL1 BINL2: RET INBIN ENDP OUTOCT PROC NEAR LEA DX,mess2 MOV AH,09H INT 21H OCT1: ROL BX,1 MOV AX,BX AND AL,01H ADD AL,30H MOV DL,AL MOV AH,02H INT 21H MOV CH,5 OCT2: MOV CL,3 ROL BX,CL MOV AL,BL AND AL,07H ADD AL,30H MOV DL,AL MOV AH,2 INT 21H DEC CH JNZ OCT2 RET OUTOCT ENDP OUTDEC PROC LEA DX,mess3 MOV AH,09H INT 21H MOV CX,10000 CALL DECL1 MOV CX,1000 CALL DECL1 MOV CX,100 CALL DECL1 MOV CX,10 CALL DECL1 MOV CX,1 CALL DECL1 RET OUTDEC ENDP DECL1 PROC NEAR MOV AX,BX MOV DX,0 DIV CX MOV BX,DX MOV DL,AL ADD DL,30H MOV AH,2 INT 21H RET DECL1 ENDP OUTHEX PROC LEA DX,mess4 MOV AH,09H INT 21H MOV CX,4 MOV AL,0 HEXL1: ROL BX,1 RCL AL,1 ROL BX,1 RCL AL,1 ROL BX,1 RCL AL,1 ROL BX,1 RCL AL,1 MOV DL,AL AND DL,0FH ADD DL,30H CMP DL,39H JBE HEXL2 ADD DL,7 HEXL2: MOV AH,02H INT 21H LOOP HEXL1 RET OUTHEX ENDP CODE ENDS END START
C:\MASM\masm>masm conver Microsoft (R) Macro Assembler Version 5.00 Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved. Object filename [conver.OBJ]: Source listing [NUL.LST]: Cross-reference [NUL.CRF]: 50778 + 450678 Bytes symbol space free 0 Warning Errors 0 Severe Errors C:\MASM\masm>link conver Microsoft (R) Overlay Linker Version 3.65 Copyright (C) Microsoft Corp 1983-1988. All rights reserved. Run File [CONVER.EXE]: List File [NUL.MAP]: Libraries [.LIB]: LINK : warning L4021: no stack segment C:\MASM\masm>conver.exe Please Input your Choise: 1:Bin-->Oct8 2:Bin-->Dec10 3:Bin-->Hex16 0:Exit _
Download Integrated Assembly Compiler v1.2
filename : visualasm.zip Size : 1.6MB SHA1 : e0f905f3d3b104d3fa3f27ac8a779243f01ca9f2 Last Update : 18 June, 2014