Разделы:


Best links:

Команды пересылки данных

Команды LDS и LES используются, в основном, при обращении к данным, находящимся вне текущих сегментов DS или ES, так, что возникает необходимость изменить базовый адрес сегмента. Пара 16-разрядных адресов - база сегмента и смещение в сегменте, называемая указателем, предварительно загружается в память. Относительный адрес указателя определяется значениями полей mod и r постбайта команды LDS(или LES). Значение смещения содержится в двух первых байтах указателя, а базовый адрес сегмента - в третьем и четвертом байтах. По команде LDS(или LES) происходит обращение к указателю и осуществляется загрузка регистра DS (или ES) базовым адресом, а смещение пересылается в регистр, указанный полем reg постбайта команды.

Пересылки флагов. Включают четыре однобайтовые команды: LAHF(загрузить АН флагами), SAHF (запомнить АН в регистре F), PUSH F (занести F в стек) и POP F (извлечь из стека в F).

По команде LAHF осуществляется пересылка младшего байта регистра флагов F в АН, а по команде SAHF - обратная пересылка. Эти команды введены в систему команд ЦП для упрощения программной совместимости с ВМ80. В частности, без их использования для реализации команд PUSH PSW и POP PSW BM80 с помощью команд ЦП потребовалось бы по 9 байт памяти, а использование, например, команды LAHF позволяет при реализации команды PUSH PSW обойтись всего двумя байтами: LAHF, PUSH AX. Команда PUSHF помещает содержимое регистра F в стек, причем сначала записывается старший байт, а затем младший байт регистра F.

предыдущаяследующая