Архитектура микропроцессорной системы. Состав машинных команд и основы программирования микропроцессорной системы на ассемблере. Булатов В.Н. - 27 стр.

UptoLike

Составители: 

Следующая командакоманда загрузки данных в приемник:
MOV dst,data
Формат команды:
Рассмотрим пример.
Пример 3 —Данные 5С отправить в ячейку памяти с адресом
1FC0.
Кратко: M
1FC0
:=5C.
Ответ:
1) длина пересылаемых данных —1 байт;
2) ассемблер: MOV BYTE [1FC0],5C (byte —байтдлина данных;
обязательно нужно указывать, если dst —память);
3) машинный код: w=0, dst=00 110 (mod=00, reg/mem=110);
составляем КОП:
Разбиваем на тетрады и записываем КОП в H-коде: C6 06, и
команду в целом: C6 06 C0 1F
5C .
Еще один пример.
адрес данные
Пример 4 — Необходимо переслать два байта в две ячейки памяти:
M
1FC0
:=6D, M
1FC1
:=5A.
Ответ: поскольку МП 8086 —16-разрядный, и учитывая, что байты
отправляются в две соседние ячейки ЗУ, оформляем это следующим
образом:
1) ассемблер: MOV WORD [IFC0],5A6D (word —слово, то есть
2 байта: смотрите пример 3).
В команде число 5A6D пишется как единое число, и поскольку 5A
располагается по адресу 1FC1, то в 16-разрядном числе оно и является
старшим (как уже отмечалось выше), а 6D —младшим. А вот адрес в
команде можно указывать только один. Поэтому принято во всех видах
микропроцессоров для многобайтового слова указывать адрес только
младшей его части.
27
Следующая команда — команда загрузки данных в приемник:
    MOV dst,data
Формат команды:




Рассмотрим пример.
     Пример 3 —Данные 5С отправить в ячейку памяти с адресом
1FC0.
Кратко: M1FC0:=5C.
     Ответ:
     1) длина пересылаемых данных —1 байт;
     2) ассемблер: MOV BYTE [1FC0],5C (byte —байт —длина данных;
обязательно нужно указывать, если dst —память);
     3) машинный код: w=0, dst=00 110 (mod=00, reg/mem=110);
составляем КОП:




      Разбиваем на тетрады и записываем КОП в H-коде: C6 06, и
 команду в целом:        C6 06 C0 1F 5C .
                                   адрес данные
      Еще один пример.
      Пример 4 — Необходимо переслать два байта в две ячейки памяти:
M1FC0:=6D, M1FC1:=5A.
      Ответ: поскольку МП 8086 —16-разрядный, и учитывая, что байты
отправляются в две соседние ячейки ЗУ, оформляем это следующим
образом:
      1) ассемблер: MOV WORD [IFC0],5A6D (word —слово, то есть
2 байта: смотрите пример 3).
       В команде число 5A6D пишется как единое число, и поскольку 5A
располагается по адресу 1FC1, то в 16-разрядном числе оно и является
старшим (как уже отмечалось выше), а 6D —младшим. А вот адрес в
команде можно указывать только один. Поэтому принято во всех видах
микропроцессоров для многобайтового слова указывать адрес только
младшей его части.
                                                                  27