Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебн пособ по арх и прогр МП.doc
Скачиваний:
64
Добавлен:
10.12.2013
Размер:
1.59 Mб
Скачать

4.3. Контрольные вопросы и задания

1. Для сегментов кода, данных и стека даны имена CDSEG, DATSEG и STKSEG соответственно. Сформируйте директиву ASSUME:

1) ASSUME CX:CDSEG, DX:DATSEG, SP:STKSEG;

2) ASSUME CS=CDSEG, DS=DATSEG, SS=STKSEG;

3) ASSUME CS:CDSEG, DS:DATSEG, SS:STKSEG.

2. Какая директива является закрывающей для директивы SEGMENT ?

1) ENDP 2) ENDS 3) END.

3. Для нормальной работы программы необходимо предварительно:

1) Инициализировать все используемые программой регистры;

2) Сохранить в стеке все используемые программой регистры;

3) Выполнить сначала 1), потом 2);

4) Выполнить сначала 2), потом 1).

4. Для определения массива констант от 0 до 9 в формате слова, с именем VAR в сегменте данных необходимо написать конструкцию:

1) VAR DW 0,1,2,3,4,5,6,7,8,9

2) VAR DB 0,1,2,3,4,5,6,7,8,9

3) VAR DW 0..9

5. Для внесения дополнительного сегмента данных DOPSEG в программу необходимо включить в ASSUME следующую конструкцию (сегмент данных имеет имя DATSEG):

1) ES=DOPSEG 2)AX:DOPSEG 3)ES:DOPSEG 4)DS:DATSEG, DOPSEG

6. Какая директива является закрывающей для всей программы ?

1) ENDP 2) ENDS 3) END

7. Для завершения программы в ее текст в нужное место необходимо поместить команду:

1) RETN 2) MOV 3) PUSH 4) ASSUME

8. Для определения константы символьного типа с именем SYMB и содержащую слово «Привет», в сегменте данных необходимо написать конструкцию:

1) SYMB DW Привет

2) SYMB DB 'Привет'

3) SYMB DD 'Привет'

9. Какое значение параметра 'выравнивание' директивы SEGMENT указывает на необходимость размещения сегмента на ближайшем свободном адресе?

1) BYTE 2) WORD 3) PARA 4) PAGE

10. Какое значение параметра 'выравнивание' директивы SEGMENT указывает на необходимость размещения сегмента по заданному адресу?

1) PUBLIC 2) STACK 3) AT 4) COMMON

11. Какая директива в режиме Ideal указывает на начало программы?

1) BEGIN 2) END 4) STARTUPCODE

12. Какая модель памяти не может использоваться для создания exe-файла?

1) TINY 2) SMALL 3) для создания exe-файла могут использоваться

все модели

13. Какая директива используется для сокращенного описания сегмента кода?

1) CODESEG 2) DATASEG 3) STACK

Тема 5. Способы адресации данных в командах языка ассемблер

В общем случае данные (операнды и результат) могут хранится в памяти, портах, регистрах. В программах на языке Ассемблер программист сам распределяет память и регистры под операнды и результаты. Место размещения (иначе - адрес) программист указывает в каждой команде, следуя правилам синтаксиса языка.

Главные правила синтаксиса состоят в следующем :

1. В одной команде только один из операндов может быть размещен в памяти.

2. Регистр может хранить операнд или адрес (смещение), который должен быть заключен в квадратные скобки.

3. Размер операнда определяется размером регистра

Например : AX – хранит только слово;

BH или AL – только байт.

4. Результат операции по умолчанию сохраняется по адресу первого операнда (по умолчанию – означает, что сведения в команде об этом отсутствуют, поэтому транслятор принимает определенный вариант – адрес первого операнда).

Существуют следующие способы: