Программирование на Ассемблере
Иначе Вам придется открыть собственное окно.
Чтобы обеспечить работу программы в любых условиях, будем открывать окно
ввода/вывода (консоль). Существует несколько режимов работы с консолью
(например, RAW: или CON:), но мы для определенности будем использовать
только CON:.
Итак, допустим, что Вы открыли окно ввода/вывода и хотите напечатать в нем
текстовую строку. Для использования в функции вывода эта строка должна быть
представлена в следующем виде: title: dc.b \'** Welcome to this program ! **\'
titleend:
align ;или even Мы рекомендуем всегда использовать директиву align (even) после определения
текстовой строки, так как это гарантирует корректность адресов при
дальнейших описаниях.
Для вывода текста в созданное окно используется функция Write. Эта функция
имеет смещение -48 и вызывается с тремя параметрами: в D1 идентификатор канала (консоли) для вывода.
в D2 адрес строки текста для вывода (в нашем случае адрес \"title\").
в D3 количество байт для вывода Чтобы определить число байт для вывода, нужно подсчитсть количество
символов в тексте. Однако за Вас это может сделать ассемблер, если Вы
напишете: move.l #titleend-title,D3 Главным преимуществом такого определения является то, что Вы легко сможете
изменять текст, не заботясь о его длине, а также добавлять некоторые
управляющие коды (спецсимволы). Рассмотрим пример использования Write: Write = -48 ;(6.4.1A)
... ;здесь нужно открыть окно
...
move.l dosbase,A6 ;адрес библиотеки dos
move.l conhandle,D1 ;идентификатор консоли
move.l #title,D2 ;указатель на строку для вывода
move.l #titleend-title,D3
;количество символов
jsr Write(A6) ;вызываем функцию
... title: dc.b \"** Welcome to this program ! **\"
titleend:
align ;или even (для SEKA) end
Это, несомненно, очень полезная функция.
|