adfun.ru
| |
BIGLIB |
| большущая библиотека (9812 книг), можно не только прочитать но и скачать бесплатно |
|
| |
ФАНТАСТИКА |
| фентези,
фантастика, фантастические повести |
|
| |
ФИЛОСОФИЯ |
книги, которые заставляют
задуматься над окружающим тебя миром.
|
|
| |
МЕДИЦИНА |
медицинские книги,
методички,
народные лечебники |
|
| |
КУЛИНАРИЯ |
рецепты
тортов, консервирование,
все о спиртных
напитках. |
|
| |
СТИХИ |
| стихи популярных
и не очень авторов |
|
| |
ТВОРЧЕСТВО |
| народное творчество,
стихи, песни и т.д. |
|
| |
ЮМОР |
| анекдоты, приколы,
смешные истории |
|
| |
ЭРОТИКА |
| эротические рассказы,
книги о технике секса,
кама-сутра и др. |
|
|
| |
 |
Строковые команды
-----------------------------------------------------------------
В дополнение к списку кодов операций следующие строковые ко-
манды могут быть использованы самостоятельно или с префиксами
повторения:
ННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
cmps insw movsb outsb scasw
cmpsb lods movsbw outsw stos
cmpsw lodsb msb scas stosb
ins lodsw outs scasb stosw
insb movs
ННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
Таблица 12.8. Строковые команды
- 427,428 -
Префиксы повторения
-----------------------------------------------------------------
Могут быть использованы следующие префиксы повторения:
rep repe repne repnz repz
Команды перехода
-----------------------------------------------------------------
Команды перехода трактуются специально. Tак как метка не мо-
жет быть включена в команду сама по себе, то переходы должны быть
к Си-меткам (рассмотренным в разделе "Использование команд пере-
хода и меток"). Разрешены следующие команды перехода:
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
ja jge jnc jnp js
jae jl jne jns jz
jb jle jng jnz loop
jbe jmp jnge jo loope
jс jna jnl jp loopne
jcxz jnae jnle jpe loopnz
je jnb jno jpo loopz
jg jnbe
ННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
Таблица 12.9. Команды перехода
- 429,430 -
Директивы ассемблера
-----------------------------------------------------------------
Во встроенном ассемблере Турбо Си разрешены следующие дирек-
тивы:
db dd dw extrn
Указатели встроенного ассемблера к данным и функциям
-----------------------------------------------------------------
Вы можете использовать Си-идентификаторы в операторах asm;
Турбо Си будет автоматически превращать их в соответствующие опе-
ранды ассемблера и ставить знак подчеркивания в именах идентифи-
каторов. Могут быть использованы все идентификаторы, включая ав-
томатические (локальные) переменные, регистровые переменные и
параметры функции.
В общем, идентификатор Си может быть использован в любой по-
зиции, где допускается адресный операнд. Понятно, что регистровая
переменная может быть использованна там, где регистр - допустимый
операнд.
Если программа во время грамматического разбора операндов
команды встроенного ассемблера наталкивается на идентификатор, то
его поиск выполняется в таблице идентификаторов Си. Имена регист-
ров 8086 исключают из этого поиска. Могут быть использованы любые
заглавные или строчные формы имен регистров.
- 431,432 -
Встроенный ассемблер и регистровые переменные
-----------------------------------------------------------------
Имеется два наиболее часто встречающихся обьявления регист-
ров в функциях: либо как регистровые переменные, либо как автома-
тические (локальные) переменные. Если ключевое слово register
встречается в объявлении, которое не может быть регистром, то
ключевое слово игнорируется.
В регистре могут быть размещены только short, int (или соот-
ветствующие unsigned типы) или двухбайтные переменные указатели.
SI и DI - это регистры 8086, используемые для регистровых пере-
менных. Если в функции не дано объявления регистровых переменных,
то программа встроенного ассемблера может свободно использовать
SI или DI как случайные регистры. Функция Си при входе и выходе
автоматически сохраняет и восстанавливает регистры SI и DI вызы-
вающей программы.
Если в функции имеются регистровые объявления, то встроенный
ассемблер может использовать или изменять значения регистровой
переменной, используя SI или DI. Однако более предпочтительный
метод состоит в том, чтобы использовать идентификатор Си в случае
внутреннего использования регистровых переменных.
- 433,434 -
Встроенный ассемблер:
смещения и замещения размеров операндов
-----------------------------------------------------------------
Во время программирования вам не нужно интересоваться точны-
ми смещениями локальных переменных. Просто использование имен бу-
дет включать правильные смещения.
Однако, может возникнуть необходимость включить соответству-
ющие WORD PTR, BYTE PTR или другие замещения размеров операндов
ассемблерной команды. Замещение WORD PTR необходимо в LES или ко-
мандах косвенного far-вызова.
Использование элементов Си-структуры
-----------------------------------------------------------------
Вы, конечно, можете описывать элементы структуры в операторе
встроенного ассемблера обычным порядком, т.е. при помощи
. . В этом случае вы имеете дело с переменной и
можете хранить в ней или получить из нее значения. Однако, вы так
же можете непосредственно описывать элемент (без имени перемен-
ной), используя числовую константу. В этой ситуации константа
|
adfun.ru
|
|
|
|