Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Пример использования директив и команд в программе






Имеются матрица байт Tabb (3´ 2) и константа С.

× C
Вычислить b 11 x b12 + b13

b21 + b22 + b23

 

Где: b11 = 26, b12 = 44, b13 = 02; Элементы матрицы

b21 = 08, b22 = 22, b 23 = 32; байт Tabb (2x3).

С = 6; константа.

Программа:

.MODEL SMALL; Задаём малую модель структуры программы.

.STACK 300H; Определяем размер сегмента стэка - 300Н (768 байт).

.DATA; Задаём начало и описываем сегмент данных.

Text DB ‘Это пример программы $‘; Этот текст выведем на экран.

C EQU 6; Зададим байтовую константу под именем C.

Tabb db 26, 44, 14; Создадим таблицу десятичных байт

Db 08, 22, 32; размером 2 х 3.

Y dw 3 dup (?); Сюда запишем итог вычислений.

.CODE; Задаём начало и описываем сегмент команд.

str: mov AX, @data; Загрузим адрес сегмента данных в АХ.

mov DS, AX; Перешлём его в регистр DS (инициализируем DS).

mov AH, 09H; Функция DOS 09Н вывода текста на экран.

lea DX, text; Перешлём в DX адрес выводимого текста.

int 21H; Команда вызова DOS.

Mov al, tabb; Перешлём b11 = 26 в регистр AL.

Mul [tabb+1]; Умножим содержимое AL на b12, теперь в АХ 0478H.

Add аl, tabb +2 ]; Сложим произведение с b13, теперь в АХ 0486H.

Mov bl, [tabb +3]; Перешлём b21 = 08 в регистр bl.

Add bl, [tabb + 4]; Сложим b 21 с b22, теперь в bl 30 (1EH).

Add bl, [tabb + 5]; Сложим сумму с b 23, теперь в bl 62 (3EH).

Div bl; Разделим АХ на сумму. Частное в al=18(12H), остаток в ah.

Mul С; Умножим al на С = 6. Теперь в АХ 108 (6CH).

Mov Y, ax; Перешлём произведение в ячейку Y.

mov AH, 4CH; Функция DOS завершения программы.

mov AL, 00H; код (0) успешного завершения программы.

int 21H; Вызов DOS.

end str; Конец программы с указанием точки входа.

При написании исходного текста программы, обратите внимание на то чтобы файл с текстом программы имел расширение.ASM, это расширение указывает транслятору что программа написана на языке ассемблера. Приведенная программа выполнена в ЕХЕ формате. Программы в этом формате могут иметь несколько сегментов. Обычно, при написании простых программ, используется малая модель структуры программ, которая подразумевает использование трех сегментов памяти. Один из сегментов отводится под стек, размер которого задается произвольно, но не меньше 128 байт. Если не задать размер стека, то операционная система определит его размер в 1024 байта. В приведенной программе стек определен в 300Н, то есть 768 байт. Необходимо обратить внимание, что программы в ЕХЕ формате должны начинаться с инструкций инициализации сегментного регистра DS, а заканчиваться тремя командами завершения программы и выхода в DOS. После написания и сохранения программы с ней необходимо провести операцию трансляции. Трансляцию программ удобно проводить с помощью менеджера программ FAR. Подробно последовательность действия при трансляции и запуске программ описана в главе 4.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.