Advertisement
Guest User

asdasd

a guest
Mar 27th, 2017
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.75 KB | None | 0 0
  1. .model tiny
  2. .code
  3. .386
  4. org 100h
  5. start:
  6.  
  7. ;вычисление начальной позиции таблицы
  8. mov ax, 40h
  9. mov es, ax
  10. mov ax, es:[049h]
  11. mov dx, 0a4h
  12. cmp ah, 80
  13. jne sorok
  14. mov dx, 16ch
  15. sorok:
  16. mov bl, ah
  17. push bx ;количество столбцов
  18. ;закраска всего экрана
  19.  
  20. mov bh, 00101111b
  21. call zakraska
  22.  
  23. add di, dx
  24. mov si, offset kek
  25. pop dx
  26.  
  27. call risovalka ;1 строка
  28.  
  29. mov al, 186
  30. stosw
  31. scasw
  32. mov al, 179
  33. stosw
  34.  
  35. mov al, 48
  36. mov cl, 16
  37. cifr:
  38. stosw
  39. scasw
  40. inc ax
  41. cmp al, 58
  42. jne kk
  43. mov al, 65
  44. kk:
  45. loop cifr
  46.  
  47. mov si, [offset kek + 4] ;3 строка
  48. lodsb
  49. stosw
  50. call perenos_stroki
  51. call risovalka
  52.  
  53. ;вывод таблицы
  54. mov bl, 48
  55.  
  56. call oool
  57.  
  58. xor al, al
  59. cycle:
  60. stosw
  61. inc ax
  62. scasw
  63. test al, 0fh
  64. jnz endd
  65. push ax
  66. mov al, 186
  67. stosw
  68. call perenos_stroki
  69. cmp bl, 58
  70. jne kk2
  71. mov bl, 65
  72. kk2:
  73. call oool
  74.  
  75. pop ax
  76. endd:
  77. cmp al, 255
  78. jne cycle
  79.  
  80. scasw ;в конце остается 1 пробел и 1 правая стенка
  81. scasw
  82. mov al, 186
  83. stosw
  84.  
  85. call perenos_stroki
  86. mov si, [offset kek + 10]
  87. call risovalka ;ласт строка
  88. ;ждем нажатия и очищаем экран
  89. xor ah, ah
  90. int 16h
  91. mov bh, 0000111b
  92.  
  93. proc zakraska
  94. mov ax, 40h
  95. mov es, ax
  96. mov di, es:[04eh]
  97. push di
  98. mov ax, es:[049h]
  99. mov cx, 0b800h
  100. cmp al, 7
  101. jne m3
  102. mov cx, 0b000h
  103. m3:
  104. mov es, cx
  105. mov ah, bh
  106. mov al, 20h
  107. mov cx, 2000
  108. rep stosw
  109. pop di
  110. ret
  111. endp
  112.  
  113. proc risovalka
  114. mov cl, 3
  115. lol:
  116. lodsb
  117. stosw
  118. loop lol
  119. dec si
  120. dec si
  121. lodsb
  122. mov cl, 32
  123. rep stosw
  124. lodsb
  125. lodsb
  126. stosw
  127. call perenos_stroki
  128. ret
  129. endp
  130.  
  131. proc oool
  132. mov al, 186
  133. stosw
  134. mov al, bl
  135. stosw
  136. inc bx
  137. mov al, 179
  138. stosw
  139. ret
  140. endp
  141. proc perenos_stroki
  142. add di, dx
  143. add di, dx
  144. sub di, 72
  145. ret
  146. endp
  147.  
  148. kek db 201, 205, 209, 187, 186, 199, 196, 197, 182, 186, 200, 205, 207, 188
  149. end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement