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

Вариант 9.

Зарезервировать в сегменте данных:

1. цепочку символов "терморегулятор", присвоить последовательности имя Q1. Обеспечить с помощью директивы LABEL доступ к этим байтам как к словам.

2. четыре слова без инициализации с именем Q2;

3. присвоить значению A841 имя Q3.

Написать программу, в которой:

1. Получить сумму 1, 3, 6 слов последовательности Q1 и записать результат в 3 слово последовательности Q2.

2. Полученный в п.1. результат сложить с 1 байтом последовательности Q1 и вычесть значение Q3, результат записать во 2 слово последовательности Q2.

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

4. Выполнить п.1., используя косвенную адресацию (см. примечание).

Вариант 10.

Зарезервировать в сегменте данных:

1. 3 байта со значением 133 и 5 байт со значением 88h. Присвоить последовательности имя T1. Обеспечить с помощью директивы LABEL доступ к этим байтам как к словам.

2. четыре слова, значение первого слова равно CF1h, остальные слова не инициализировать, имя последовательности - T2;

3. присвоить значению 2A5 имя T3.

Написать программу, в которой:

1. Записать во 2 слово последовательности T2 первое слово последовательности T1;

2. Получить сумму 3 значений: первых двух слов последовательности T2 и шестого байта последовательности T1, результат записать в 3 слово последовательности T2.

3. Получить 2 и 3 слов последовательности T2 и из результата вычесть значение Т3, результат записать в 4 слово последовательности T1.

4. Выполнить п.2., используя косвенную адресацию (см. примечание).

Вариант 11.

Зарезервировать в сегменте данных:

1. слово CFA2, два слова без инициализации и одно слово со значением 27CFh, дать последовательности имя P1. Обеспечить с помощью директивы LABEL доступ к этим словам как к байтам .

2. цепочку символов "история", присвоить последовательности имя P2.

3. присвоить значению 28Fh имя P3.

Написать программу, в которой:

1. Получить сумму 2, 4, 7 байтов последовательности P1 и записать результат в 3 слово последовательности P2.

2. Получить сумму первого и четвертого слов последовательности P1 и из результата вычесть значение P3, полученное значение записать: старший байт результата записать в старший байт 2 слова последовательности P1, младший байт - в младший байт третьего слова этой последовательности.

3. Выполнить п.1., используя косвенную адресацию (см. примечание).

Вариант 12.

Зарезервировать в сегменте данных:

1. 5 слов со значениями 6B8D, F13F, C127, 8ADE, 51F4. Дать последовательности имя M1. Обеспечить с помощью директивы LABEL доступ к этим словам как к байтам.

2. цепочку символов "солидарность" с именем М2;

3. присвоить значению F160 имя M3.

Написать программу, в которой:

1. Получить сумму 4, 7 и 9 байтов последовательности M1. Записать результат в третье слово последовательности M2.

2. Получить сумму 1 и 4 слов последовательности M1, из которой вычесть значение M3, Старший байт полученного значения записать в шестой байт последовательности M2, а младший байт в седьмой байт последовательности М1.

3. Выполнить п.1., используя косвенную адресацию (см. примечание).

Примечание. В случае косвенной адресации адрес слова (байта) находится в одном из регистров: BX, SI, DI.

Например:

MOV AX, [BX] ;в AX заносится слово, адрес которого содержится в регистре BX.

MOV AX, 2[BX] ;равносильно MOV AX, [BX+2], в AX заносится слово, адрес которого на 2 байта больше адреса, содержащегося в регистре BX.

ADD AX, 3[BX] ;добавить к содержимому AX слово, адрес

;которого на 3 байта больше адреса, содержащегося в регистре BX.

SUB AX, 4[BX] ;вычесть из AX слово, адрес которого на 4 байта больше ;адреса, содержащегося в регистре BX