Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...
Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...
Топ:
Когда производится ограждение поезда, остановившегося на перегоне: Во всех случаях немедленно должно быть ограждено место препятствия для движения поездов на смежном пути двухпутного...
Методика измерений сопротивления растеканию тока анодного заземления: Анодный заземлитель (анод) – проводник, погруженный в электролитическую среду (грунт, раствор электролита) и подключенный к положительному...
Проблема типологии научных революций: Глобальные научные революции и типы научной рациональности...
Интересное:
Национальное богатство страны и его составляющие: для оценки элементов национального богатства используются...
Наиболее распространенные виды рака: Раковая опухоль — это самостоятельное новообразование, которое может возникнуть и от повышенного давления...
Принципы управления денежными потоками: одним из методов контроля за состоянием денежной наличности является...
Дисциплины:
|
из
5.00
|
Заказать работу |
|
|
|
|
Цель работы: научиться определять способы адресации микропроцессора на примере простейших команд.
Индивидуальное задание
Определить, чем завершится выполнение группы команд, представленной в Приложении 1.
Оборудование: ПК с операционной системой Windows XP/7/8.
Краткая аннотация: данная работа посвящена знакомству с важнейшими способами адресации микропроцессора на примере простейших команд. К числу этих важнейших способов адресации относятся:
· прямая адресация;
· косвенная адресация.
Студент должен освоить важнейшие способы адресации процессора, научиться применять их для простейших команд процессора.
Приобретенный в ходе выполнения работы опыт должен позволить в последующем ориентироваться в листингах ассемблерных модулей
Теоретические сведения
Простейшей, чаще всего используемой командой процессора, является команда
| MOV Operand_1, Operand_2 |
Данная команда копирует содержимое правого операнда в левый операнд.
Эта команда, равно как и практически все остальные команды, оперирующие парой операндов, удовлетворяет двум важным условиям:
| Результат операции сохраняется в левом операнде. |
| Ёмкости левого и правого операндов равны: Operand_1: 1 байт Operand_2: 1 байт или Operand_1: 2 байта Operand_2: 2 байта |
Для обозначения содержимого ячеек оперативной памяти при записи команд используются квадратные скобки. В квадратных скобках указывается не содержимое ячейки оперативной памяти, а адрес ячейки. Например:
| [0150] − содержимое 1-байтовой ячейки оперативной памяти. 0150 − адрес 1-байтовой ячейки оперативной памяти. [BP] − содержимое 1-байтовой ячейки оперативной памяти. BP − регистр, содержащий адрес 1-байтовой ячейки памяти. |
Адрес в квадратных скобках может задаваться двумя различными способами:
|
Прямая адресация.
Пример использования прямой адресации с однобайтовыми операндами:
MOV AL, [0150]
До выполнения: [0150]= 9F
После выполнения: [0150]= 9Fи AL= 9F
|
Пример использования прямой адресации с двухбайтовыми операндами:
MOV AX, [0150]
До выполнения: [0150]= 9F [0151]= 5A
После выполнения: [0150]= 9F [0151]= 5A
и AX= 5A9F, то есть AL= 9F и AH= 5A
|
Косвенная адресация.
Пример использования косвенной адресации с однобайтовыми операндами:
MOV AL, [SI]
До выполнения: [0150]= 9F SI= 0150
После выполнения: [0150]= 9F SI= 0150
и AL= 9F
|
MOV [SI], AL
До выполнения: AL= 9F SI= 0150
После выполнения: AL= 9F SI= 0150
и [0150]= 9F
|
MOV AX, [SI]
До выполнения: [0150]= 9F [0151]= 5A SI= 0150
После выполнения: [0150]= 9F [0151]= 5A SI= 0150
и AX= 5A9F, то есть AL= 9F и AH= 5A
|
| Команда MOV: |
| Адрес начала команды | Команда, записанная на языке машинных кодов | Та же самая команда, записанная на языке ассемблер | Комментарий, поясняющий, как выполняется команда |
| B8 34 12 | MOV AX,1234 | НЕПОСРЕДСТВЕННАЯ АДРЕСАЦИЯ: Занесение 2-х байтового числа 1234 (12 – старший байт числа, 34 – младший байт числа) в 2-х байтовый регистр АХ | |
| A3 20 01 | MOV [0120],AX | ПРЯМАЯ АДРЕСАЦИЯ: Копирование 2-х байтового числа, находящегося вАХ, в однобайтовые ячейки оперативной памяти0120 и 0121 (в 0120 копируется младший байт АХ, в 0121копируется старший байт АХ) | |
| 8B 1E 20 01 | MOV BX,[0120] | ПРЯМАЯ АДРЕСАЦИЯ: Копирование содержимого ячеек оперативной памяти 0120 и 0121, в 2-х байтовый регистр ВХ (в младший байт ВХ, регистр BL, копируется содержимое ячейки 0120, в старший байт ВХ, регистр BH, копируется содержимое ячейки 0121) | |
| 10A | BD 38 01 | MOV BP,0138 | НЕПОСРЕДСТВЕННАЯ АДРЕСАЦИЯ: Занесение 2-х байтового числа 0138 в 2-х байтовый регистр BP |
| 10D | 88 46 00 | MOV [BP+00],AL | КОСВЕННАЯ АДРЕСАЦИЯ: Копирование однобайтового числа, находящегося в АL, в однобайтовую ячейку оперативной памяти, адрес которой содержится в регистре BP, т.е. в ячейку с вычисляемым адресом 0138(0138+00=0138) |
| 89 46 07 | MOV [BP+07],AX | КОСВЕННАЯ АДРЕСАЦИЯ: Копирование 2-х байтового числа, находящегося в АХ,в ячейки оперативной памяти, на адреса которых указывает регистр BP: младший байт регистра АХ, именуемый АL, копируется в ячейку с вычисляемым адресом 013F(0138 + 07 + 0 = 013F) старший байт регистра АХ, именуемый АН, копируется в ячейку с вычисляемым адресом 0140(0138 + 07 + 1 = 0140) | |
| CD 20 | INT 20 | Команда завершения работы программы |
Практическое использование способов адресации (на примере команды ADD):
| Команда ADD: |
| Адрес начала команды | Команда, записанная на языке машинных кодов | Та же самая команда, записанная на языке ассемблер | Комментарий, поясняющий, как выполняется команда |
| 05 34 12 | ADD AX,1234 | НЕПОСРЕДСТВЕННАЯ АДРЕСАЦИЯ: Сложение 2-х байтового числа 1234 (12 – старший байт числа, 34 – младший байт числа) и содержимого 2-х байтового регистра АХ.Результат размещается в регистре АХ. | |
| 01 06 20 01 | ADD [0120],AX | ПРЯМАЯ АДРЕСАЦИЯ: Сложение 2-х байтового числа, находящегося вАХ, с 2-х байтовым числом, расположенном в ячейках оперативной памяти 0120 и 0121 (с содержимым ячейки 0120 складывается содержимое младшего байта АХ, а с содержимым ячейки 0121 складывается содержимое старшего байта АХ). Результат размещается в ячейках 0120 и 0121. | |
| 03 1E 20 01 | ADD BX,[0120] | ПРЯМАЯ АДРЕСАЦИЯ: Сложение содержимого ячеек оперативной памяти0120 и 0121 с содержимым 2-х байтового регистраВХ (к младшему байту регистра ВХ, регистру BL, добавляется содержимое ячейки 0120, а к содержимому старшего байта регистра ВХ, регистра BH, добавляется содержимое ячейки0121). Результат размещается в регистре BX. | |
| 10B | BD 38 01 | MOV BP,0138 | НЕПОСРЕДСТВЕННАЯ АДРЕСАЦИЯ: Занесение 2-х байтового числа 0138 в 2-х байтовый регистр BP |
| 10E | 00 46 20 | ADD [BP+20],AL | КОСВЕННАЯ АДРЕСАЦИЯ: Сложение однобайтового числа, находящегося вАL, с содержимым 1-байтовой ячейки оперативной памяти, адрес которой определяется как сумма содержимого регистра BP и смещения20, т.е. с содержимым ячейки с вычисляемым адресом 0158 (0138+20=0158). Результат размещается в ячейке 0158. |
| 01 46 E0 | ADD [BP-20],AX | КОСВЕННАЯ АДРЕСАЦИЯ: Сложение 2-байтового числа, находящегося в AX с содержимым ячеек оперативной памяти, адреса которых вычисляются как BP-20: младший байт регистра АХ, именуемый АL, складывается с содержимым ячейки, вычисляемый адрес которой определяется как следующая сумма:0118 (0138 - 20 +0 = 0118) старший байт регистра АХ, именуемый АН, складывается с содержимым ячейки с вычисляемым адресом 0119 (0138 - 20 + 1 = 0119) Результат размещается в ячейках 0118 и 0119. | |
| CD 20 | INT 20 | Команда завершения работы программы |
Трассировка представленного выше кода:
Позволяет проследить как выполняется операция сложения.
Первая команда ADD AX,1234 приводит к тому, что AX= 0+1234= 1234
Вторая команда ADD [0120], AX приводит к результату: [0120]= [0120] + AX = 0 +1234 = 1234 ([0120]= 34 [0121]= 12)
Третья команда ADD BX,[0120] приводит к результату: BX= BX + 1234= 1234
Трассировка второй группы команд даёт следующие результаты:
Первая команда MOVBP,138 приводит к результату: BP= 0138
Вторая команда ADD [BP+20],AL приводит к результату: адрес=0138 + 20 = 0158. Далее, [0158]= [0158] + AL = 0 + 34= 34
Третья команда ADD [BP-20],AX приводит к результату: адрес=0138 - 20 = 0118. Далее, [0118]= [0118] + AL = 0 + 34= 34 и [0119]= [0119] + AH = 0 + 12= 12
|
Ход работы:
1. Ознакомиться с теоретическими сведениями.
2. Законспектировать тезисы.
3. Выполнить индивидуальное задание для своего варианта.
Приложение 1
| Чем завершится выполнение следующей группы команд: 1, 6, 11, 16, 21 вариант MOVBX,80A0 MOVAX,90E0 ADD BX,BX ADD AX,BX MOV [BX],AX 2, 7, 12, 17, 22 вариант MOVDX,E0F0 MOVCX,A0C0 ADD CX,DX ADD DX,CX MOV [128],DX 3, 8, 13, 18, 23 вариант MOV DX,E0B0 MOV AX,F0D0 ADD AX,DX ADD AH,AL ADD AL,AH MOV [132],AX 4, 9, 14, 19, 24 вариант MOV CX,7090 MOV BX,9070 ADD BX,BX ADD CH,BL ADD CL,BH MOV [BX],CH 5, 10, 15, 20, 25 вариант MOV BP,190 MOV CX,9070 ADD CX,BP ADD CH,CL ADD CL,CH MOV [BP],CX |
Практическая работа №17
|
|
|
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
© cyberpedia.su 2017-2025 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!