Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
тетрадь_ЗИ.doc
Скачиваний:
1
Добавлен:
10.11.2019
Размер:
711.17 Кб
Скачать

Лабораторная работа 2

ИССЛЕДОВАНИЕ НА МИКРОПРОЦЕССОРНЫХ УСТРОЙСТВАХ АЛГОРИТМОВ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ С ОДНОБАЙТОВЫМИ И МНОГОБАЙТОВЫМИ ЦЕЛЫМИ ЧИСЛАМИ (УМНОЖЕНИЕ И ДЕЛЕНИЕ)

Цель работы:

Ознакомление с принципами программирования на языке АССЕМБЛЕР МП 1810 с использованием отладочных средств исследуя алгоритмы арифметических операций умножения и деления однобайтных и многобайтных целых чисел.

Выполненние работы Программа 2.4

TITLE УМНОЖЕНИЕ ЦЕЛЫХ БЕЗ ЗНАКОВЫХ ЧИСЕЛ

TITLE ПОВЫШЕННОЙ ТОЧНОСТИ

TITLE С ИСПОЛЬЗОВАНИЕМ КОМАНД УМНОЖЕНИЯ 1810

; Определение сегмента стека

SSEG SEGMENT PARA STACK 'STACK'

DB 256 DUP(0)

SSEG ENDS

;

; Определение сегмента данных

;

DSEG SEGMENT PARA PUBLIC 'DATA'

MNOG1 DD 1 DUP (0) ; Множимое, длина 4 байта

MNOG2 DD 1 DUP (0) ; Множитель, длина 4 байта

REZULT DQ 1 DUP (0) ; Результат, длина 8 байтов

DSEG ENDS

;

; Определение сегмента кода программы

;

CSEG SEGMENT PARA PUBLIC 'CODE'

ASSUME CS:CSEG,DS:DSEG,SS:SSEG

;

MULT PROC FAR

mov ax,DSEG ; Определение адреса сегмента DATA

mov ds,ax ; Пересылка в сегментный регистр DS

Start: lea si,MNOG1 ; SI указывает первое число

lea bx,MNOG2 ; BX указывает второе число

lea di,REZULT ; DI указывает результат

mov ax,[si]

mul WORD PTR[bx] ; Вычислить B*D

mov [di],ax ; Младшее слово 1-го частичного результата

mov [di+2],dx ; Старшее слово 1-го частичного результата

mov ax,[si+2]

mul WORD PTR[bx] ; Вычислить A*D

add [di+2],ax ; Сдвиг 2-го частичного результата

adc [di+4],dx ; Старшее слово 2-го частичного результата

mov ax,[si]

mul WORD PTR[bx+2] ; Вычислить B*C

add [di+2],ax ; Частичный результат умножения на

;вторую цифру множителя.

adc [di+4],dx ; Старшее слово 3-го частичного результата

mov ax,[si+2]

mul WORD PTR[bx+2] ; Вычислить A*C

add [di+4],ax ; Сдвиг 4-го частичного результата

adc [di+5],dx ; Старшее слово 4-го частичного результата

jmp Start

MULT ENDP

CSEG ENDS

END MULT

Множимое

Множитель

Результат

десятичное

шестнадцат.

десятичное

шестнадцат.

десятичное

шестнадцат.

1

2

Таблица 2.1

Команда

содержимое регистров

аx

bx

cx

dx

cs

ds

di

si

Флаги

cf

zf

sf

pf

af

df