Advertisement
Guest User

Untitled

a guest
Sep 16th, 2014
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.57 KB | None | 0 0
  1. PRINT_NUM PROC
  2. PUSH BP
  3. MOV BP, SP
  4. PUSH AX
  5. PUSH BX
  6. PUSH CX
  7. PUSH DX
  8. PUSH SI
  9. PUSH DI
  10.  
  11. MOV AX, [BP + 4]
  12. XOR AH, AH
  13. MOV BL, 10
  14. XOR CX, CX
  15. cycle:
  16. XOR AH, AH
  17. DIV BL
  18. MOV DL, AH
  19. XOR DH, DH
  20. PUSH DX
  21. INC CX
  22. CMP AL, 0
  23. JNE cycle
  24. print:
  25. POP DX
  26. ADD DX, '0'
  27. MOV AH, 2
  28. INT 21H
  29. LOOP print
  30.  
  31. POP DI
  32. POP SI
  33. POP DX
  34. POP CX
  35. POP BX
  36. POP AX
  37. POP BP
  38. RET
  39. PRINT_NUM ENDP
  40.  
  41.  
  42. PRINT_DECIMAL PROC
  43. PUSH BP
  44. MOV BP, SP
  45. PUSH AX
  46. PUSH BX
  47. PUSH CX
  48. PUSH DX
  49. PUSH SI
  50. PUSH DI
  51.  
  52. MOV DECIMAL, 0
  53. MOV AX, [BP + 4] ;supposing AL storing 123
  54.  
  55. TEST AX, 10000000B
  56. JZ NEXTD1
  57. ADD DECIMAL, 50
  58. NEXTD1: TEST AX, 01000000B
  59. JZ NEXTD2
  60. ADD DECIMAL, 25
  61. NEXTD2: TEST AX, 00100000B
  62. JZ NEXTD3
  63. ADD DECIMAL, 12
  64. NEXTD3: TEST AX, 00010000B
  65. JZ NEXTD4
  66. ADD DECIMAL, 6
  67. NEXTD4: TEST AX, 00001000B
  68. JZ NEXTD5
  69. ADD DECIMAL, 3
  70. NEXTD5: TEST AX, 00000100B
  71. JZ NEXTD6
  72. ADD DECIMAL, 1
  73. NEXTD6:
  74.  
  75.  
  76. MOV AL, DECIMAL
  77. XOR AH, AH
  78. PUSH AX
  79. CALL PRINT_NUM
  80. POP AX
  81.  
  82.  
  83. POP DI
  84. POP SI
  85. POP DX
  86. POP CX
  87. POP BX
  88. POP AX
  89. POP BP
  90. RET
  91. PRINT_DECIMAL ENDP
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement