Пример полной программы на Ассемблере

Прежде, чем написать нашу первую полную программу на Ассемблере, нам необходимо научиться выполнять операции ввода/вывода, без которых ни одна сколько-нибудь серьёзная программа обойтись не может. В самом языке машины, в отличие от языка нашей учебной машины УМ-3, нет команда ввода/вывода,[13] чтобы, например, ввести целое число, необходима достаточно большая программа на машинном языке.

Для организации ввода/вывода мы в наших примерах будем использовать макрокоманды из учебника [5]. Вместо каждой макрокоманды Ассемблер будет подставлять соответствующий этой макрокоманде набор команд и констант (этот набор, как мы узнаем позже, называется макрорасшире­нием для макрокоманды).

Нам понадобятся следующие макрокоманды ввода/вывода.

· Макрокоманда вывода символа на экран

outch op1

где операнд op1 может быть в формате i8, r8 или m8. Значение операнда трактуется как код символа, этот символ выводится в текущую позицию экрана. Для задания кода символа удобно использовать символьную константу языка Ассемблер, например, ′A′. Такая константа преобразуется программой Ассемблера именно в код этого символа. Например, outch ′*′ выведет символ звёздочки на место курсора.

· Макрокоманда ввода символа с клавиатуры

inch op1

где операнд op1 может быть в формате r8 или m8. Код введённого символа записывается в место памяти, определяемое операндом.

· Макрокоманды вывода на экран целого значения

outint op1[,op2]

outword op1[,op2]

Здесь, как всегда, квадратные скобки говорят о том, что второй операнд может быть опущен. В качестве первого операнда op1 можно использовать i16, r16 или m16, а второго – i8, r8 или m8. Действие макрокоманды outint op1,op2 полностью эквивалентно процедуре вывода языка Паскаль write(op1:op2), а действие макрокоманды с именем outword отличается только тем, что первый операнд трактуется как беззнаковое (неотрицательное) число.

· Макрокоманда ввода целого числа

inint op1

где операнд op1 может иметь формат r16 или m16, производит ввод с клавиатуры на место первого операнда целого значения из диапазона –215..+216. Особо отметим, что операнды форматов r8 и m8 недопустимы.

· Макрокоманда без параметров








Дата добавления: 2015-10-05; просмотров: 901;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.