КОП = 100010 – это код команды пересылки; бит w = 1 означает, что обрабатываются 16-битовые слова; mod = 11 свидетельствует о том, что оба адреса относятся к регистрам, причем поскольку d = 0, источником информации является регистр reg = 000, т.е. АХ, а получателем – регистр r/m = 001, т.е. СХ. Сокращено (СХ)¬(АХ).
Мнемокод команды MOV CX,AX;
б)
КОП = 100010 — команда пересылки; бит w = 0 — обработка 8-битовых слов; постбайт (mod = 00, reg = 000, r/m = 000) при d=0 обозначает, что источник информации — регистр AL, получатель - ячейка памяти с адресом (BX) + (SI).
Мнемокод команды MOV [(BX) + (SI)], AL;
в) MOV BX, [(SI) + disp H,L] --пересылка из ячейки памяти с адресом, являющимся суммой содержимого регистра SI 16-разрядного смещения, указанного в 3-м и 4-м байтах команды (disp H,L = D180H).
Р6.54.а)
КОП = 000000 – код операции сложения; w = l – обработка 2-байтовых слов; mod= 11-регистровая адресация; reg = 000-код регистра АХ; r/m = 001 - код регистра СХ. При d = 0 регистр АХ - источник, СХ - приемник; поэтому результат операции — сумма содержимого регистров АХ и СХ - помещается в регистр СХ. Мнемокод ADD СХ, АХ; комментарий (СХ)← (АХ) + (СХ);
б) ADD BL, CH; (BL)← (CH) + (BL);
в) ADD AX,DI; (AX) (DI) + (AX).
Р6.55. Двоичные коды 1-го и 2-го байтов:
б)
Состоящий из двух частей код операции 100000 000 – это код команды сложения непосредственного операнда (4-й или 3-й биты) с содержимым регистра или ячейки памяти. При mod = 11 и r/m = 1 1 1 2-й операнд содержится в регистре DI; в него же помещается результат суммирования. Мнемокод команды ADD DI,300FH. В результате выполнения команды содержимое регистра DI будет(DI) = 41FFH.
Р6.56. а) Эффективный адрес перехода
EA = (IP) + disp H,L = 11F2H;
машинный код команды
б) EA = (BX) = DE01H;
машинный код команды
11111111 00100111
(1-й байт – КОП, 2-й байт – постбайт, у которого mod = 00 r/m = 111);
в) EA = (BX) + disp H,L = DFF3H;
машинный код команды
(1-й байт – КОП, 2-й байт – постбайт адресации, у которого mod =10 и r/m = 111; 4-й и 3-й байты – смещение).
Р6.57. При межсегментном прямом переходе в счетчик команд загружается смещение (IP)←disp H,L, и эффективный адрес перехода EA = disp H,L = 010EH; исполнительный адрес EA + (CS)16 = B210EH.
Машинный код команды
(1-й байт - КОП, 3-й и 2-й байты - смещение, 5-й и 4-й байты – сегментный адрес).
Р6.58. См. решение задач 6.53 - 6.55.
Р6.59. См. решение задач 6.53 - 6.55.
Р6.60. Фрагмент программы:
MOV AL,M1 ;3агрузка регистра AL из ячейки памятиМ1 10
XCHG AL,M2 ;Обмен содержимого ячейки памяти М2
;и регистра AL 17
MOV M1,AL ;3агрузка ячейки памяти Ml
;из регистра AL 10
(справа указано число тактов).
Число тактов, необходимое для выполнения команды XCHG, равно 11+nЕА, где nЕА – число тактов, необходимое для вычисления эффективного адреса [7, с. 53, 64, 500]. В данном случае используется прямая адресация ячейки памяти, поэтому nЕА = 6. Суммарное время выполнения фрагмента программы при fт = 5 МГц
Р6.61. Фрагмент программы:
SUMN: MOV CX,N ;3агрузка регистра СХ константой N 4
MOV АХ,0 ;Обнуление регистра АХ 4
MOV SI,AX ;Обнуление регистра SI 2
ROT: ADD AX,BEG[SI] ;Прибавление очередного 18
;слова из памяти.
ADD SI,2 ;Прибавление к (SI) числа 2 4
LOOP ROT ;Декремент СХ и повторение 17/5
;цикла, если (СХ) ¹ 0.
MOV RES,AX ;3агрузка результата ячейку памяти RES 15
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.