Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Вывод палитры дисплея в текстовом режиме

86K
21 ноября 2012 года
OMAAGAAD
1 / / 21.11.2012
Здравствуйте "собрал" программу, читая разные мануалы в сети. В итоге вроде все получилось, но при выводе между сообщениями, которые выводятся на экран появляются какие-то непонятные символы :(

И еще вопрос: правильные ли я написал комментарии к строкам?
message db 10,13,' Graphic in text mode: ENTER - next color, ESC - exit',13,10,'$' -- зачем тут 10 и 13?

Буду оооочень благодарен если подскажите ну или ткнете носом в ошибки)



Код:
code     segment  para 'code'
     assume cs:code,ds:code,es:code,ss:code
     org    100h               ;директива, необходимая для .COM программы
 entry:  jmp    main
 ; данные
 message db     10,13,' Graphic in text mode: ENTER - next color, ESC - exit',13,10,'$'
 cols    db     00h        
 ; код программы
 main    proc   near
     call   clearScreen        ;чистим экран
     mov    dx,0000h           ;загружаем в DX 0000
     call   setCursor          ;установка курсора
         call   setMode            ;вызов функции, устанавливающей цвет строки
                                   ;и ее фон                        
 for:    lea    dx,message         ;загрузка адреса сообщения
         call   printString        ;вывод текста
         call   pressKey           ;ждем нажатия клавиши
         cmp    al,13              ;проверка на нажатие Enter'a
         je     cont               ;если Enter был нажат переходим в cont
         ret                       ;завершение выполнения
 cont:   mov    ah,09h             ;функция выводящая строку на экран
         mov    bl,cols            ;загрузка в нижний регистр cols
         mov    cx,10
         int    10h
         inc    cols
         jmp    near ptr for
 main    endp
 ; чистим экран через BIOS
 clearScreen    proc    near
     mov    ax,0600h           ;AH 06 - прокрутка
                                   ;AL 00 - весь экран
     mov    bh,07h
         mov    cx,0000            ;нормальный атрибут (черно-белый)
     mov    dx,184fh           ;нижняя правая граница
     int    10h
     ret
 clearScreen     endp
 ; установка курсора через BIOS ( dh,dl-строка, столбец )
 setCursor  proc    near
     mov    ah,02              ;установить положение курсора
     mov    bh,00              ;страница 0
     int    10h
     ret
 setCursor   endp
 ; вывод текста через DOS  ( dx- адрес текста с '$' в конце )
 printString  proc  near
     mov    ah,09              ;функция вывода
     int    21h
     ret
 printString     endp
 ; ввод скэн(ah) и ascii(al) кода без "эха" через BIOS
 pressKey    proc   near
     mov    ah,00
     int    16h
     ret
 pressKey    endp
 ;Функция устанавливает стандартный 16ти цветовой графический режим
 setMode proc near
          mov ah,00h               ;установка графического режима
          mov al,03h               ;стандартный цветной текст (ч/б)
          int 10h
          ret
 setMode endp
 code    ends
     end    entry
43K
22 ноября 2012 года
Павел_AF
6 / / 19.10.2008
 
Код:
cont:   mov    ah,09h             ;функция выводящая строку на экран
          mov    bl,cols            ;загрузка в нижний регистр cols
          mov    cx,10
          int    10h
          inc    cols
          jmp    near ptr for
  main    endp
Добавлю пару строк из TechHelp и сразу всплывают ответы:
 
Код:
(1)  cont:   mov    ah,09h             ;функция выводящая строку на экран   <----- строку, состоящую из символа с кодом al в количестве cx штук
(2)          mov al,           <--- character to write
          mov    bl,cols            ;загрузка в нижний регистр cols
(3)          mov bh,   <---- video page number (0-based)
          mov    cx,10
          int    10h
          inc    cols
          jmp    near ptr for
  main    endp
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог