Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. TITLE STRING (SIMPLFIED .EXE FORMAT)
  3. .MODEL SMALL
  4. ;---------------------------------------------
  5. .STACK 32
  6. ;---------------------------------------------
  7. .DATA
  8. MSG1 DB 10,13, "ENTER NUMBER : ", '$'
  9. MSG2 DB 10,13, " ASCII CHARACTER: ", '$'
  10. MSG3 DB 10,13, "IT PASSED SINGLE:", '$'
  11.  
  12. DIGIT1 DB ?,0ah, 0dh, "$"
  13. DIGIT2 DB ?,0ah, 0dh, "$"
  14. BCD DB ?,0ah, 0dh,"$"
  15. TEMP DB ?,0ah, 0dh,"$"
  16. ;---------------------------------------------
  17. .CODE
  18. MAIN PROC FAR
  19.  
  20. MOV AX,@data
  21. MOV DS,AX
  22.  
  23. START:
  24.  
  25. LEA DX,MSG1 ;prints message1
  26. MOV AH,09H
  27. INT 21H
  28.  
  29. MOV AH,01H ;TAKES INPUT AS HEX
  30. INT 21H
  31. MOV DIGIT1,AL
  32.  
  33.  
  34.   ;EXIT
  35.   CMP DIGIT1,1BH
  36.   JE ENDING
  37.  
  38.  
  39.   ;NOS ONLY
  40.   CMP DIGIT1,31H
  41.   JB START
  42.  
  43.   CMP DIGIT1,39H
  44.   JA START
  45.  
  46.   ;subtract 30hex from DIGIT 1
  47.   SUB AL,30H
  48.   MOV DIGIT1,AL
  49.  
  50.  
  51. MOV AH,01H ;TAKE INPUT2 AS HEX
  52. INT 21H
  53.  
  54. ;CONDITION FOR SINGLE DIGIT INPUT-NOT WORKING YET
  55.  
  56. ; CMP DIGIT1,31H
  57.  ;JB SINGLE
  58.  
  59. ; CMP DIGIT1,39H
  60.  ;JA SINGLE
  61.  
  62.  
  63. SUB AL,30H
  64. MOV DIGIT2,AL
  65.  
  66.  
  67. MOV AH,DIGIT1
  68. MOV AL,DIGIT2
  69.  
  70. MOV CL,4
  71. ROL AH,CL
  72. CONTINUE:
  73. ADD AL,AH
  74. MOV BCD,AL
  75.  
  76.   LEA DX,MSG2
  77.   MOV AH,09
  78.   INT 21H
  79.      ;display ASCII CHAR
  80.   MOV AH, 09
  81.   LEA DX, BCD
  82.   INT 21H
  83.  
  84.   MOV TEMP,00
  85.   CALL PRINT_DOLLAR
  86.  
  87.  ENDING:
  88.   MOV AH, 4CH
  89.   INT 21H
  90. MAIN ENDP
  91.  
  92.  
  93. PRINT_DOLLAR PROC NEAR
  94.    ;PRINT $
  95.    MOV AL, 24H
  96.    MOV AH, 02H
  97.    MOV DL, AL
  98.    INT 21H
  99.    
  100.  
  101.    INC TEMP
  102.    MOV AL,BCD  
  103.    CMP TEMP,AL ;NEED HEX CONVERTER. IF EQUAL TO BCD/ASCII VALUE, EXIT LOOP
  104.    JE EXTEND
  105.    
  106.    JMP PRINT_DOLLAR
  107. RET
  108. PRINT_DOLLAR ENDP
  109.  
  110. EXTEND PROC NEAR
  111.  
  112.   JMP START
  113. RET
  114.  
  115. EXTEND ENDP
  116.  
  117. SINGLE PROC NEAR ; IF ONLY INPUT 1 IS INPUTTED
  118.  
  119.   LEA DX,MSG3
  120.   MOV AH,09
  121.   INT 21H
  122.  
  123.  MOV AL,00
  124.  MOV DIGIT2,AL
  125.  
  126.  MOV AH,DIGIT1
  127.  MOV AL,DIGIT2
  128.  JMP CONTINUE
  129. RET
  130. SINGLE ENDP
  131.  
  132.  
  133. END MAIN
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement