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

Вариант 4.

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

1. пять слов со значениями: 4516h, 2221h, A212h, 1C10h, 6115;

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

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

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

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

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

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

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

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

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

Вариант 5.

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

1. пять слов со значениями: 4576h, 27F0h, 3FF1h, 77F1h, 3713;

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

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

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

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

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

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

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

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

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

Вариант 6.

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

1. пять слов со значениями: 1F5h, A781h, CF84h, C0A4h, A483h

2. цепочка символов 'ХАПЛМТЕ'

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

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

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

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

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

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

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

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