Advertisement
SquirrelInBox

Untitled

May 7th, 2016
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.63 KB | None | 0 0
  1. LOCALS
  2. .model tiny
  3. .code
  4. .386
  5. org 100h
  6.  
  7. START:
  8.  
  9. jmp main
  10. print_symb proc
  11. ; в dl символ
  12. pusha
  13. mov ah, 02h
  14. int 21h
  15. popa
  16.  
  17. ret
  18. print_symb endp
  19.  
  20. write_symb proc
  21. ; в al ascii-код
  22. pusha
  23. mov ah, 0ah
  24. mov cx, 1
  25. mov bh, [cur_page]
  26. int 10h
  27. popa
  28. ret
  29. write_symb endp
  30.  
  31. write_num proc
  32. pusha
  33. push -1
  34. mov bx, 10h
  35. mov cx, 0002h
  36. xor dx, dx
  37. @@loop1:
  38. div bl
  39. xor al, al
  40. push ax
  41. dec cx
  42. cmp cx, 0
  43. jne @@loop1
  44.  
  45. mov cx, 0002h
  46. xor dx, dx
  47. @@loop:
  48. pop dx
  49. cmp dx, -1
  50. je @@end
  51.  
  52. cmp dh, 0ah
  53. jge @@more
  54.  
  55. add dh, 30h
  56. jmp @@write
  57. @@more:
  58. add dh, 37h
  59.  
  60. @@write:
  61. mov ah, 02h
  62. mov dl, dh
  63. int 21h
  64. jmp @@loop
  65. @@end:
  66. popa
  67. ret
  68. write_num endp
  69.  
  70.  
  71. write_tab proc
  72. pusha
  73.  
  74. mov ah, 02h
  75. mov dl, 09h
  76. int 21h
  77.  
  78. popa
  79. ret
  80. write_tab endp
  81.  
  82. write_new_line proc
  83. pusha
  84. mov dl, 0ah
  85. call print_symb
  86. mov dl, 0dh
  87. call print_symb
  88. popa
  89. ret
  90. write_new_line endp
  91.  
  92. main:
  93.  
  94. mov ah, 0fh
  95. int 10h
  96. mov [cur_page], al
  97.  
  98. mov ah, 09h
  99. lea dx, header
  100. int 21h
  101.  
  102. new_iter:
  103.  
  104. mov ah, 10h
  105. int 16h
  106.  
  107. ; ESC code
  108. mov bx, 011bh
  109. cmp ax, bx
  110. je @@end
  111.  
  112. call write_new_line
  113. call write_tab
  114.  
  115. mov bx, ax
  116. xchg ah, al
  117. xor ah, ah
  118. call write_num
  119.  
  120. call write_tab
  121. call write_tab
  122.  
  123. mov ax, bx
  124. xor ah, ah
  125. call write_num
  126.  
  127. call write_tab
  128. call write_tab
  129.  
  130.  
  131. mov dl, al
  132. call print_symb
  133.  
  134.  
  135. @@iter_end:
  136. jmp new_iter
  137.  
  138. @@end:
  139. ret
  140.  
  141. header db " ASCII-code SCAN-code Symbol$"
  142. spec db "Spec symb", 0ah, 0dh, '$'
  143. cur_page db ?
  144.  
  145.  
  146. end START
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement