- •Теория операционных систем. Программирование на ассемблере методические указания
 - •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
