Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПР№7_ПЗТ23.doc
Скачиваний:
10
Добавлен:
17.09.2019
Размер:
95.23 Кб
Скачать

Пример программы Таблица 3.5

Символическая

запись

Коммен-

тарий

IP

Машинное

представление

2-й код

16-й код

MOV CX,[31A4h];

CX = k

0100

10001011

00001110

10100100

00110001

8B

0E

A4

31

SUB AX,AX;

S = 0

0104

00101001

11000000

29

C0

MOV SI,AX;

i = 0

0106

10001011

11110000

8B

F0

CYC:

ADD AX,[SI+31A6h];

S = S+a[i]

0108

00000011

10000100

10100110

00110001

03

84

A6

31

ADD SI,2;

i = i+1

010C

10000011

11000110

00000010

83

C6

02

DEC CX;

l = l+1

010F

01001001

49

JNZ CYC;

перейти, если l = 0

0110

01110101

11110110

75

F6

MOV [3000h],AX;

SUM = S

0112

10100001

00000000

00110000

A1

00

30

Контрольные вопросы

  1. Какая структура представления данных является массивом?

  2. Что определяет упорядоченность элементов массива?

  3. Как располагается в памяти одномерный массив? Двумерный?

  4. Какая структура хранения соответствует одномерному массиву?

  5. Какие локализовать i-тый элемент одномерного массива (общая формула)?

  6. Какие локализовать i-тый элемент двумерного массива (общая формула)?

  7. Какие режимы адресации можно использовать для обращения к i-му элементу массива?

  8. В чем отличие размещения в памяти одномерного и двумерного массивов?

  9. Что определяет начальный адрес массива в памяти?

  10. Напишите команды, составляющие тело цикла для инкремента массива слов array1 с использованием косвенной адресации без смещения.

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

  12. Каким образом можно загрузить в регистр исполнительный адрес операнда?

Практические задания

Задание 1.

Описать одномерный массив для нечетных вариантов как MAS1 dw (перечислить 10 элементов),

для четных вариантов – как MAS2 db (перечислить 20 элементов).

Составить последовательность команд процессора для выполнения следующих действий:

  1. определить среднее арифметическое элементов одномерного массива;

  2. подсчитать количество четных элементов одномерного массива;

  3. подсчитать количество положительных элементов в одномерном массиве;

  4. заменить нулевые элементы одномерного массива единицами;

  5. найти сумму нечетных элементов одномерного массива;

  6. переставить в обратном порядке элементы одномерного массива;

  7. найти среднее арифметическое четных элементов одномерного массива;

  8. заменить первый четный элемент одномерного массива числом три;

  9. заменить нечетные элементы одномерного массива числом два;

  10. найти сумму четных элементов одномерного массива;

  11. подсчитать количество отрицательных элементов в одномерном массиве;

  12. найти последний нечетный элемент одномерного массива;

  13. подсчитать количество нулевых элементов одномерного массива;

  14. определить индекс первого отрицательного элемента одномерного массива;

  15. найти среднее арифметическое нечетных элементов одномерного массива.

Задание 2.

Получить машинные коды используемых команд LEA и LOOPx.