Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

zoshyt

.pdf
Скачиваний:
12
Добавлен:
19.02.2016
Размер:
240.49 Кб
Скачать

Работа №2

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11

Работа №2

 

 

 

 

 

 

 

 

 

 

 

 

 

Программа 2.5

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SSEG

SEGMENT PARA

 

STACK

'STACK'

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DB

 

128 DUP(0)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SSEG

ENDS

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DSEG

SEGMENT PARA PUBLIC

'DATA'

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DELIM

 

DD 1 DUP (0) ; Делимое, длина двойное слово

 

 

 

 

 

 

 

 

 

 

 

 

DELIT

DW

1 DUP (0) ; Делитель, длина слово

 

 

 

 

 

 

 

 

 

 

 

 

 

 

REZLT

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

OSTAT

DW 1 DUP (0) ; Остаток, длина слово

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DSEG

ENDS

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CSEG

SEGMENT PARA PUBLIC

'CODE'

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DIVD

PROC

FAR

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

mov

 

ax,DSEG

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

 

 

 

 

 

 

 

 

 

 

mov

 

ds,ax

 

 

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

 

 

 

 

 

 

 

 

 

 

Start: lea

 

bx,DELIM ; Занесение адреса делимого в регистр BX

 

 

 

 

 

 

 

 

 

 

mov

 

ax,[bx]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

mov

 

dx,[bx+2]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

div

 

DELIT ; Деление двух чисел (DXAX:DELIT=AX, DX)

 

 

 

 

 

 

 

 

 

 

mov

 

REZLT,ax

 

; Сохранение результата

 

 

 

 

 

 

 

 

 

 

 

 

 

 

mov

 

OSTAT,dx

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

jmp

 

Start

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DIVD

ENDP

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CSEG

ENDS

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

END DIVD

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Делимое

 

 

 

Делитель

 

 

 

Частное

 

 

десятичное

шестнадцат.

 

десятичное

 

 

шестнадцат.

десятичное

 

шестнадцат.

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 2.2

Команда

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

аx

 

bx

 

cx

 

 

dx

 

cs

 

ds

 

di

si

 

 

 

 

Флаги

 

 

 

 

 

 

 

 

 

 

 

 

 

cf

zf

 

sf

pf

af

df

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12

Работа №2

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

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

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

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

13

Работа №2

| Программа деления 16-ти битного числа на 8-битное | число по описанному методу в пункте 1.2.

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

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

Выводы:________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

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

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

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

14

Работа №3

ЛАБОРАТОРНАЯ РАБОТА 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

15

Работа №3

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 Выводы:________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

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

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

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

16

Работа №4

ЛАБОРАТОРНАЯ РАБОТА 4

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

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

ВЫПОЛНЕННИЕ РАБОТЫ

Программа 4.1

;Программа вычисления синуса угла (целые значения от 0 ;до 360 градусов), содержащегося в регистре AX. Значениe ;синуса угла, в прямом коде, возвращается в регистре BX

;

01

DOSSEG

 

02

.MODEL TINY

 

03

STACK 200h

 

04

.DATA

 

;

Значения синуса

Градусы

;

 

 

 

 

 

05 Bradees DW

0,175,349,523,698,872 ; 0 - 5

06

DW

1045,1219,1392,1564,1736 ; 6 - 10

07

DW

1908,2079,2250,2419,2588

; 11 - 15

08

DW

2756,2924,3090,3256,3420

; 16 - 20

09

DW

3584,3746,3907,4067,4226

; 21 - 25

10

DW

4384,4540,4695,4848,5000

; 26 - 30

11

DW

5150,5299,5446,5592,5736

; 31 - 35

12

DW

5878,6018,6157,6293,6428

; 36 - 40

13

DW

6561,6691,6820,6947,7071 ; 41 - 45

14

DW

7193,7313,7431,7547,7660 ; 46 - 50

15

DW

7771,7880,7986,8090,8191 ; 51 - 55

16

DW

8290,8387,8480,8572,8660

; 56 - 60

17

DW

8746,8829,8910,8988,9063

; 61 - 65

18

DW

9135,9205,9272,9336,9397

