al__nasim

hexa to binary(corrected).asm

Jan 12th, 2017
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .MODEL SMALL
  2. .STACK 100H
  3. .DATA
  4.  
  5. .CODE
  6. MAIN PROC
  7.    
  8.     MOV AX,@DATA
  9.     MOV DS,AX
  10.    
  11.     XOR BX,BX  ;CLEAR BX
  12.     MOV CL,4  ;COUNTER FOR 4 SHIFTS
  13.     MOV AH,1
  14.     INT 21H
  15.    
  16.    
  17.     WHILE_:
  18.     CMP AL,0DH  ;CR?
  19.     JE PRINT  ; YES,EXIT
  20.    
  21.    
  22.     ;CONVERT CHARACTER TO BINARY VALUE
  23.     CMP AL,39H  ;A DIGIT?
  24.     JG LETTER  ; NO, A LETTER
  25.    
  26.    
  27.     ;INPUT IS A DIGIT
  28.     AND AL,0FH  ;CONVERT DIGIT TO BINARY VALUE
  29.     JMP SHIFT   ;GO TO INSERT IN BX
  30.    
  31.    
  32.    
  33.     LETTER:
  34.     SUB AL,37H  ;convert letter to binary
  35.    
  36.     SHIFT:
  37.     SHL BX,CL  
  38.    
  39.     ;insert value into BX
  40.     OR BL,AL ; put value into low 4 bits
  41.    
  42.     INT 21H
  43.     JMP WHILE_
  44.    
  45.    
  46.    
  47.     PRINT:
  48.     MOV CX,16
  49.    
  50.     L1:
  51.     ROL BX,1
  52.    ;JNC L2
  53.     JC L3
  54.    
  55.     MOV AH,2
  56.     MOV DL,'0'
  57.     INT 21H
  58.     LOOP L1
  59.    
  60.     JMP EXIT
  61.    
  62.     L3:
  63.     MOV AH,2
  64.     MOV DL,'1'
  65.     INT 21H
  66.     LOOP L1
  67.    
  68.    
  69.     EXIT:
  70.     MOV AH,4CH
  71.     INT 21H
  72.     MAIN ENDP
  73. END MAIN
Advertisement
Add Comment
Please, Sign In to add comment