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

Уроки по ассемблеру

  Все выпуски  

Уроки по ассемблеру


Информационный Канал Subscribe.Ru


Assembler. Уроки с сайта http://progs.biz

Рассылка №8

Assembler. Урок 14. Делаем паузу или Press any key to continue.
Assembler. Урок 15. Выводим символ.

Полные версии уроков (с картинками) можно найти по адресам:
Урок 14. Делаем паузу или Press any key to continue.
Урок 15. Выводим символ.

Просиз Дж. Программирование для Microsoft.NET.
Просиз Дж. Программирование для Microsoft.NET
Заказать на Озоне

Подробнее

Рассылки сайта progs.biz через subscribe.ru
Уроки по DirectX
Уроки по DirectX. Использование графики (Direct3D, DirectDraw), звука, взаимодействие с пользователем (DirectInput). Применение DirectX в Visual C++, Visual Basic и др., на платформе .NET (языки C#, VB.NET). Каждый урок расчитан на 15-20 минут.

Ассемблер. Урок 14. Делаем паузу или Press any key to continue

Пара первых программ, которые мы с вами написали, закрываются сразу после запуска. Ничего толком углядеть невозможно. Для того, чтобы можно было бы увидеть результат их работы, надо запускать их в консольком окне (например, в Windows XP мы для этого должны вызвать командный интерпретатор - кнопка Пуск, затем Выполнить, набираем cmd в combobox'е Открыть).

На этом уроке мы с вами и посмотрим, как от этого избавится - а именно, в конце наша программа не будет закрываться, а будет ждать, пока пользователь не нажмет на любую клавишу. Для этого мы должны в конец программы добавить следующий код (для простоты только этот код конца программы и приведен):

CSEG segment
org 100h
Begin:
    ;Пауза (нажмите любой символ).
    mov ah, 10h
    int 16h

    ;Завершение программы.
    mov ah, 04Ch
    int 21h
CSEG ends
end Begin

Что мы тут делаем? Мы вызываем функцию 10h прерывания 16h для чтения символа из буфера клавиатуры. Если в буфере никакого символа нет, то программа ожидает, когда он там появится (именно это и происходит в нашей программе). Последующие 2 строки мы уже разбирали на предыдущих занятиях - это стандарное окончание программы.

Наверх

Ассемблер. Урок 15. Выводим символ

Сейчас мы с вами посмотрим, как программа может вывести некоторый символ на экран. Делать мы это будем по коду символа и конкретно будем использовать функцию 2h прерывания 21h.

Вот пример с выводом символа:

CSEG segment
org 100h
Begin:
    ;Вывод символа.
    mov dl, 41h
    mov ah, 2h
    int 21h
    
    ;Завершение программы.
    mov ah, 04Ch
    int 21h
CSEG ends
end Begin

Для вывода символа его код мы должны занести в регистр dl, после чего вызвать функцию 2h прерывания 21h. Код символа в нашем примере - это 41h:

...
mov dl, 41h
 ...

Если вы переведете 41h в десятичную систему счисления, то это будет 65. Общеизвестно, что это код символа A. Именно его мы и увидим на экране при запуске этой программы.

Наверх

Copyright Алексеев Игорь, 2002-2003
Copyright сайт progs.biz, 2002-2003
Распространение материалов без разрешения владельцев авторских прав запрещено.

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное