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

zoshyt

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

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ

НАЦИОНАЛЬНЫЙ АВИАЦИОННЫЙ УНИВЕРСИТЕТ

М И К Р О П Р О Ц Е С С О Р Ы

(тетрадь для лабораторных работ)

Студента__________________________________________________

____________________________________________________группы факультета электроники и телекоммуникаций

Киев 200__

Работа №1

ОБЩИЕ МЕТОДИЧЕСКИЕ УКАЗАНИЯ

Цель лабораторных работ ознакомление с элементами микропроцессорных устройств, получение навыков составления программ на языке Ассемблера, работе с инструментальными и отладочными средствами микропроцессорных устройств, а также углубление и конкретизация программного материала, изучаемого в лекционной части курса.

В начале цикла лабораторных работ студенты проходят инструктаж по технике безопасности, правила которой обязаны соблюдать в ходе работ, а также инструктаж по основным правилам работы на персональной ЭВМ.

Выполнение каждой лабораторной работы состоит из до аудиторной подготовки, включающей:

-изучение соответствующего теоретического материала;

-ознакомление с лабораторной работой;

-составления алгоритмов и программ, если это требуется согласно описанию работы;

-ответов на контрольные вопросы;

-подготовки отчета по лабораторной работе;

ипроведения лабораторных исследований, обработки результатов исследований, оформления отчета

изащиты работы.

Перед выполнением очередной лабораторной работы студент должен представить преподавателю полностью оформленный отчет по предыдущей работе, а также материал, необходимый для выполнения следующей работы.

Окончив работу, студент предъявляет полученные результаты преподавателю. Если работа выполнена неправильно, студент должен выполнить ее вторично.

Отчет по лабораторной работе составляется каждым студентом самостоятельно и должен содержать:

-название и цель лабораторной работы;

-основные теоретические сведения;

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

-таблицы экспериментальных данных и графики;

-выводы по результатам работы.

Зачет по выполненной работе производится до выполнения следующей лабораторной работы. Если предыдущая работа не выполнена, студент не допускается к выполнению следующей лабораторной работы.

2

Работа №1

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

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

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

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

Программа 1.1

 

 

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

 

 

 

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

 

 

 

 

 

 

SSEG

SEGMENT PARA STACK

'STACK'

 

 

 

DB

256 DUP(0)

 

 

 

 

 

 

 

SSEG

ENDS

 

 

 

 

 

 

 

 

 

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

 

 

DSEG

SEGMENT PARA PUBLIC

'DATA'

 

 

 

SLOG1

 

DW 1 DUP (0) ; Слагаемое 1, длина слово

 

 

 

SLOG2

 

DW 1 DUP (0) ; Слагаемое 2, длина слово

 

 

 

SUM

DD

2 DUP(0) ; Результат, длина 3 байта

 

 

 

DSEG

ENDS

 

 

 

 

 

 

 

 

 

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

 

 

 

CSEG

SEGMENT PARA PUBLIC

'CODE'

 

 

 

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

 

 

 

SUMMA PROC FAR

 

 

 

 

 

 

mov

ax,DSEG

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

 

 

mov

ds,ax

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

 

 

Start: clc

 

 

 

; Очистка флага переноса

 

 

 

mov

cx,0

 

 

 

 

 

 

 

mov

ax,SLOG1 ; Сложение SLOG1 и SLOG2

 

 

 

add

ax,SLOG2

 

 

 

 

 

 

 

mov

bx,OFFSET SUM ; Получение смещения и

 

 

 

mov

[bx],ax

; сохранение результата сложения

 

 

 

jnc

Lmem

; Был перенос? Нет - переход на метку

 

 

inc

cx

 

 

; Да - создать старший байт результата

 

 

Lmem:

mov

[bx+2],cx ; Сохранить старший байт результата

 

 

jmp

Start

 

 

 

 

 

 

 

SUMMA ENDP

 

 

 

 

 

 

 

