Лекции.Орг


Поиск:




Косвенная базовая индексная адресация со смещением




Адрес операнда вычисляется как сумма содержимого одного из базовых регистров BX или BP, одного из индексных регистров SI или DI и 8- или 16-разрядного смещения.

Примеры:

mov al,[ bp ][ di +5]

mov bl,[array2+ bx + si ]

E[BX+5][SI-2]; DATA[BX][SI]; [BX+2][SI]

 


Примеры решения задач:

;программа, использующая косвенную индексную адресацию

;программа обнуления ячеек массива

s_s segment stack "stack"

dw 12 dup(?)

s_s ends

d_s segment

aa db 11,1,2,3,4,5,6,7,8,9;массив чисел

d_s ends

c_s segment

assume ss:s_s,ds:d_s,cs:c_s;

begin: mov ax,d_s

mov ds,ax;

mov cx, 10;задание количества ячеек массива

mov si,0;задание номера первого элемента массива

L1: mov aa[si],0; обнуление si-того элемента массива

inc si; переход к следующему элементу массива

loop L1; команда зацикливания

mov ah,4ch

int 21h

c_s ends

end begin


Задание на практическую работу:

1. Реализация программы, использующей различные режимы адресации:

  1. Составить программу согласно условию:

В сегменте данных задана последовательность чисел X: 0, 1, 2, 3, 5, 6, 10. Скопировать ее в последовательность Y, при этом увеличив каждый из элементов на 2.

  1. Транслировать ассемблерный код. В случае нахождения ошибок – устранить их и повторить трансляцию.
  2. Скомпоновать программу редактором связей.
  3. Запустить программу в отладчике, в случае обнаружения ошибок в работе программы исправить их, повторить п.п.2, 3
  4. Показать работу программы преподавателю.

 

2. Реализация программы, использующей различные режимы адресации:

  1. Узнать у преподавателя вариант работы.
  2. Составить программу согласно условию и варианту (таблица 6.1):

В сегменте данных определен массив символов (строка). Выполнить заданное действие согласно заданному условию. Вывести на экран исходный и преобразованный массив.

Символы содержатся в памяти как числа (см. приложение «ASCII коды»). Таким образом, к символам применимы все те операнды и условия, что и для чисел.

Для определения нижней границы массива (или количества элементов массива) можно использовать команду LEA для определения адреса следующей переменной сегмента данных.

  1. Транслировать ассемблерный код. В случае нахождения ошибок – устранить их и повторить трансляцию.
  2. Скомпоновать программу редактором связей.
  3. Запустить программу в консольном режиме, в случае обнаружения ошибок в работе программы исправить их, повторить п.п.2,3
  4. Показать работу программы преподавателю

Таблица 6.1 - данные для реализации согласно варианту

Вариант Исходная сторока Условие Действие
  I like read this book! = «» заменить на «_»
  I like read this book! > “i” заменить на «*»
  I like read this book! >= “i“ заменить на «!»
  I like read this book! < “p” увеличить код символа на 5
  My favorite film is … <= “m” увеличить код символа на 2
  My favorite film is … ≠ “i” увеличить код символа на 1
  My favorite film is … = «i» уменьшить код символа на 5
  My favorite film is … > “o” уменьшить код символа на 3
  I understand this problem. >= “ “ уменьшить код символа на 1
  I understand this problem. < “e” заменить на «_»

 

3. Реализация программы, использующей различные режимы адресации:

  1. Составить программу согласно условию:

Задан массив чисел. Определить есть ли в нём число 10.

Массив заполнить произвольными данными.

  1. Транслировать ассемблерный код. В случае нахождения ошибок – устранить их и повторить трансляцию.
  2. Скомпоновать программу редактором связей.
  3. Запустить программу в отладчике, в случае обнаружения ошибок в работе программы исправить их, повторить п.п.2, 3
  4. Показать работу программы преподавателю.

 

4. Реализация программы, использующей различные режимы адресации:

  1. Составить программу согласно условию:

Задана строка символов, содержащая также символы «!». Вывести её на экран исходную строку и ее же, но без знаков «!»

  1. Транслировать ассемблерный код. В случае нахождения ошибок – устранить их и повторить трансляцию.
  2. Скомпоновать программу редактором связей.
  3. Запустить программу в консольном режиме, в случае обнаружения ошибок в работе программы исправить их, повторить п.п.2,3
  4. Показать работу программы преподавателю

 

 

Содержание отчета по практической работе:

1. Титульный лист

2. Цель работы

3. Краткие теоретические сведения

4. Описание реализованных программ

5. Исходный ассемблерный код реализованных программ

6. Входные и выходные данные по программе.

7. Выводы по практической работе.





Поделиться с друзьями:


Дата добавления: 2015-09-20; Мы поможем в написании ваших работ!; просмотров: 558 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Люди избавились бы от половины своих неприятностей, если бы договорились о значении слов. © Рене Декарт
==> читать все изречения...

1012 - | 825 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.