Цифровые устройства и микропроцессорные системы. Задачи и упражнения: Учебное пособие (Представление чисел и арифметические операции в цифровых устройствах. Микропроцессорные устройства и системы на базе МП КР580ВМ80), страница 59

КОП = 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