Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа.doc
Скачиваний:
27
Добавлен:
02.05.2014
Размер:
5.53 Mб
Скачать

4.1.3 Код Ассемблера процессора i8086

MODEL small ;Модель памяти

.STACK 100h ;Стек

.DATA ;Сегмент данных

mas dw 13,11,0,4,2; Массив

sum db 3 dup (0)

.CODE ;Сегмент кода

main:

mov ax, @data ;Инициализация среды

mov ds, ax

mov ax, [bx+04h] ;В аккумулятор первый множитель

mov dx, [bx+06h]

mov cx, ax ;Цикл

mov bx, offset sum ;Смещение массива

add:

add [bx], ax ;Результат обратно в память

adc [bx+1],[bx+1] ;Учет возможного переноса

loop add ;Конец цикла

mov ax, ac00h ;Конец программы

int 21h

end main

4.2 Операция №2 Сложение всех элементов массива

4.2.1 Блок-схема

4.2.2 Псевдокод гипотетического процессора

Код программы приведем в виде таблицы из четырех столбцов, содержащих адрес ячейки, машинный код, символический код и при необходимости комментарии.

Адрес ячейки

Машинный код

Псевдокод

Комментарии

Инициализация переменных

2200

6E

LRI RE

В RE постоянную единицу

2201

01

01

2202

6B

LRI RB

2203

22

22

2204

6C

LRI RC

RB:RC адрес начала массива

2205

A4

A4

Операция №2

2206

66

LRI R6

Счетчик

2207

05

05

2208

3B

MOV r1 from RB

Указатель в начало массива

2209

5C

MOV r2 from RC

220A

63

LRI R3

220B

00

00

220C

64

LRI R4

220D

00

00

220E

65

LRI R5

220F

00

00

2210

1F

MOV r0 from RF

Начало цикла

2211

85

ADD R5

Сложение

2212

05

MOV r0 to RF

2213

F5

IHL

2214

1F

MOV r0 from RF

2215

84

ADC R4

Учет переноса

2216

04

MOV r0 to R4

2217

F5

IHL

2218

E0

XOR R0

2219

83

ADC R3

221A

03

MOV r0 to R3

221B

16

MOV r0 from R6

221C

AE

SUB RE

Уменьшение счетчика

221D

16

MOV r0 to R6

221E

7D

JAN

Если Асс не ноль, то

221F

22

22

переход на

2220

10

10

начало цикла

2221

60

LRI R0

Определение адреса

2222

0F

0F

общей суммы

2223

3B

MOV r1 from RB

Указатель в начало массива

2224

5C

MOV r2 from RC

2225

82

ADD R2

2226

02

MOV r0 to R2

2227

E0

XOR R0

2228

91

ADC R1

2229

01

MOV r0 to R1

Запись

222A

15

MOV r0 from R5

суммы

222B

0F

MOV r0 to RF

в память

222C

F5

IHL

222D

14

MOV r0 from R4

222E

0F

MOV r0 to RF

222F

F5

IHL

2230

13

MOV r0 from R3

2231

0F

MOV r0 to RF

Конец операции