Ответы на типичные вопросы по лабораторным
.docОтветы на часто задаваемые вопросы
к лабораторным работам по организации ЭВМ
ЛР №1
-
Какие общие команды бывают у разных процессоров?
Команды передачи данных, передачи управления, арифметическо-логические команды.
-
Какой регистр в программе изменяется чаще всего?
Чаще всего изменяется регистр IP – счетчик команд. Увеличивается на 1 после каждого байта команды и каждого операнда команды.
-
Есть ли команды, при выполнении которых не меняется значение ни одного регистра?
Нет, регистр команд и счетчик команд (IP) изменяются после каждой команды
-
Есть ли команды, при выполнении которых не меняется значение ни одного регистра кроме регистра команд и счетчика команд?
Да, к примеру:
nop
mov ax,ax
ЛР №2
-
После какой команды первый раз меняется содержимое видеопамяти?
mov ax, 0720h
mov cx, 80*25
rep stosw << после этой – заполнение экрана пробелами
-
После какой команды включается динамик?
in al, 61h
or al, 00000011b
out 61h, al << вот после этой
-
Выключится ли динамик после завершения программы, если в программе он не выключается?
Нет, не выключится.
-
Различна ли будет длина сигнала на процессорах с разной частотой?
Да, т.к. команды выполняются с различной скоростью.
ЛР №3
-
Какие существуют способы адресации?
Способы адресации
|
Операнд |
Адрес операнда |
Регистр |
1-2. Неявная или регистровая |
5. Косвенная |
Команда |
3. Непосредственная |
4. Прямая |
Строка таблицы — это местоположение объекта (регистр или команда). Столбец — тип объекта (собственно операнд или его адрес). Пересечение дает способ адресации. Соответствие способа адресации и местонахождения операнда таково:
-
1-2 — регистр;
-
3 — память команд;
-
4 — память данных или внешнее устройство;
-
5 — память данных, стек или внешнее устройство.
Надо отметить, что явно или неявно в команде может быть указано имя регистра как с самим операндом, так и с его адресом. Однако, название "неявная адресация" используется только применительно к первому случаю.
-
Подчеркните все строки с прямой/косвенной/непосредственной/регистровой/смешанной адресацией
-
Подчеркните все команды, при выполнении которых меняется регистр флагов
Регистр флагов изменяется при всех логических командах (or, and, xor ..), алгебраических (add, dec, mul, inc, dec … ) , операции со стеками (push, pop) и циклы (loop).
ЛР №4
-
В какой момент процессор узнает адрес глобальной таблицы дескрипторов?
;загружается регистр GDTR значением одноименной переменной
lgdt fword ptr gdtr
-
Где происходит заполнение глобальной таблицы дескрипторов?
За это отвечают следующие строки:
;Глобальная таблица дескрипторов
GDT label byte
db 8 dup(0) ;дескриптор 0
CS16Dsc db 0FFh,0FFh,0,0,0,10011010b,0,0 ;дескриптор 1
CS32Dsc db 0FFh,0FFh,0,0,0,10011010b,11001111b,0 ;дескриптор 2
DS32Dsc db 0FFh,0FFh,0,0,0,10010010b,11001111b,0 ;дескриптор 3
SS32Dsc db 0FFh,0FFh,0,0,0,10010010b,11001111b,0 ;дескриптор 4
VSegDsc db 0FFh,0FFh,0,80h,0Bh,10010010b,11001111b,0 ;дескриптор 5
GDT_l = $-GDT ;длина GDT
-
Что за переменная - idtr_real – где объявляется и что содержит?
Объявляется в следующей строке:
idtr_real dw 3FFh,0,0
Первый байт равен лимиту стандартного лимита регистра дескриптора прерываний (1024 байта – 3FFh), последний –
-
Чем отличаются строки:
CS32Dsc db 0FFh,0FFh,0,0,0,10011010b,11001111b,0 ;дескриптор 2
DS32Dsc db 0FFh,0FFh,0,0,0,10010010b,11001111b,0 ;дескриптор 3
Строки отличаются 4-м битом 5–го байта, если он равен 1, то дескриптор описывает сегмент кода, если 0 – сегмент данных.