Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ирвин__контр_вопросы_главы_3-4_вар-3.docx
Скачиваний:
6
Добавлен:
18.11.2019
Размер:
220.72 Кб
Скачать

4.1.. Команды пересылки данных 10

1. Назовите три основных типа операндов команд языка ассемблера.

2. (Да/Нет). В качестве получателя данных в команде M0V нельзя указывать

сегментный регистр.

3. (Да/Нет). Второй операнд команды MOV называется получателем данных.

4. (Да/Нет). В качестве получателя данных в команде MOV нельзя указывать регистр

EIP.

5. Что означают приведенные ниже записи в системе обозначения операндов,

принятой фирмой Intel:

  1. r/m32; b) imm16?

6. Верны ли приведенные ниже команды?

a)mov ax,varl

б)mov ax,var2

в) mov eax,var3

r)mov var2,var3

7. Верны ли приведенные ниже команды?

д)тоугх ax,var2

e)movzx var2,al

ж)mov ds,ax

з)mov ds,1000h

8. Найдите значение операнда получателя данных после выполнения приведенной

ниже последовательности команд:

a)mov AL,varl ; AL = ??

6)mov AH,varl+3 ; AH = ??

9. Найдите значение операнда получателя данных после выполнения приведенной

ниже последовательности команд:

10. Найдите значение операнда получателя данных после выполнения приведенной

ниже последовательности команд:

……………………………………………………………………………………………………………………………………….

4.2.. Сложение и вычитание 12

1. Запишите команду увеличения на единицу значения переменной val2.

2. Запишите команду вычитания из регистра ЕАХ значения переменной val3.

3. Запишите последовательность команд вычитания из переменной val2

переменной val4.

4. Предположим, что значение переменной val2 увеличено на единицу с помощью

команды ADD. Как это повлияет на состояние флагов переноса CF и знака SF?

5. Предположим, что значение переменной val4 увеличено на единицу с помощью

команды ADD. Как это повлияет на состояние флагов переполнения OF и знака SF?

6. Определите состояние флагов CF, SF, ZF и OF после выполнения каждой из

приведенных ниже команд:

7. Запрограммируйте выражение на языке ассемблера: АХ = (-val2 + ВХ) - val4.

8. (Да/Нет). Возможна ли ситуация целочисленного переполнения (т.е.

устанавливается ли флаг OF) при сложении положительного и отрицательного целых чисел?

9. (Да/Нет). Будет ли установлен флаг переполнения OF, если при сложении двух

отрицательных целых чисел получается положительный результат?

10. (Да/Нет). Влияет ли команда NEG на состояние флага переполнения OF?

11. (Да/Нет). Возможна ли ситуация, когда после выполнения команды

одновременно устанавливаются оба флага SF и ZF?

12. Задача повышенной сложности. Запишите последовательность из двух команд, при выполнении которой одновременно устанавливаются флагиСР и OF?

……………………………………………………………………………………………………………………………………….

4.3.. Операторы и директивы для работы с данными 12

1. (Да/Нет). В 32-разрядном защищенном режиме оператор OFFSET возвращает 16-

разрядно значение.

2. (Да/Нет). Оператор PTR возвращает 32-разрядный адрес переменной.

3. (Да/Нет). Оператор TYPE возвращает значение 4 для операнда типа двойного слова.

4. (Да/Нет). Оператор LENGTHOF возвращает длину операнда в байтах.

5. (Да/Нет). Оператор SIZE0F возвращает длину операнда в байтах.

Для выполнения оставшихся упражнений воспользуйтесь приведенными ниже

операторами определения данных:

6. Поместите в приведенный выше фрагмент кода директиву, с помощью которой

можно выровнять адрес переменной myBytes на четную границу.

7. Определите значение регистра ЕАХ после выполнения каждой из приведенных

ниже команд:

8. Загрузите с помощью одной команды первые два байта переменной myBytes в

регистр DX. У вас должно получиться значение 2 01 Oh.

9. Загрузите в регистр AL второй байт переменной myWords.

10. Загрузите с помощью одной команды все четыре байта переменной myBytes в

регистр ЕАХ.

11. Поместите в приведенные выше операторы определения данных директиву

LABEL, которая бы позволяла загружать первые 4 байта переменной myWords

непосредственно в один из 32-разрядных регистров общего назначения.

12. Поместите в приведенные выше операторы определения данных директиву

LABEL, которая бы позволяла загружать первые 2 байта переменной myBytes

непосредственно в один из 16-разрядных регистров общего назначения.

……………………………………………………………………………………………………………………………………….