Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для начинающих > ПОВ


Автор: Tiglon 26.2.2013, 00:35
Доброго времени суток.
Люди помогите пожалуйста.
Вот этот код выводит ASCII для DOS режима. То есть 7 элемент таблицы оно выводит не как значок а как звуковой сигнал и все остальные символы так же.
Но мне нужно вывести для ПОВ режима. По Калашникову ПОВ - отображение символа на экране при помощи вывода с использованием метода прямого вывода в видеобуфер.
Но моя проблема в том что я вообще не понимаю как это работает.
Будьте добры помогите, объясните  
Код

.model small
.data        
.code
        
main proc
        mov         cx,16      
        mov         dl,0h       
        mov         ah,02h  
cloop:  int         21h         
        inc         dl            
        test        dl,03h        
        jnz         continue_loop 
        push        dx             
        mov         dl,0Dh        
        int         21h   
        mov         dl,0Ah      
        int         21h  
        pop         dx          
continue_loop:
        loop        cloop         
        ret                        
main endp
end main
code ends


Автор: LeonidPr 27.2.2013, 14:44
В обычном текстовом видеорежиме (03h при использовании функции 00h прерывания BIOS int 10h) адрес видеобуфера - B800:0000
Четные ячейки содержат код отображаемого символа, нечетные - атрибуты, разрешение в 80x25 символов.
Дальше дело техники - пусть вам нужно отобразить символ в позиции x,y
offset=y*160+x*2
Где offset - смещение относительно начала видеобуфера
пишете по адресу B800:offset код символа, а по адресу B800:offset+1 атрибут (например 07h - обычный белый символ на черном фоне)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)