![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Пример использования директив и команд в программе
Имеются матрица байт Tabb (3´ 2) и константа С.
Где: 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. mov AH, 09H; Функция DOS 09Н вывода текста на экран. lea DX, text; Перешлём в DX адрес выводимого текста. int 21H; Команда вызова DOS. Mov al, tabb; Перешлём b11 = 26 в регистр AL Mul [tabb+1]; Умножим содержимое AL на b12, теперь в АХ 1144 (0478H) Add аl, tabb +2 ]; Сложим произведение с b13, теперь в АХ 1158 (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; Конец программы с указанием точки входа.
|