Здравия. Двигаюсь по книге Калашникова. На диске пример - вывести в консоль рожицу синего цвета Код (Text): mov ax,0B800h mov es,ax mov di,0 mov ah,31 mov al,1 mov es:[di],ax mov ah,10h int 16h int 20h проблемма в том, чо рожица то невылезает)) наверно бред скажу, но я его скаж - может ли это быть из за того, что пример реальзован на разных процессорах?(у меня core duo) хотя разрядность регистров то одна.. Вобщем, подскажите в чем ошибка. Дополнительная инфорамция приветствуется. Благодарю за внимание.
поиск по слову "рожица"? http://www.wasm.ru/forum/viewtopic.php?pid=198557#p198557 Код (Text): mov ax, 3 int 0x10 многих спасало
Калашников писал примеры под ДОС, вы же запускаете прогу в консоли, нужно установить видео режим – Код (Text): mov ah,00h mov al,03h int 10h mov ax,0B800h mov es,ax mov di,0 mov ah,31 mov al,1 mov es:[di],ax mov ah,10h int 16h int 20h
Точно! Я сначала думал, что 0B800 и есть режим, а это только сегмент дисплея в текстовом режиме, Спасибо вам. Про ДОС - я понимаю что эти программки под дос написаны, но я думал, что DOS машина(не помню как называется точно, когда com приложения запускаются) все делает сама))))) Благодарю за помощь.
хм.. тут процедура которая по идее проверяет видеорежим Код (Text): check_video proc ; Проверяем на текстовый режим монитора и на текущую видео страницу mov ah, 0Fh int 10h cmp ax, 3h je ok_video mov ax, 3h int 10h ok_video: cmp bh, 0 jz ok_page mov ax, 0500h int 10h ok_page: ret check_video endp после этого моя прога должна выводить сообщение на экран, типо такого: Код (Text): mov ah, 9 mov dx, offset msg int 21h но невыводит. посмотрите, где накосячил? второй час пошел, все думаю...
В ah возвращается число столбцов, и только в al номер режима. Посему cmp al, 3. И ds:dx должен указывать на строку. Уверены, что он правильно настроен,- на тот сегмент, в котором строка?