Вопрос № 77813: Здравствуйте, уважаемые эксперты!
Мне требуется определить текущий видеорежим. Для этого использую
mov AH,0F, затем PUSH AL. Но ассемблер помечает в командной строке эти строки как ошибки. Подскажите, пожалуйста, что мне делать? я использу...
Вопрос № 77.813
Здравствуйте, уважаемые эксперты!
Мне требуется определить текущий видеорежим. Для этого использую
mov AH,0F, затем PUSH AL. Но ассемблер помечает в командной строке эти строки как ошибки. Подскажите, пожалуйста, что мне делать? я использую TASM
Приложение:
Отправлен: 11.03.2007, 04:06
Вопрос задал: Archangel (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Евгений Иванов
Здравствуйте, Archangel!
Не нужно ничего записывать в стек.
Для получения режима просто используй
mov ah, 15
int 16
после этого в AL будет текущий видеорежим. Используй это значение для сохранения или сравнения.
cmp al, 3
jz err
Успехов.
--------- Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор) Россия, Нижний Новгород Тел.: +78313145721 Организация: M2Media.ru Адрес: Нижний Новгород, ул.Малая Ямская WWW:Eugene Ivanov ICQ: 214889076 ---- Ответ отправлен: 11.03.2007, 04:13
Отвечает: ASMодей
Здравствуйте, Archangel!
mov AH,0Fh
INT 10h
push AX
Ответ отправил: ASMодей (статус: Профессионал) Россия, Магнитогорск ---- Ответ отправлен: 11.03.2007, 06:47 Оценка за ответ: 5
Отвечает: Волков Павел Юрьевич
Здравствуйте, Archangel!
Ошибка в строке
mov AH,0F
из-за неверного формата записи шестнадцатеричных чисел, правильный вариант:
mov AH,0Fh
или
mov AH,0xF ;сишный формат записи
Вторая ошибка:
push AL
в стек нельзя помещать 8-битные значения, только 16 и 32-битные, для платформы x86.
Для используемого 16-битного режима, в стек по-умолчанию помещается 16-битная переменная, для помещения 32-битной переменной:
push eax
push dword ptr [var] ; применяем специальные указания компилятору
push [var] ;помещается 16-битное число, при var dw 99, при var dd 99, компилятор может подставить dword ptr сам, иначе выдаст ошибку, тогда подставьте сами.
При использовании 32-битного кода, применяется модификатор word ptr
push word ptr [var]
Подробную информацию можете найти в любом учебнике по Ассемблеру, например Юрова "Assembler. Учебник для вузов".
--------- Век живи, век учись.
Ответ отправил: Волков Павел Юрьевич (статус: Студент)
Ответ отправлен: 11.03.2007, 07:37 Оценка за ответ: 4
Отправить вопрос экспертам этой рассылки
Приложение (если необходимо):
* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.
Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!
Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.
Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.