ВУЗ:
Составители:
43
са, кратного 16, т.е. на границе 16-байтового блока памяти (параграфа).
Сегменты в памяти могут располагаться как последовательно, так и с на-
ложением друг на друга. Если программа превышает 64 Кбайт, то необ-
ходимо перезагружать сегментный регистр CS новым значением базового
адреса. Точно также, если данные превышают 64 Кбайт, то необходимо
перезагрузить регистр DS.
19 4 3 0 19
4
3 0
базовый адрес сегмента
0 0 0 0
CS
0 0 0 0
15 0 15 0
+
эффективный адрес данных
+
IP
19 0 19 0
физический адрес данных
физический адрес команды
Рис. 2.6 Формирование физического адреса данных и команды
Память организована в виде одномерного массива байтов с физически-
ми адресами от 00000
16
до FFFFF
16
. Две области адресного пространства
памяти зарезервированы для выполнения специальных функций, связан-
ных с обработкой прерываний и системным сбросом. Этими областями яв-
ляются первые 128 байт (физические адреса 00000 - 0007F) и последние
16 байт (физические адреса FFFF0 - FFFFF). Данные области использо-
вать для других целей нельзя.
Байты в памяти организуются в слова таким образом, что байту, имею
-
щему меньший адрес, соответствуют менее значимые позиции разрядов в
слове. Каждый байт или слово памяти адресуется с помощью 20-битного
адреса, причем в случае адресации слова адрес указывает на его младшую
часть. Например, адрес 00000
16
может обозначать и байт с этим адресом,
что условно записывается в виде [00000] = 34h, и слово с таким же адре-
сом, что записывается в виде [00000] = 1234h. Тогда старший байт слова,
[00001] = 12h. Квадратные скобки обозначают ячейку памяти, адрес кото-
рой находится в этих скобках, h – шестнадцатеричную систему счисления.
Команды, байты и слова можно размещать по любому
адресу байта, одна-
ко рекомендуется размещать слова в памяти по четным адресам, так как
процессор может передавать такие слова за один цикл обращения к памя-
ти. Слово с четным адресом называется выравненным на границу слова.
Слова с нечетными адресами (невыравненные) также допустимы, однако
они считываются в два раза медленнее (требуют
два цикла обращения к
памяти).
2.2.4 Форматы команд
Команды i8086 имеют переменную длину от 1 до 6 байт. По числу об-
рабатываемых операндов команды подразделяются на безадресные, одно-
адресные и двухадресные. В двухадресных командах результат всегда за-
писывается по первому адресу и только один из операндов может нахо-
диться в памяти. При этом в мнемонике, операнд-приемник записывается
слева от запятой-разделителя
операндов, а операнд-источник – справа.
43 са, кратного 16, т.е. на границе 16-байтового блока памяти (параграфа). Сегменты в памяти могут располагаться как последовательно, так и с на- ложением друг на друга. Если программа превышает 64 Кбайт, то необ- ходимо перезагружать сегментный регистр CS новым значением базового адреса. Точно также, если данные превышают 64 Кбайт, то необходимо перезагрузить регистр DS. 19 4 3 0 19 3 0 4 базовый адрес сегмента 0 0 0 0 CS 0 0 0 0 15 0 15 0 + эффективный адрес данных + IP 19 0 19 0 физический адрес данных физический адрес команды Рис. 2.6 Формирование физического адреса данных и команды Память организована в виде одномерного массива байтов с физически- ми адресами от 0000016 до FFFFF16. Две области адресного пространства памяти зарезервированы для выполнения специальных функций, связан- ных с обработкой прерываний и системным сбросом. Этими областями яв- ляются первые 128 байт (физические адреса 00000 - 0007F) и последние 16 байт (физические адреса FFFF0 - FFFFF). Данные области использо- вать для других целей нельзя. Байты в памяти организуются в слова таким образом, что байту, имею- щему меньший адрес, соответствуют менее значимые позиции разрядов в слове. Каждый байт или слово памяти адресуется с помощью 20-битного адреса, причем в случае адресации слова адрес указывает на его младшую часть. Например, адрес 0000016 может обозначать и байт с этим адресом, что условно записывается в виде [00000] = 34h, и слово с таким же адре- сом, что записывается в виде [00000] = 1234h. Тогда старший байт слова, [00001] = 12h. Квадратные скобки обозначают ячейку памяти, адрес кото- рой находится в этих скобках, h шестнадцатеричную систему счисления. Команды, байты и слова можно размещать по любому адресу байта, одна- ко рекомендуется размещать слова в памяти по четным адресам, так как процессор может передавать такие слова за один цикл обращения к памя- ти. Слово с четным адресом называется выравненным на границу слова. Слова с нечетными адресами (невыравненные) также допустимы, однако они считываются в два раза медленнее (требуют два цикла обращения к памяти). 2.2.4 Форматы команд Команды i8086 имеют переменную длину от 1 до 6 байт. По числу об- рабатываемых операндов команды подразделяются на безадресные, одно- адресные и двухадресные. В двухадресных командах результат всегда за- писывается по первому адресу и только один из операндов может нахо- диться в памяти. При этом в мнемонике, операнд-приемник записывается слева от запятой-разделителя операндов, а операнд-источник справа.
Страницы
- « первая
- ‹ предыдущая
- …
- 41
- 42
- 43
- 44
- 45
- …
- следующая ›
- последняя »