Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Тема 3: Операторы задания данных. Механизм обработки прерываний.

Пример 1:преобразование из десятичной системы счисления

Выполните преобразования: 58 =?2 , 645 =?8, 645 =?16 Решение:

 
 

Пример 2: преобразование между недесятичными системами:

0001110102 = 0 7 28 = 728

0001110102 = 3 А16 = 3А16

348 = 011 1002 = 0001 11002 = 1С16

Пример 3: преобразование числа с дробной частью: 0,125 =? 2

Решение:

 

Тема 2: Арифметические, битовые команды. Режимы адресации

Пример 1. Установите содержимое регистра AX в результате выполнения следующего фрагмента программы:

… MOV BL,26 MOV BH,10111B MOV AX,2FB4H XOR AX,[BX] + 2 ADD AL,BL …   если содержимое DS = 1040h, а фрагмент памяти следующий: адрес содержимое
11B1AH 2AH
11B1BH 2BH
11B1CH 2CH
11B1DH 2DH
11B1EH 2EH
11B1FH 2FH

Решение: после первых трех команд (команды пересылки) AX= 2FB4H, BX = 171AH. Второй операнд команды XOR задан с помощью базового режима адресации, в которым содержимое регистра используется в качестве адреса (относительного) в сегменте данных. Константа 2 задает величину сдвига. В результате полный адрес операнда – источника для команды: A = (DS) 10H + (BX) + 2 = 1040H * 10H + 171AH +2 = 11B1CH. Данной командой обрабатывается слово (два байта), таким образом, значение операнда – источника 2D2CH. Операндом – приемником служит регистр AX.

Битовые команды (XOR- исключающее ИЛИ) можно выполнить только в двоичной системе. В данном случае

первый операнд (регистр AX) 0010 1111 1011 0100 b

второй операнд (слово памяти) 0010 1101 0010 1100 b

результат XOR 0000 0010 1001 1000 b записывается в регистр AX и поэтому его значение становится AX = 0298H

Последняя команда выполняет сложение младших половинок регистров AX и BX.

98Н

+ 1АН

В2Н и это значение размещается в регистре AL. В результате содержимое AX 02В2 Н

Тема 3: Операторы задания данных. Механизм обработки прерываний.

Пример 1: Опишите события, которые произойдут в системе, если по линии 0 поступил запрос в контроллер прерываний, содержимое регистров контроллера в этот момент было IMR= 24, ISR= 32, а фрагмент таблицы векторов прерывания следующий:

Адрес содержимое Решение: Линия 0 соответствует самому младшему разряду регистров контроллера прерываний. По содержимому регистра IMR в двоичном виде (0001 1000b) можно сделать вывод,что замаскированы линии 3 и 4 (но не нулевая). Значение регистра ISR свидетельствует о том, что в данный момент процессором обрабатывается прерывание, поступившее по линии 5. Нулевая линия имеет более высокий приоритет, поэтому обслуживание прерывания от линии 5 будет приостановлено. Контроллер передает запрос и номер прерывания (в данном случае – 8) процессору. Процессор определяет адрес вектора 8 -го прерывания АВП = 8 * 4 = 32 = 00020h. Байт оперативной памяти с адресом 00020h имеет содержимое A5h - это младший байт слова для регистра IP. Старший байт этого слова имеет содержание FEh. Полностью содержимое регистра IP = FEA5h. Рассуждая подобным образом, несложно получить и базовый адрес сегмента CS = F000h.
0001Ch 16h
0001Dh 00h
0001Eh 3Eh
0001Fh 08h
00020h A5h
00021h FEh
00022h 00h
00023h F0h
00024h 54h

После загрузки регистров IP и CS процессор определяет адрес программы обработки прерывания:
A = (CS)*10h+(IP)=F0000h+FEA5h=FFEA5h и начинает выполнять программу с этого адреса до первой команды IRET – возврата из прерывания.

Пример2 Определите содержимое регистра AX в результате выполнения следующего фрагмента:

… .DATA S1 DB 60,65,70,75 .CODE MOV AX,@DATA MOV DS,AX LEA BX,S1 PUSH [BX] POP [BX]+2; можно так [BX+2] MOV CL,20 ADD S1,CL MOV AX,S1[2] AND AX,S1 … Решение: после размещения переменных в сегменте данных получаем следующее: S1 3CH S1[1] 41H S1[2] 46H S1[3] 4BH   команда LEA заносит в BX смещение переменной S1 в сегменте данных. В стек записывается слово сегмента данных с адреса, который в данный момент находится в BX. Следующей командой с вершины стека читается слово данных (как раз то, что было загружено в стек предыдущей командой) в ячейку памяти, сдвинутую на 2 байта с адреса, который находится в регистре BX. В результате работы со стеком сегмент данных получит следующее содержание: S1 3CH S1[1] 41H S1[2] 3CH S1[3] 41H   Команды переноса и сложения увеличат содержимое ячейки с именем S1 на 20, команда пересылки дает AX = 413CH, а команда AND, обработав два слова: 0100 0001 0011 1100 B 0100 0001 0101 0000 B даст ответ 0100 0001 0001 0000 B или 4110H  

 



<== предыдущая лекция | следующая лекция ==>
Нефтяные месторождения России | Университеттен бекітілген практика жетекшісінің міндеті
Поделиться с друзьями:


Дата добавления: 2016-12-18; Мы поможем в написании ваших работ!; просмотров: 241 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Сложнее всего начать действовать, все остальное зависит только от упорства. © Амелия Эрхарт
==> читать все изречения...

2221 - | 2091 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.