Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
1. Изучить методические указания.
2. Подготовить ответы на контрольные вопросы.
3. Введите программу PROG4 с фрагментом из домашнего задания, используя текстовый редактор.
4. Оттранслируйте и скомпонуйте программу в режимах TASM/ZI, TLINK/V.
5. Загрузите отладчик и программу. Проведите ее трассировку. Целесообразно выполнять работу по частям, составляя и отлаживая законченные по смыслу фрагменты.
6. Наблюдайте результаты выполнения команд, используя окна Variables, Watches и/или Inspecting, открываемые из пункта View Главного меню. Сравнивайте полученные результаты с ожидаемыми. Для наблюдения состояния флажков используйте окно Registers.
7. Проанализировать приведенную ниже программу PROG4, написать комментарии ко всем командам сегмента кода, указав при этом тип используемых операндов и способ адресации.
8. Используя в качестве операндов переменные, определенные в сегменте данных, в соответствии с вариантом задания (Таб 4.1.) написать команды для выполнения указанных в таблице операций, вставить их в соответствующий фрагмент программы PROG4.
Таблица 4.1.
№ вар. | операция | 1-ый операнд | 2-ой операнд |
сложение | регистр | константа байт | |
сложение | регистр | переменная в памяти | |
умножение | регистр | регистр | |
сложение | переменная в памяти | константа байт | |
сложение | переменная в памяти | константа слово | |
умножение | регистр | переменная в памяти | |
вычитание | регистр | константа слово | |
сложение | переменная в памяти | константа байт | |
вычитание | регистр | константа байт | |
сложение | переменная в памяти | регистр | |
умножение | переменная в памяти | константа слово | |
вычитание | ЯП- косвенная адресация | регистр | |
вычитание | регистр | переменная в памяти | |
вычитание | переменная в памяти | константа слово | |
вычитание | переменная в памяти | константа байт |
Пример программы
TITLE PROG4 АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ
;
DATASG SEGMENT PARA
X0 DB 64H
X1 DB 40H
X2 DB 16H
X3 DW 4000H
X4 DW 2000H
X5 DW 1000H
Z1 DD 0123BC62H
Z2 DD 0012553AH REZ DD? DATASG ENDS
STACKSG SEGMENT 'Stack'
DB 12 DUP(?) STACKSG ENDS
CODESG SEGMENT PARA 'Code'
BEGIN PROC FAR
ASSUME SS:STACKSG,CS:CODESG,DS:DATASG
PUSH DS SUB AX,AX корректное
PUSH AX MOV AX,DATASG завершение
MOV DS,AX программы. Инициализация сегментного регистра DS.
ПРИМЕРЫ СЛОЖЕНИЯ
MOV AL,X0
MOV BL,X1
ADD AL,BL
ADD AL,X2
ADD X0,BL
ADD BL,
10H ADD X0,25H
ПРИМЕРЫ ВЫЧИТАНИЯ
MOV AX,X3
MOV BX,X4
SUB AX,BX
SUB AX,X5
SUB X3,BX
SUB BX,1000H
SUB X3,256H;
ПРИМЕР СЛОЖЕНИЯ ДВОЙНЫХ СЛОВ
LEA SI, Z1;адрес первого двойного слова.
LEA DI, Z2;адрес второго двойного слова
LEA BX, REZ.;адрес результата.
MOV AX, [SI];загрузка младшего слова Z1.
ADD AX, [DI];сложение младших слов Z1 и Z2.
MOV WORD PTR [BX], AX сохранение младшего слова результата.
INC SI формирование адреса старшего слова Z1
INC SI формирование адреса старшего слова Z2.
INC DI загрузка старшего слова Z1.
INC DI сложение старших слов Z1 и Z2
MOV AX, [SI] и возможного переноса.
ADC AX, [DI] сохранение старшего слова результата.;
MOV WORD PTR [BX+2], AX
. ПРИМЕР УМНОЖЕНИЯ MUL
MOV AL,X0
MUL X1
MOV AX,X3
MUL X5
MOV CX, 20H
MUL CX
ПРИМЕР УМНОЖЕНИЯ IMUL
MOV AX,X3
IMUL X3
MOV CX, -5
IMUL CX
RET
BEGIN ENDP; КОНЕЦ ПРОЦЕДУРЫ;
CODESG ENDS;КОНЕЦ СЕГМЕНТА;
END BEGIN;КОНЕЦ ПРОГРАММЫ
Контрольные вопросы
Дата публикования: 2014-11-18; Прочитано: 469 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!