Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.09.2014, 18:01   #1
zla9_kolu4ka
Форумчанин
 
Регистрация: 16.09.2013
Сообщений: 149
По умолчанию Не работает пример по отображению символа в видеопамять (DOS)

Почему рожица не выводитсяна экран??
Может из-за того, что использую FarManager?
Код:
CSEG	segment
org	100h
_beg:
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

CSEG	ends
end	_beg
zla9_kolu4ka вне форума Ответить с цитированием
Старый 09.09.2014, 18:10   #2
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,774
По умолчанию

А что 10-я функция делает? Уже забыл. Большое подозрение, что ее вызов в конце лишний. Ты же напрямую в видеопамять пишешь.

Если в модной Винде WDDI не поддерживает полноэкранный режим, установи в консольном окне шрифт Lucida Console. У меня в Far 3 по Alt+1 в строках ввода и в редакторе рожицы рисуются.
Vapaamies вне форума Ответить с цитированием
Старый 09.09.2014, 18:12   #3
zla9_kolu4ka
Форумчанин
 
Регистрация: 16.09.2013
Сообщений: 149
По умолчанию

Цитата:
А что 10-я функция делает?
ждет нажатия любой клавиши
Цитата:
установи в консольном окне шрифт Lucida Console
да я пробывал менял, ничего не дает
zla9_kolu4ka вне форума Ответить с цитированием
Старый 09.09.2014, 18:32   #4
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,774
По умолчанию

Не работает, странно. Вообще ничего не выводится. Для опытов с DOS я бы перешел в DOS.
Vapaamies вне форума Ответить с цитированием
Старый 09.09.2014, 18:35   #5
zla9_kolu4ka
Форумчанин
 
Регистрация: 16.09.2013
Сообщений: 149
По умолчанию

вотЪЪЪ_______
Цитата:
Не работает, странно. Вообще ничего не выводится
Изображения
Тип файла: jpg far_asm.jpg (13.9 Кб, 139 просмотров)
zla9_kolu4ka вне форума Ответить с цитированием
Старый 09.09.2014, 20:01   #6
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,774
По умолчанию

Цитата:
Сообщение от zla9_kolu4ka Посмотреть сообщение
вотЪЪЪ_______
Под XP у меня та же хрень. Под словами "перейти в DOS" я имел в виду не черное окно консоли, а настоящую DOS, запущенную на голом железе или хотя бы в виртуальной малине.

Попытки писать под DOS из-под NT чреваты бесконечной борьбой с ограничениями NTVDM, что хуже всего: при отладке нельзя быть уверенным, то ли твой код не работает, то ли опять NTVDM чудит. Он, грубо говоря, обеспечивать 100%-ю совместимость с DOS не клялся.
Vapaamies вне форума Ответить с цитированием
Старый 09.09.2014, 20:02   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
вотЪЪЪ_______
Код:
 mov     ah, 2
 mov     dl, 2
 int     21h             ; DOS - PRINT CHAR

 mov     ah, 1
 int     21h             ; DOS - KEYBOARD INPUT
 mov     ah, 4Ch
 int     21h
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.09.2014, 20:10   #8
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,774
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
 int     21h             ; DOS - PRINT CHAR
Это паллиатив. Код из первого примера на первый взгляд не содержит ничего крамольного и должен работать, поскольку под VGA прямая запись в видеопамять является штатным способом вывода. Turbo Vision так работает. Вот только DN свои окна рисует, а код из примера -- нет. В Turbo Vison, правда, кода побольше... Но изучать его повторно в 2014-м году на предмет совместимости с NTVDM, -- увольте, я лучше испанский буду учить.
Vapaamies вне форума Ответить с цитированием
Старый 09.09.2014, 21:33   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Это паллиатив
Ну и что? Он то должен сработать у автора.
Кстати... Вот там mov al,1. Это ведь аттибуты символа? Но почему единица? Насколько я помню нужно что-то Цвет+16*Фон. А единица?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.09.2014, 22:55   #10
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,774
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Вот там mov al,1. Это ведь аттибуты символа? Но почему единица? Насколько я помню нужно что-то Цвет+16*Фон.
Не-а, единица -- это символ рожицы, а атрибут -- 31h -- синим по голубому, если не путаю. Всё чин чином.
Vapaamies вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
почему работает пример! zla9_kolu4ka Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 19.09.2013 07:07
Выручайте пример не работает. Ильюха1 Помощь студентам 2 08.04.2011 16:24
Прямой ввод в видеопамять DOS ccccfr Помощь студентам 1 06.04.2011 16:19
Пример из книги не работает qwerty09 Общие вопросы C/C++ 12 19.08.2009 09:13
не работает пример самосоединения motya770 SQL, базы данных 2 01.07.2009 00:11