АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

MOV BX,OFFSET CharString

Читайте также:
  1. Команды передачи данных.

MOV AL,[BX + 8]

 

MOV SI,6

MOV AL,[CharString + SI + 2]

 

MOV BX.OFFSET CharString

MOV DI,8

MOV AL,[BX + DI]

MOV SI,OFFSET CharString

MOV BX,8

MOV AL,[SI + BX]

MOV BX,OFFSET CharString

MOV SI,7

MOV AL,[BX + SI + 1]

 

В приведенном примере команда OFFSET загружает начальный адрес цепочки ABCDEFGHIJ относительно начала сегмента данных. Знак @ загружает адрес начала сегмента, имя которого стоит за этим знаком. В нашем примере сегмента данных DATA.

Если возникает необходимость сменить сегмент данных, то это можно сделать, например следующим образом:

 

MOV AL,ES:[SI]; DS заменен на ES

MOV SS:[BX+4],AX; DS заменен на SS

Если переменная в памяти имеет собственную метку (идентификатор), например MEMR_VAR, тоеё можно вызвать командой:

 

MOV BX,MEMR_VAR

Многие команды ассемблера оперируют байтами или словами. Если с помощью соответствующих директив переменная COST определена как слово, а переменная COUNT как байт, то команда INC COST оперирует словом, а команда INC COUNT-байтом. Однако в некоторых случаях ассемблер не может определить тип операнда. Команда INC [ВХ] производит инкремент величины, адрес которой находится в регистре ВХ, но является эта величина байтом или словом? Аналогичная ситуация возникает при использовании команды:

 

MOV [ВХ],1

Встретив такую команду, TASM зафиксирует ошибку. Чтобы исключить указанную неопределенность, используют атрибутные операторы, например оператор указателя PTR:

 

MOV WORD PTR[BX],1; запись слова

MOV BYTE PTR [BX],1; запись байта

Команды LEA, LDS, LES.

 

Эти команды отличаются от других команд пересылки тем, что при их выполнении в адресуемые регистры передаются не собственно данные, а их адреса. Они занимают в памяти от 2 до 4 байт. Основное назначение этих команд - инициализация регистров перед выполнением цепочечных команд или перед выполнение подпрограмм. Команда:

 

LEA reg, memr

обеспечивает вычисление эффективного адреса ЕА ячейки памяти в соответствии с указанным способом адресации и загружает ЕА (а не содержимое адресуемой ячейки!) в указанный общий регистр. Например, команда: LEA BX,COL[BP] загрузит в регистр ВХ эффективный адрес ЕА, вычисленный сложением содержимого ВР и смещения COL. Такая операция может потребоваться, например, для загрузки начального адреса таблицы в регистр ВХ, перед выполнением команды XLAT. Команды:

 

LDS SI, memr и LES DI, memr

загружают адресную информацию из памяти в пару регистров DS:SI и ES:DI соответственно. Первое слово из памяти загружается в сегментный регистр, а второе слово в индексный регистр. Эти команды управляют коммутацией сегментов данных.

 

Команда XCHG

 

Эта команда осуществляет обмен данными междуисточником и получателем: XCHG dst, src

Так как непосредственные операнды обменять невозможно, ни один из операндов команды XCHG не может быть константой. В двоичных кодах данная команда имеет два формата. Общий формат (длиной 2 байта) позволяет произвести обмен содержимым любой пары общих регистров, а так же обмен регистров и ячеек памяти при любом допустимом способом адресации. Укороченный формат(один байт) осуществляет обмен любого общего регистра и аккумулятора AX(AL). Команда XCHG AX,AX используется как команда пустой операции NOP, обеспечивающей задержку 3 такта. Отметим, что эта команда не работает с сегментными регистрами.

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)