Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Assembler 01.doc
Скачиваний:
19
Добавлен:
09.11.2019
Размер:
727.04 Кб
Скачать

8. Деление вычитанием.

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

8.2. Составьте в текстовом редакторе NORTON программу exdsub.asm в СОМ-формате:

MAIN PROC NEAR

MOV AX,81H

MOV BX,30H

SUB CX,CX ;Очистка частного

C20: CMP AX,BX ;Если делимое < делителя

JB C30 ;то выйти

SUB AX,BX ;Вычит. делит. из делимого

INC CX ;Инкремент частного

JMP C20 ;Повторить цикл

C30: RET ;Частное в СХ, остаток в АХ

MAIN ENDP

Делитель находится в регистре АХ, а делимое - в ВХ, частное вырабатывается в СХ.

В конце программы регистр СХ будет содержать частное, в АХ - остаток.

8.3. Выполнить ассемблирование и компоновку программы. Записать листинг программы в отчет. Вызвать отладчик DEBUG на выполнение программы.

8.4. Выполнить трассировку программы внимательно отслеживая

содержимое регистров АХ, ВХ и СХ. Выводы о работе программы записать в отчет.

9. Преобразование знака.

9.1. Составьте в текстовом редакторе NORTON программу exnot.asm в СОМ-формате:

MAIN PROC NEAR

MOV AX,81H

MOV DX,30H

NEG AX

NEG DX

MOV AX,81H

MOV DX,30H

NOT DX ;Инвертирование битов

NOT AX ;Инвертирование битов

ADD AX,1 ;Прибавление 1 к АХ

ADC DX,0 ;Прибавление переноса к DX

RET

MAIN ENDP

Команда NEG обеспечивает преобразование знака двоичных чисел из положительного в отрицательное и наоборот. Команда NEG устанавливает противоположные значения битов и прибавляет 1.

Команда NOT применяется для преобразования знака регистровой пары DX:AX.

9.2. Выполнить ассемблирование и компоновку программы. Записать листинг программы в отчет. Вызвать отладчик DEBUG на выполнение программы.

9.3. Выполнить трассировку программы внимательно отслеживая содержимое регистров АХ и DХ. Выводы о работе программы записать в отчет.

СОДЕРЖАНИЕ ОТЧЕТА:

1. Листинги программ.

2. Выводы о работе программ.

КОНТРОЛЬНЫЕ ВОПРОСЫ:

Вопросы имеют отношение к следующим данным:

DATAX DW 0148H

DW 2316H

DATAY DW 0237H

DW 4052H

DATAZ DW 0 ;Для результата

DW 0 ;Для результата

DW 0 ;Для результата

1. Закодируйте команды для сложения: а) слова DATAX со словом DATAY; б) двойного слова, начинающегося по адресу DATAX, с двойным словом в DATAY.

2. Объясните действие следующих команд:

STC

MOV BX,DATAX

ADC BX,DATAY

3. Закодируйте команды для умножения (MUL): а) слова DATAX на слово DATAY: б) двойного слова, начинающегося по адресу DATAX на слово DATAY.

4. Закодируйте команды для деления (DIV): а) слова DATAX на 23; б) двойного слова, начинающегося по адресу DATAX, на слово DATAY.

ОТВЕТЫ:

1. а) MOV AX,DATAY

ADD AX,DATAX

MOV DATAZ,AX

б) MOV AX,DATAX+2

ADD AX,DATAY+2

MOV DATAZ+2,AX

MOV AX,DATAX

ADC AX,DATAY

MOV DATAZ,AX

2. Команда STC устанавливает флаг CF. Сумма равна 0148Н плюс 0237Н плюс 1.

3. а) MOV AX,DATAX

MUL DATAY

MOV DATAZ+2,AX

MOV DATAZ,DX

б) MOV AX,DATAX+2

MUL DATAY

MOV DATAZ+4,AX

MOV DATAZ+2,DX

MOV AX,DATAX

MUL DATAY

ADD DATAZ+2,AX

ADC DATAZ,DX

4. а) MOV AX,DATAX

MOV BL,23

DIV BL

MOV DATAZ,AX

б) MOV DX,DATAX

MOV AX,DATAX+2

DIV DATAY

MOV DATAZ+2,AX

MOV DATAZ,DX

Л а б о р а т о р н а я р а б о т а N 8

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]