Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Ассемблер? Это просто! Учимся программировать


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

_Ayl_
Статус: Студент
Рейтинг: 1408
∙ повысить рейтинг »
Boriss
Статус: Академик
Рейтинг: 1144
∙ повысить рейтинг »
vladisslav
Статус: 5-й класс
Рейтинг: 834
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Программирование / Assembler (Ассемблер)

Номер выпуска:1275
Дата выхода:05.11.2009, 14:30
Администратор рассылки:Лысков Игорь Витальевич, Модератор
Подписчиков / экспертов:436 / 65
Вопросов / ответов:1 / 1
IRC-канал по теме:#assembler

Вопрос № 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 )
Подскажите как мне быть?????
Помогите переделать чтобы программа пошла, заранее спасибо!!!

Отправлен: 30.10.2009, 19:57
Вопрос задал: поклонник Рубина, Посетитель
Всего ответов: 1
Страница вопроса »


Отвечает 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 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2009.6.10 от 26.10.2009

    В избранное