Advertisement
Bob103

ASM_(5)

Dec 22nd, 2016
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .model small
  2. .stack 100h
  3. .186
  4. .data
  5.  
  6. ;Определение переменных:
  7. row db 5            ;row – строка, в которой находится курсор
  8. col db 10           ;col – столбец, в котором находится курсор
  9. mode db (?)                 ;mode – номер режима, нач. значение не определено
  10. char_ctr db 4Dh         ;char_ctr – счетчик ASCII-символов
  11.  
  12. .code
  13. start:
  14. mov ax,@data
  15. mov ds, ax
  16. call B10MODE        ;установка видеорежима
  17. call C10CLEAR       ;очистка экрана
  18. mov bl, 9h          ;начальное значение цвета
  19. label1:
  20. call D10CURSOR      ;установка курсора
  21. call E10DISPLAY     ;вывод символа на экран
  22. inc col         ;перемещение курсора вправо
  23. cmp col,17      ;проверка на конец строки
  24. jc label1
  25. inc char_ctr        ;переход к следующему символу
  26. inc row         ;переход в следующий столбец
  27. mov col,0Ah         ;переход на начало строки
  28. inc bl          ;переход к следующему цвету
  29. cmp char_ctr,53h    ;проверка на последний символ
  30. jc label1
  31. mov ax,4C00h        ;Завершение программы
  32. int 21h
  33.  
  34. ;Определение подпрограмм
  35. B10MODE proc        ;установка видеорежима
  36. mov ah, 0Fh
  37. int 10h
  38. mov mode, al
  39. mov ah, 0
  40. mov al, 3
  41. int 10h
  42. ret
  43. B10MODE endp
  44.  
  45. C10CLEAR proc       ;очистка экрана
  46. pusha
  47. mov ah, 06h
  48. int 10h
  49. mov ah, ah
  50. mov al, 6
  51. mov bh, 23h
  52. mov cx, 5:10
  53. mov dx, 12:17
  54. int 10h
  55. popa
  56. ret
  57. C10CLEAR endp
  58.  
  59. D10CURSOR proc      ;установка курсора
  60. pusha
  61. mov ah, 02h
  62. mov bh, 0
  63. mov dh, row
  64. mov dl, col
  65. int 10h
  66. popa
  67. ret
  68. D10CURSOR endp
  69.  
  70. E10DISPLAY proc     ;вывод символа на экран
  71. pusha
  72. mov ah, 9h
  73. mov al, char_ctr
  74. mov bh, 0
  75. mov cx, 1
  76. int 10h
  77. popa
  78. ret
  79. E10DISPLAY endp
  80.  
  81. end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement