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

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

ИССЛЕДОВАНИЕ НА МИКРОПРОЦЕССОРНЫХ УСТРОЙСТВАХ АЛГОРИТМА ИЗВЛЕЧЕНИЯ

КВАДРАТНОГО КОРНЯ.

Цель работы:

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

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

TITLE ВЫЧИСЛЕНИЕ КВАДРАТНОГО КОРНЯ

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

SSEG SEGMENT PARA STACK 'STACK'

DB 128 DUP(0)

SSEG ENDS

;

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

;

DSEG SEGMENT PARA PUBLIC 'DATA'

NUMBER DD 1 DUP (0) ; Число, длина 32 бита

REZLT DW 1 DUP (0) ; Результат, длина 2 байта (слово)

DSEG ENDS

;

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

;

CSEG SEGMENT PARA PUBLIC 'CODE'

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

;

SQRT32 PROC FAR

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

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

Start: lea bx,NUMBER ; Занесение адреса числа в регистр BX

mov ax,[bx] ; Занести число в регистры МП

mov dx,[bx+2] ;

push bp ; Сохранить регистры BP, DX, AX в стеке

push dx

push ax

mov bp,sp ; Поместить ВР на значение АХ в стеке

mov bx,200 ; В качестве начального приближения

div bx ; разделить исходное число на 200,

add ax,2 ; затем добавить 2.

NXT_APP:

mov bx,ax ; Сохранить полученное приближение в ВХ.

mov ax,[bp] ; Прочитать исходное число заново

mov dx,[bp+2]

div bx ; Разделить на последнее приближение и

add ax,bx ; усреднить результат

shr ax,1

cmp ax,bx ; Два последних приближения идентичны?

je DONE

sub bx,ax ; Нет. Сравнить их разность с +1 и -1

cmp bx,1

je DONE

cmp bx,-1

jne NXT_APP

DONE: mov bx,ax ; Поместить результат в ВХ

mov REZLT,bx ; Переслать результат в память

pop ax ; Восстановить регистры.

pop dx

pop bp

jmp Start

SQRT32 ENDP

CSEG ENDS

END SQRT32

Таблица 3.1.

Число

Корень квадратный

Количество циклов

Алгоритм программы 3.1

Выводы:________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ Выполнил студент _____________________ дата _____________________________

Принял ___________________ "____________________" оценка ________ дата __________________

(подпись) (Ф И О)