Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
123
Добавлен:
02.05.2014
Размер:
108.54 Кб
Скачать

Если Вы будете просматривать дамп памяти с такой информацией, то увидите примерно такую картину:

0000 00 0А 14 1Е 00 00 00 00 ________

0008 00 00 4Е 61 4D 45 3F 20 __Name?

0010 00 00 00 00 ____

(Цветное выделение сделано мною для пояснений!)

Здесь голубым цветом выделены поля значений смещения, розовым цветом – поля значений переменных и зарезервированных слов или байтов в шестнадцатеричном виде, зеленым цветом – те же поля переменных, но в символьном виде (Числовые значения, такие как 20 десятичное, равное 14 шестнадцатеричному, в символьном виде либо отображаются нечисловыми и небуквенными символами, либо не отображаются вовсе. Я эти символы заменила в примере подчеркиванием _).

Из приведенного примера очевидно, что память для переменных выделяется в соответствии с их описанием в сегменте данных: в том порядке, как они описываются, и столько байтов, каков размер переменных. В машинных командах программы ассемблер будет заменять имена переменных их смещениями относительно начала сегмента кодов, так, в команде

LEA DX,MESS имя переменной MESS будет заменено значением 000А.

Если регистр данных DS инициализирован значением 0СС2[0], то физический адрес переменной MESS будет равен: 0СС20+0000А=0СС2А.

Вопросы для самопроверки

1. Укажите длину следующих элементов данных: а) параграфа, б) слова, в) сегмента, г) байта, д) двойного слова, е) килобайта.

2. Какова самая малая единица памяти компьютера и какие значения она может принимать?

3. Поясните следующие термины: сегмент, смещение, граница адреса сегмента.

4. Определите абсолютные адреса, формируемые следующими значениями: SS=2AB4, CS=2BC3, IP=3F, SP=24. Все значения адресов указаны в шестнадцатеричной системе счисления.

5. Опишите сегмент данных и в нем переменные для трех целочисленных сторон треугольника. Предусмотрите текст запроса для ввода сторон с клавиатуры, а также сообщение о том, что введенные стороны не могут быть сторонами треугольника.

6. Укажите различия между компилятором и ассемблером.

7. Что такое зарезервированное слово в Ассемблере? Приведите примеры.

8. Какие два типа идентификаторов есть в ассемблере?

9. Из приведенных идентификаторов переменных, определенных в сегменте данных, найдите неверные и поясните характер ошибки: а)$50, б)AT&T, в)@$_A, г)23АС, д)DX, е)MOV.

10. Формат директива SEGMENT таков:

имя SEGMENT выравнивание совмещение ‘класс’.

Объясните назначение параметров а) выравнивание, б)совмещение, в)‘класс’.

11. Какие предложения относятся к концу а)процедуры, б)сегмента, в)программы?

12. Укажите предложение ASSUME, если имена сегментов стека, данных и кода соответственно – STKSEG, DATSEG, CODSEG?

13. Укажите длины в байтах для переменных, описанных в сегменте кода директивами а)DD, б)DW, в)DB.

14. Опишите символьную строку с именем IS и текстом “Internet service”.

15. Определите следующие числовые значения в элементах данных ITEM1, ITEM2,…ITEM5:

а) 1-байтовый элемент, содержащий шестнадцатеричное значение, эквивалентное десятичному 71;

б) 2-байтовый элемент, содержащий неопределенное значение;

в) 4-байтовый элемент, содержащий шестнадцатеричное значение , эквивалентное десятичному числу 7524;

г) однобайтовый элемент, содержащий двоичное значение, эквивалентное десятичному 47;

д) последовательность из 16 нулевых слов.

16. Покажите, какой шестнадцатеричный объектный код соответствует а)DB 82, б) DB ‘82’, в)DB 4DUP(‘5’).

17. Определите шестнадцатеричный объектный код, сохраняемый ассемблером для а)DB 72, б)DW 2ABE, в)DD 1EB6C3. . Все значения переменных указаны в шестнадцатеричной системе счисления.

Соседние файлы в папке Лекции по ассемблеру