Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .model small
- .stack 100h
- .186
- .data
- StrJump db 'dsads','$' ; строка с символами перехода на новую строку
- row db 5 ; Y начала ввода (5)
- col db 10 ; X начала ввода (10)
- ;ch_num db 4Dh ; текущий символ (латинская M)
- ch_num db 65 ; текущий символ (латинская M == 77!)
- colour db 0FDh ; цвет строки (синий - 01h, светло-синий - 09h)
- spaces dw 146 ; (80 - 7) * 2
- .code
- start:
- mov AX, @data
- mov DS, AX
- mov AX,0B900h ; Используя сегментный регистр ES,
- mov ES,AX ; организовать запись данных в видеопамять
- ; по адресу В900h:0000h (страница 1)
- call SetMode
- ;call output
- ;После завершения вывода программа ожидает нажатия клавиши
- ;и, восстановив исходную страницу и видеорежим, завершается
- ;mov AH, 0Ah ; когда это есть, он хотя бы перестаёт работать...
- ;int 10
- call output
- mov AX, 4C00h
- int 21
- SetMode proc
- ;mov AH, 0Fh ; Определить текущий видеорежим
- ;push AX ; и сохранить их в стеке
- ;int 10h
- ;mov AH, 00h ;Установить видеорежим 03 (функция 00h прерывания int 10h)
- ;mov AL, 03
- ;int 10h
- mov AH, 05h ;и текущую страницу 01 (функция 05h прерывания int 10h)
- mov AL, 01h
- int 10h
- mov AH, 02h ;Установить видеорежим 03 (функция 00h прерывания int 10h)
- mov BH, 0
- ;mov DH, 5
- ;mov DL, 10
- int 10h
- SetMode endp
- output proc
- pusha
- ;mov AL, ch_num
- ;mov AH, 00Dh
- mov DI, 0820 ; начальное смещение для строки 5 столбца 10
- xor CX, CX
- new_line:
- mov AL, ch_num
- mov AH, colour
- ;mov DI, 0820 ; начальное смещение для строки 5 столбца 10
- push CX
- mov CX, 7 ; 7 столбцов
- cycle:
- mov ES:word ptr[DI], AX
- add DI, 2
- loop cycle
- add DI, spaces
- pop CX
- inc CX
- inc ch_num
- inc colour
- cmp CX, 6 ; 5 строк
- jne new_line
- popa
- ret
- output endp
- end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement