Вопрос № 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