CSEG

ENDS

 

 

 

 

 

 

 

 

 

END SUMMA

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 слагаемое

 

2 слагаемое

результат

 

 

десятичное

 

шестнадцат.

 

десятичное

 

шестнадцат.

десятичное

шестнадцат.

1

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

3

Работа №1

 

 

 

 

 

 

 

 

 

 

 

Таблица 1.1.1

Команда

 

 

 

 

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

 

 

 

 

 

 

 

аx

bx

cx

dx

cs

ds

di

si

 

 

Флаги

 

cf

zf

sf

pf

af

df

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Программа 1.2

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

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

 

SSEG

SEGMENT PARA STACK

'STACK'

DB

256 DUP(0)

 

SSEG

ENDS

 

 

 

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

;

 

 

 

 

 

DSEG

SEGMENT PARA PUBLIC

'DATA'

UMEN

DW

1 DUP (0) ; уменьшаемое, длина слово

VICH

 

DW 1 DUP (0) ; вычитаемое, длина слово

RAZ

 

DW

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

DSEG

ENDS

 

 

 

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

CSEG

SEGMENT PARA PUBLIC

'CODE'

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

SUBST

 

PROC

FAR

 

 

mov

ax,DSEG

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

mov

ds,ax

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

Start: clc

 

 

; Очистка флага переноса.

mov

cx,0

 

 

 

mov

ax,UMEN

; Вычитание.

 

sub

ax,VICH

 

 

mov

bx,OFFSET RAZ ; Получение смещения и

mov

[bx],ax

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

jmp

Start

 

 

 

SUBST

 

ENDP

 

 

 

CSEG

ENDS

 

 

 

END SUBST

4

Работа №1

 

 

уменьшаемое

 

 

 

вычитаемое

 

 

 

результат

 

десятичное

 

шестнадцат.

 

десятичное

 

шестнадцат.

десятичное

 

шестнадцат.

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

21

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 1.1.2

Команда

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

аx

 

bx

 

cx

 

dx

 

cs

 

ds

 

di

si

 

 

 

 

Флаги

 

 

 

 

 

 

 

 

 

cf

zf

 

sf

pf

af

df

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Программа 1.3

TITLE СЛОЖЕНИЕ ЦЕЛЫХ БЕЗЗНАКОВЫХ ЧИСЕЛ TITLE ПОВЫШЕННОЙ ТОЧНОСТИ

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

SSEG

SEGMENT PARA STACK 'STACK'

DB 256 DUP(0)

SSEG

ENDS

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

DSEG

SEGMENT PARA PUBLIC

'DATA'

SLOG1

 

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

SLOG2

 

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

SUM

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

DSEG

ENDS

 

 

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

CSEG

SEGMENT PARA PUBLIC

'CODE'

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

SUMMA PROC FAR

 

mov

ax,DSEG

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

mov

ds,ax

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

Start: lea

si,SLOG1 ; Получение смещения SLOG1 в SI

lea

 

di,SLOG2

; Получение смещения SLOG2 в DI

lea

 

bx,SUM

; Получение смещения SUM в BX

clc

 

 

; Очистка флага переноса.

mov

cx,0

 

 

mov

ax,[si]

; Сложение SLOG1 и SLOG2 с учетом

adc

 

ax,[di]

; бита переноса.

mov

[bx],ax

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

inc

 

si

; Вычисление смещения следующего

inc

 

si

; слова слагаемых без изменения

1 Уменьшаемое должно быть меньше вычитаемого

5

Работа №1

inc

 

di

 

; бита переноса предыдущего сложения

 

 

 

 

 

 

 

 

 

 

inc

 

di

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

mov

ax,[si]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

adc

 

ax,[di]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

mov

[bx+2],ax

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

jnc

 

Lmem

; Был перенос? Нет - переход не метку

 

 

 

 

 

 

 

 

 

 

 

inc

 

