Вопрос № 173848: ============================== Какой процессор используется. Если х86 Какая платформа для х86 ДОС Какой ассемблер предпочителен MASM ============================ Здравствуйте, уважаемые эксперты! Помогите написать программу на ассембле...
Вопрос № 173848:
============================== Какой процессор используется. Если х86 Какая платформа для х86 ДОС Какой ассемблер предпочителен MASM ============================ Здравствуйте, уважаемые эксперты! Помогите написать программу на ассемблере. Задание: Вывести в текстовом режиме в центр экрана символ, при нажатии клавиши символ заменяется на другой.
Был ответ!!! (Спасибо Зенченко Константин Николаевич, Модератор )
Смотрите
приложение. Выводится в центре экрана символ '#' с помощью прерывания ДОС 29h(выводимый символ в al, эта функция аналогична перыванию 21h функции 02h, но использует меньше байт в памяти). Второй выводимый символ '@'. Модель памяти tiny (все сегментные регистры имеют одинаковое значение и "смотрят" на один сегмент). Прграмма проверялась как в Masm так и в Tasm. Вопросы задаайте в мини-форум. Удачи!
.model tiny .186
.code org 100h begin: ;переходим в текстовый режим, одновременно чистим экран mov ax,03 int 10h ;курсор в позицию центра mov ah,02 xor bx,bx mov dh,13 mov dl,40 int 10h ;выводим первый символ mov al,'#' int 29h ;ожидаем нажатие клавиши xor ax,ax int 16h ;снова в центер mov ah,02 xor bx,bx mov dh,13 mov dl,40 int 10h ;выводим второй символ mov al,'@' int 29h ;любая клавиша и выход xor ax,ax int 16h ret end
begin
У МЕНЯ возник новый ВОПРОС !!! А как откомпелировать эту программу?? (если я ничего не путаю!). Я пробовал в MASM.exe, как я понял 5 версия! ( Microsoft (R) Macro Assembler Version 5.00 ) Подскажите как мне быть????? Помогите переделать чтобы программа пошла, заранее спасибо!!!
Отвечает amnick, 4-й класс :
Здравствуйте, поклонник Рубина. Это программа в формате COM, работает точно так, как описано в комментариях. Для MASM версии 5.x требуется 3 шага:
1. masm filename[.asm] Расширение исходного файла, если не указано - .ASM; на выходе — OBJ-файл. Если запустить без параметров, то MASM будет задавать вопросы.
2. link filename.obj На выходе — EXE-файл. Если предполагается, что нужно создавать COM-файл, то полученный на этом шаге EXE может быть неработоспособным (это зависит от конкретной
программы). Для того, чтобы получить COM-файл, нужен еще один шаг:
3. exe2bin filename.exe filename.com
Можно создать BAT-файл:
masm %1 link %~pn1 exe2bin %~pn1.exe %~pn1.com
Удачи! Если есть вопросы, задавайте в мини-форуме.
P.S. Дополнение. Если бы Вы пользовались TASM, то COM-программу можно было бы получить в 2 шага:
tasm filename[.asm] tlink -t filename[.obj]
Ответ отправил: amnick, 4-й класс
Ответ отправлен: 30.10.2009, 21:10
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 256033
на номер 1151 (Россия) |
Еще номера »
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.