Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 / МУ_ЭВМ+ПУ_ч1 / 11-МУ_ЭВМ+ПУ-прилA.docx
Скачиваний:
34
Добавлен:
28.05.2015
Размер:
42.8 Кб
Скачать

ПРИЛОЖЕНИЕ А

А.1 Описание модуля io.Asm

Рассматриваемый модуль приведен в книге В. Н. Пильщикова «Ассемблер» [7].

Ввод с клавиатуры

Ввод данных с клавиатуры реализован с использованием промежуточного буфера ввода. Допускается редактирование вводимого текста: при нажатии клавиши Backspace уничтожается последний набранный символ, а при нажатии клавиши Esc уничтожается весь набранный текст.

Команды ввода не выдают на экран никакого приглашения к вводу, поэтому сама программа должна выдавать символы приглашения (например, символ >).

***************************************************************

Ввод числа: inint ор

Допустимый тип операнда op: слово из регистра или из памяти.

По команде можно ввести число как со знаком, так и без знака. Вводимое число должно быть записано в десятичной системе. Если перед числом имеются пробелы, то они "проглатываются" командой ININT.

Если число набрано без знака или со знаком "плюс", то оно вводится как число без знака и может иметь величину от 0 до 2 16-1.

Если перед числом указан знак "минус", то оно вводится как отрицательное число и должно иметь величину от -2 15 до -1.

Концом числа считается любой символ, отличный от цифры.

Если величина числа находится вне указанных границ или оно задано неправильно, то фиксируется ошибка, и программа прекращает свою работу.

Так как введенное число всегда записывается в регистр или ячейку размером в слово, то, например, команда ININT АХ допустима, а команда ININT АН - нет.

***************************************************************

Очистка буфера ввода: flush

Это аналог процедуры readln языка Паскаль: все, что до этого момента было набрано на клавиатуре, уничтожается.

***************************************************************

Вывод на экран

Вывод на экран осуществляется немедленно, без каких-либо промежуточных буферов. Очередной выводимый символ размещается в той позиции экрана, где сейчас находится курсор, который по мере вывода смещается.

***************************************************************

Переход на новую строку: newline

Аналог процедуры writeln языка Паскаль: по этой команде курсор перемещается на начало следующей строки экрана.

***************************************************************

Вывод числа со знаком: outint opl [,ор2]

Вывод числа без знака: OUTWORD opl [,op2]

Допустимые типы операндов op1: слово из регистра или из памяти, op2: байт из регистра, памяти или непосредственный операнд

Обе эти команды выводят в десятичном виде число, заданное первым операндом и имеющее размер слова, только команда OUTINT трактует его как знаковое число, а команда OUTWORD - как беззнаковое.

OUTINT 0FFFFh ; вывод -1

OUTWORD 0FFFFh ; вывод 65535

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

Соседние файлы в папке МУ_ЭВМ+ПУ_ч1