cx

 

; Да - создать старший байт.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Lmem:

mov [bx+4],cx ; Сохранить старший байт в памяти

 

 

 

 

 

 

 

 

 

 

 

jmp

 

Start

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SUMMA ENDP

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CSEG

ENDS

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

END

 

SUMMA

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 слагаемое

 

 

2 слагаемое

 

 

 

 

результат

 

 

десятичное

 

шестнадцат.

 

десятичное

 

шестнадцат.

десятичное

 

шестнадцат.

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 1.1.3

Команда

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

аx

 

bx

 

cx

 

dx

 

cs

 

ds

 

di

si

 

 

 

 

Флаги

 

 

 

 

 

 

 

 

 

 

 

cf

zf

 

sf

pf

af

df

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

Работа №1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Программа 1.4

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SSEG

SEGMENT PARA

STACK

'STACK'

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DB

 

256 DUP(0)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SSEG

ENDS

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

DSEG

SEGMENT PARA PUBLIC

'DATA'

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

UMEN

DD

1 DUP (0) ; уменьшаемое, длина двойное слово

 

 

 

 

 

 

 

 

 

 

VICH

 

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

 

 

 

 

 

 

 

 

 

 

RAZ

 

DD

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

 

 

 

 

 

 

 

 

 

 

 

 

DSEG

ENDS

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CSEG

SEGMENT PARA PUBLIC

'CODE'

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SUBST

 

PROC

FAR

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

mov

 

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

 

 

 

 

 

 

 

 

 

 

mov

 

ds,ax

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

 

 

 

 

 

 

 

 

 

 

Start: lea

 

si,UMEN ; Получение смещения UMEN в SI

 

 

 

 

 

 

 

 

 

 

 

 

lea

 

 

di,VICH

; Получение смещения VICH в DI

 

 

 

 

 

 

 

 

 

 

 

 

lea

 

 

bx,RAZ

 

; Получение смещения RAZ в BX

 

 

 

 

 

 

 

 

 

 

 

 

clc

 

 

 

 

 

 

 

; Очистка флага переноса

 

 

 

 

 

 

 

 

 

 

 

 

 

 

mov

 

cx,0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

mov

 

ax,[si]

; Вычитание UMEN и VICH с учетом

 

 

 

 

 

 

 

 

 

 

 

 

sbb

 

ax,[di]

; бита переноса

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

mov

 

[bx],ax

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

inc

 

si

 

 

; Вычисление смещения следующего

 

 

 

 

 

 

 

 

 

 

 

 

inc

 

si

 

 

; слова данных без изменения

 

 

 

 

 

 

 

 

 

 

 

 

 

 

inc

 

di

 

 

; бита переноса предыдущего вычитания.

 

 

 

 

 

 

 

 

 

 

inc

 

di

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

mov

 

ax,[si]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

sbb

 

ax,[di]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

mov

 

[bx+2],ax

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

jmp

 

Start

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SUBST

 

ENDP

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CSEG

ENDS

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

END SUBST

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

уменьшаемое

 

 

 

вычитаемое

 

 

 

результат

 

 

десятичное

 

шестнадцат.

 

десятичное

 

 

шестнадцат.

десятичное

 

шестнадцат.

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

22

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 1.1.4

Команда

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

аx

 

bx

 

cx

 

 

dx

 

cs

 

ds

 

di

si

 

 

 

 

Флаги

 

 

 

 

 

 

 

 

 

 

 

 

 

cf

zf

 

sf

pf

af

df

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 Уменьшаемое должно быть меньше вычитаемого

7

Работа №1

Продолжение таблицы 1.1.4

Выводы:________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

______________________________________________________________________________________

8

Работа №1

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

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

 

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

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

 

 

 

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

дата _____________________________

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

(подпись)

(Ф И О)

9

Работа №2

ЛАБОРАТОРНАЯ РАБОТА 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-го частичного результата

10

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