- •Теория операционных систем. Программирование на ассемблере методические указания
- •1. Введение в теорию ос
- •1.1. Указания к выполнению работы
- •1.2. Учебные темы и вопросы
- •Тема 1. Основные понятия
- •Тема 2. Прерывания
- •Тема 3. Распределение процессорного времени
- •Тема 4. Непрерывные способы распределения оп
- •Тема 5. Разрывные способы распределения оп (виртуальная память)
- •2. Введение в программирование на ассемблере
- •2.1. Указания к выполнению работы
- •3. Выполнять работу рекомендуется следующим образом:
- •2.2. Представление целых в памяти пк
- •2.3. Ассемблер: начальные сведения. Директивы описания
- •2.4. Команды сложения и вычитания
- •2.5. Команды условного и безусловного перехода
- •2.6. Работа с циклами и массивами
2.2. Представление целых в памяти пк
Задание 1. Записать в двоичном и шестнадцатеричном виде представление в памяти ПК следующих чисел (следует учитывать, что числа размером в слово хранятся в «перевернутом» виде), приведенных в табл. 3.
Таблица 3
Числа для представления в памяти ПК
-
№
Числа-байты
Числа-слова
1
20, -5, 110
20, -5, 310
2
24, -29, 180
24, -29, 480
3
42, -40, 220
42, -40, 320
4
21, -6, 188
21, -6, 288
Продолжение табл. 3
-
5
50, -13, 200
50, -13, 300
6
40, -23, 190
40, -23, 290
7
55, -22, 202
55, -22, 402
8
24, -10, 123
24, -10, 323
9
52, -42, 211
52, -42, 511
10
37, -7, 221
37, -7, 521
Рекомендуемая литература:
Пильщиков. Глава 1 «Особенности ПК», параграф 1.3 «Представление данных».
2.3. Ассемблер: начальные сведения. Директивы описания
данных и команды пересылок
Задание 2. Изучить материал в соответствии с рекомендованной литературой. Ответить (устно) на все нижеперечисленные вопросы. Письменно изложить материал в соответствии со своим вариантом.
1. Как ассемблер определяет, что пересылать – слово или байт? Оператор указания типа (PTR).
2. Целочисленные и символьные константы.
3. Предложения: комментарии, команды, директивы
4. Директива DB: назначение, способы задания операндов.
5. Директива DW: назначение, способы задания операндов.
6. Директива DD: назначение, способы задания операндов.
7. Имя переменной: значение и тип.
8. Конструкция повторения в директивах описания данных.
9. Константные и адресные выражения.
10. Команда MOV: допустимые комбинации операндов. Какие пересылки запрещены или не поддерживаются?
Рекомендуемая литература:
1. Пильщиков. Глава 2. «Язык ассемблера. Начальные сведения».
2. Пильщиков. Параграф 3.2. «Пересылки».
Задание 3. Написать директивы описания данных и команды пересылок согласно указанному варианту из табл. 4.
Если в задании не указано, как инициализировать данные, то предполагается, что инициализировать не надо.
Под большим числом понимается число, для представления которого одного слова недостаточно.
Размер операндов в команде пересылки должен совпадать. При необходимости следует использовать оператор указания типа PTR. При написании программного кода можно воспользоваться файлом с примером программы data_mov.asm.
Таблица 4
Варианты заданий на описание и пересылку данных
№ |
Данные |
Пересылки |
1 |
а) F – массив из 3 слов. б) H – двойное слово, инициализированное большим числом. в) K – массив из 5 байт, инициализированных последовательными цифрами (цифра – это символ). г) L – массив 8 слов, инициализированных повторяющимся значением |
а) Последний элемент переменной K – в CH. б) Произвольные значения в AX и DX. в) Значение из регистра DX – в переменные H и K со смещением 3 г) Значение из DX – в старшее слово переменной H, из AX – в младший.
|
Продолжение табл. 4
2 |
а) F – массив из 4 байт. б) H – двойное слово, инициализированное большим числом. в) K – массив из 5 слов, инициализированных повторяющимся числом. г) L – массив 7 байт, инициализированных гласными буквами |
а) Старшее слово переменной H – в SI, младший – в DI. б) Третий элемент переменной K – в CX. в) Значение 54F8h в регистр AX. г) Значение регистра SI – в конец переменных H и K |
3 |
а) F – массив из 5 байт. б) H – двойное слово, инициализированное большим числом. в) K – массив из 4 байт, инициализированных звездочками. г) L – массив 20 слов, инициализированных повторяющимся значением |
а) Последнего элемента переменной K – в CH. б) Произвольные значения в AX и DX. в) Значение из DL – в старший байт переменной H, из AL – в младший. г) Значение регистра DX – в переменные H и K со смещением 3 |
4 |
а) A – массив из 5 байт. б) B – двойное слово, инициализированное большим числом. в) X – массив из 10 байт, инициализированный последовательными буквами алфавита. г) Y – массив 8 слов, инициализированных повторяющимся значением |
а) Старший байт переменной B – в DH, младший – в DL. б) Третий элемент переменной X – в CL. в) Значение 0FA98h в регистр ES. г) Значение регистра DX – в начало переменных X и Y |
Продолжение табл. 4
5 |
а) F – массив из 3 слов. б) H – двойное слово, инициализированное большим числом. в) K – массив из 5 байт, инициализированных последовательными цифрами (символами). г) L – массив 8 слов, инициализированных повторяющимся значением |
а) Последнего элемента переменной K – в CH. б) Некоторые значения в SI и DI. в) Значение регистра DI – в переменные H и K со смещением 1 г) Значение из SI – в старшее слово переменной H, из DI – в младшее. |
6 |
а) F – массив из 4 байт. б) H – двойное слово, инициализированное большим числом. в) K – массив из 5 слов, инициализированных повторяющимся числом. г) L – массив 7 байт, инициализированных знаками препинания |
а) Старшее слово переменной H – в SI, младшее – в DI. б) Третий элемент переменной K – в CH. в) Значение 54F8h в регистр AX. г) Значение регистра BP – в конец переменных H и K |
7 |
а) F – массив из 5 байт. б) H – двойное слово, инициализированное большим числом. в) K – массив из 4 байт, инициализированных звездочками. г) L – массив 20 слов, инициализированных повторяющимся значением |
а) Последний элемент переменной K – в CH. б) Некоторые значения в AX и DX. в) Значение из DH – в старший байт переменной H, из DL – в младший. г) Значение регистра DX – в переменные H и K со смещением 2. |
Окончание табл. 4
8 |
а) F – массив из 4 байт. б) H – двойное слово, инициализированное большим числом. в) K – массив из 5 слов, инициализированных повторяющимся числом. г) L – массив 7 байт, инициализированных знаками препинания |
а) Последний элемент переменной K – в SP. б) Некоторые значения в SI и DI. в) Значение регистра DI – в переменные H и K со смещением 1. г) Значение из SI – в младшее слово переменной H, из DI – в старшее. |
9 |
а) F – массив из 5 байт. б) H – двойное слово, инициализированное большим числом. в) K – массив из 4 слов, инициализированных повторяющимся числом. г) L – массив 5 байт, инициализированных согласными буквами |
а) Старшее слово переменной H – в DI, младший – в SI. б) Второй элемент переменной K – в AX. в) Значение 234 в регистр AX. г) Значение регистра CH – в конец переменных H и K. |
10 |
а) A – массив из 3 слов. б) B – двойное слово, инициализированное большим числом. в) X – массив из 9 байт, повторяющимся словом «asm». г) Y – массив 4 слов, инициализированных последовательными числовыми значениями |
а) Старший байт переменной B – в DH, младший – в AH. б) Третий элемент переменной X – в CL. в) Значение 0FA98h в регистр ES. г) Значение регистра DX – в начало переменных X и Y. |
Рекомендуемая литература:
1. Пильщиков. Глава 2. «Язык ассемблера. Начальные сведения».
2. Пильщиков. Параграф 3.2. «Пересылки».
Примеры программ:
data_mov.asm