Guest User

Untitled

a guest
Apr 18th, 2018
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .model  small
  2. .stack  100h
  3. .data
  4.  
  5. string1 db 100                  
  6. row db (?)
  7. col db (?)
  8. color db 0
  9. msgInp1 db "Input string:$"
  10. msgInp2 db " color:$"
  11.  
  12.  
  13. cstring db 4 dup (?)
  14.  
  15. .code
  16. start proc
  17. mov ax,@data
  18. mov ds,ax
  19.  
  20. call InputProc
  21. call OutputProc
  22.  
  23. mov ax,4c00h
  24. int 21h
  25. ret
  26. endp
  27.  
  28. mac macro string_v
  29. local m1
  30. m1:
  31.   mov dx, offset string_v
  32.   mov ah,09h
  33.   int  21h
  34.  
  35.   mov dx, offset cstring
  36.   mov ah, 0ah
  37.   int 21h  
  38.   mov al, cstring[0]
  39.   add color, al
  40.   mov al, cstring[1]
  41.   add color, al
  42.   mov al, cstring[2]
  43.   add color, al
  44. ;  mov al, cstring[3]
  45. ;  add color, al
  46.  endm    
  47.  
  48. NewStr proc
  49. mov dl,10
  50. mov ah,2
  51. int 21h
  52. ret
  53. endp
  54.  
  55.  
  56. OutMsg proc
  57. mov ah,9
  58. int 21h
  59. ret
  60. endp
  61.  
  62.  
  63. inputStr proc
  64. mov ah,0Ah
  65. int 21h
  66. ret
  67. endp
  68.  
  69.  
  70. InputProc proc
  71. mov dx,offset msgInp1                    
  72. call OutMsg                              
  73. mov dx,offset string1                    
  74. call inputStr
  75. call newStr
  76. mac msgInp2
  77. ;mov color, ah
  78. ;mov dx, offset color
  79. ;call inputStr
  80. ;call newStr                                              
  81. ret
  82. endp
  83.  
  84.  
  85. OutputProc proc
  86. ;mov al,Len1
  87. ;mov dx,offset 2
  88. ; Очистка экрана текущей видеостраницы
  89.   mov ah, 00h
  90.   mov al, 03h
  91.   int 10h
  92.  
  93. ;  mov ax, @data
  94. ;  mov ds, ax
  95. ; Установка адресного регистра на начало строки
  96.   mov di, offset string1+5
  97.   mov row, 10
  98.   mov col, 38
  99. m1:
  100. ; Позиционирование курсора
  101.   mov ah, 02h
  102.   mov dh, row
  103.   mov dl, col
  104.   int 10h
  105.  
  106. ; Считывание в регистр al одного символа из строки и проверка на конец строки. Если встречается символ $, то считает - конец строки и выход из программы.
  107.   mov al, [di]
  108.   cmp al, "$"
  109.   jz m2
  110. ; Вывод на экран на бордовом фоне синим цветом (определяется содержимым bl) одного символа (определяется cx), код которого помещается в регистр al. Выбрана нулевая видеостраница.
  111.   mov ah, 09h
  112.   mov bh, 00h
  113.   mov bl, color
  114.   mov al, [di]
  115.   mov cx, 01h
  116.   int 10h
  117. ; переход к следующему символу (увеличение di), изменение горизонтальной позиции курсора. Происходит безусловный переход на начало цикла. Цикл будет окончен, если встретиться знак "$".
  118.   inc di
  119.   inc col
  120.   jmp m1
  121. ;call OutMsg
  122. m2:
  123.   mov ax, 4c00h
  124.   int 21h
  125.  
  126. ret
  127. endp
  128.  
  129. end start
Add Comment
Please, Sign In to add comment