; 66

- 70

19

DW

9455,9511,9563,9613,9659 ; 71

- 75

20

DW

9703,9744,9781,9816,9848 ; 76

- 80

21

DW

9877,9903,9926,9945,9962

; 81

- 85

22DW 9976,9986,9994,9998,10000 ; 86 - 90

;

23.CODE

24StartPr: mov ax,@Data

25mov ds,ax

26 mov ax,0 ; Записать в AX 0 ;*********************************************************

;Перед выполнением следующей команды занесите

;в AX значение угла (в градусах) в HEX коде

;*********************************************************

27

sub cx,cx

; Установить маску знака "+"

 

 

; (старший разряд = 0)

28

cmp ax,181

; Угол < 181 ?

29

jb Sin_pos

; ДА. Оставить со знаком "+"

30

mov cx,8000h

; НЕТ. Изменить знак на "-"

 

 

; (старший разряд = 1)

31

sub ax,180

; и вычесть из угла 180

17

Работа №4

32

Sin_pos: cmp

ax,91 ; Угол < 91 ?

33

jb Get_sin

; ДА. Извлечь из таблицы значение синуса

34

neg ax

; НЕТ. Вычесть угол из 180

35

add ax,180

 

36

Get_sin: mov bx,ax ; Сделать угол индексом слова (2байта)

37shl bx,1

38mov bx,Bradees[bx] ; Извлечь значение синуса

39

or bx,cx

; с помощью маски (CX) установить знак

 

 

40

jmp StartPr

; в значение синуса (BX)

 

 

 

 

 

 

 

 

;

 

 

 

 

 

 

 

41

end StartPr

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 4.1

 

 

 

УГОЛ

 

СИНУС УГЛА

 

 

DEC

 

HEX

DEC

 

HEX

 

1

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

3

 

 

 

 

 

 

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

Программа вычисления косинуса угла в диапазоне от 0 до 360 градусов табличным способом на языке Ассемблер МПК 1810:

18

Работа №4

Выводы:________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

Выполнил студент _____________________

дата _____________________________

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

(подпись)

(Ф И О)

19

Работа №5

ЛАБОРАТОРНАЯ РАБОТА 5

ИССЛЕДОВАНИЕ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ ДЛЯ ЧИСЕЛ, ПРЕДСТАВЛЕННЫХ В ФОРМАТЕ С ПЛАВАЮЩЕЙ ЗАПЯТОЙ

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

ВЫПОЛНЕННИЕ РАБОТЫ

Программа 5.1

;TITLE ПРОГРАММА ДЛЯ СЛОЖЕНИЯ И ВЫЧИТАНИЯ

;TITLE ЧИСЕЛ В ФОРМАТЕ С ПЛАВАЮЩЕЙ ЗАПЯТОЙ

SSEG

SEGMENT PARA STACK 'STACK'

 

DB 256 DUP(0) SSEG ENDS ;

DSEG

SEGMENT PARA PUBLIC 'DATA'

XDD 1 DUP (0)

YDD 1 DUP (0)

ZDD 1 DUP (0)

DSEG

ENDS

 

;

 

 

CSEG

SEGMENT PARA PUBLIC 'CODE'

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

;

 

 

ADDSUBF PROC

FAR

 

mov

ax,DSEG

 

mov

ds,ax

;Первый операнд Х в регистрах BX:SI,

;второй Y в регистрах DX:DI,

;результат возвращается из регистрав BX:SI в Z.

Start: lea

si,X

lea

di,Y

mov

bx,[si+2]

mov

si,[si]

mov

dx,[di+2]

mov

di,[di]

; Переход к подпрограммам сложения, вычитания

call

ADDSBF

; Сохранить результат

lea

di,Z

mov

[di],si

mov

[di+2],bx

jmp

Start ;ret

ADDSUBF ENDP

ADDSBF PROC ;================================================

;Сложение чисел с плавающей точкой.

;Первый операнд Х в регистрах BX:SI,

;второй Y в регистрах DX:DI,

;сумма возвращается в регистрах BX:SI.

;При антипереполнении флажок CF установлен в 1

;================================================

20

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