Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник по Микропроцессорам_МИА.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать

Индивидуальные задания Вариант 1.

Написать программу, в которой в сегменте данных резервируется:

1. пять слов со значениями: 2516h, 630h, 1841h, 3345h, 123h;

2. цепочка символов 'кмпотхд';

3. три байта без инициализации и один со значением '$'.

Программа выполняет следующие действия:

1. инициализирует сегментный регистр DS;

2. из первого слова последовательности (1) вычитает третье слово этой последовательности, а результат складывает со вторым словом;

3. младший байт полученного результата записывается в первый байт последовательности (3), от старшего байта результата вычитается значение 10h, полученное значение заносится во второй байт последовательности (3). В третий байт этой последовательности заносится инкрементированное значение младшего байта результата, полученного в п.2.

4. в регистр SI заносится значение адреса последовательности (2), в регистр BX - значение адреса (3), затем осуществляется обмен содержимым этих регистров;

5. используя адрес, хранящийся в SI (косвенную адресацию), три байта последовательности (3) перекодировать, в качестве таблицы перекодировки взять последовательность символов (2).

6. перекодированную последовательность вывести на экран, а результат наблюдать в отладчике в альтернативном окне. Вывод на экран строки символов см. в приложении.

Вариант 2.

Написать программу, в которой в сегменте данных резервируется:

1. пять слов со значениями: 2499h, 2106h, 333h, 1821h, 3CB6h;

2. цепочка символов 'кмпотхд';

3. три байта без инициализации и один со значением '$'.

В программе необходимо предусмотреть выполнение следующих действий:

1. инициализировать сегментный регистр DS;

2. к первому слову последовательности (1) прибавить четвертое слово этой последовательности, а из результата вычесть пятое слово;

3. младший байт полученного результата записывается в третий байт последовательности (3), старший байт результата инкрементировать и результат занести в первый байт последовательности (3).

Во второй байт этой последовательности заносится декремент значения младшего байта результата, полученного в п.2.

4. в регистр DI заносится значение адреса последовательности (2), в регистр BX - значение адреса (3), затем осуществляется обмен содержимым этих регистров;

5. используя адрес, хранящийся в SI (косвенную адресацию), три байта последовательности (3) перекодировать, в качестве таблицы перекодировки взять последовательность символов (2).

6. перекодированную последовательность вывести на экран, а результат наблюдать в отладчике в альтернативном окне. Вывод на экран строки символов см. в приложении.

Вариант 3.

Написать программу, в которой в сегменте данных резервируется:

1. пять слов со значениями: 1389h, 2145h, 326h, 2821h, 2265h;

2. цепочка символов 'кмпотхд';

3. три байта без инициализации и один со значением '$'.

В программе необходимо предусмотреть выполнение следующих действий:

1. инициализировать сегментный регистр DS;

2. к второму слову последовательности (1) прибавить третье слово этой последовательности, а из результата вычесть пятое слово;

3. младший байт полученного результата записывается в третий байт последовательности (3), из старшего байта результата вычитается значение 2 и результат заносится в первый байт последовательности (3). Во второй байт этой последовательности заносится

уменьшенное на 3 значение младшего байта результата, полученного в п.2.

4. в регистр DI заносится значение адреса последовательности (2), в регистр BX - значение адреса (3), затем осуществляется обмен содержимым этих регистров;

5. используя адрес, хранящийся в SI (косвенную адресацию), три байта последовательности (3) перекодировать, в качестве таблицы перекодировки взять последовательность символов (2).

6. перекодированную последовательность вывести на экран, а результат наблюдать в отладчике в альтернативном окне. Вывод на экран строки символов см. в приложении.