Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 11634
Последний выпуск: 19.06.2015

СПРАВОЧНИК по системе программирования ТУРБО АССЕМБЛЕР 2.0


Оглавление

Регистр CS
-----------------------------------------------------------------

     Регистр CS указывает на начало блока памяти объемом 64К, или
сегмент  кода, в котором находится следующая выполняемая инструк-
ция. Следующая инструкция, которую нужно выполнить, находится  по
смещению,  определяемому в сегменте кода регистром IP, то есть на
нее указывает адрес (в форме "сегмент:смещение") CS:IP. Процессор
8086  никогда  не может извлечь инструкцию из сегмента, отличного
от того, который определяется регистром CS.

     Регистр CS можно изменять с помощью многих инструкций, вклю-
чая  отдельные инструкции перехода, вызовы и возвраты управления.
Ни при  каких  обстоятельствах регистр CS нельзя загрузить непос-
редственно.

     Никакие другие режимы адресации или указатели памяти, отлич-
ные от IP, не могут нормально работать относительно регистра CS.


Регистр DS
-----------------------------------------------------------------

     Регистр DS указывает  на  начало  сегмента  данных,  которые
представляет  собой  блок памяти объемом 64К, в котором находится
большинство размещенных в памяти операндов. Обычно для ссылки  на
адреса памяти используются смещения, предполагающие использование
регистров BX, SI или DI. В основном сегмент  данных  представляет
собой  то, о чем говорит его название: как правило это сегмент, в
котором находится текущий набор данных. Адресация памяти обсужда-
ется  далее,  в Главе 5 "Основные элементы программы на языке Ас-
семблера".


Регистр ES
-----------------------------------------------------------------

     Регистр ES указывает на начало блока памяти объемом 64К, ко-
торый  называется  дополнительным  сегментом. Как и подразумевает
его название, дополнительный сегмент не служит для какой-то конк-
ретной  цели,  но доступен тогда, когда в нем возникает необходи-
мость. Иногда дополнительный сегмент используется  для  выделения
дополнительного  блока памяти объемом 64К для данных. Однако дос-
туп к памяти в дополнительном сегменте менее эффективен, чем дос-
туп к памяти в сегменте данных (см. Главу 10 "Развитое программи-
рование на Турбо Ассемблере").

     Особенно  полезен дополнительный сегмент, когда используются
строковые инструкции. Все строковые инструкции, которые выполняют
запись в память, используют в качестве адреса памяти,  в  которую
нужно  выполнить  запись, пару регистров ES:DI. Это означает, что
регистр ES особенно полезен при использовании его в качестве  це-
левого сегмента при копировании блоков, сравнении строк, просмот-
ре памяти и очистке блоков памяти. Мы рассмотрим строковые  инст-
рукции  и использование в связи с ними регистра ES в Главе 5 "Бо-
лее подробно о программировании на Турбо Ассемблере".


Регистр SS
-----------------------------------------------------------------

     Регистр SS  указывает  на  начало  сегмента  стека,  которые
представляет  собой  блок памяти объемом 64К, в котором находится
стек. Все инструкции, которые неявно используют регистр SP (вклю-
чая  занесение в стек, извлечение из стека, вызовы и возвраты уп-
равления), работают с сегментом стека, так как только регистр  SP
может использоваться для адресации памяти в сегменте стека.

     Как мы обсуждали ранее, регистр BP  также  работает  относи-
тельно  сегмента стека. Это позволяет использовать регистр BP для
доступа к параметрам и переменным, которые хранятся в стеке.  Од-
нако  более  подробно  адресацию  к памяти мы обсудим в следующей
главе.


                   Набор инструкций процессора 8086
-----------------------------------------------------------------

     Для программиста ключевым ресурсом процессора 8086  является
набор  инструкций.  Как  мы уже обсуждали ранее, набор инструкций
включает в себя все действия, которые программист может заставить
выполнить процессор 8086. Полный набор инструкций Турбо Ассембле-
ра приведен в Таблице 4.1.

     Как можно заметить, в наборе инструкций процессора 8086 име-
ется  множество  инструкций.  Эти  инструкции выполняют множество
действий, от пустой операции, которая не выполняет никаких  функ-
ций (NOP),  до копирования 65535 байт (REP MOVSB). Подробному ос-
вещению набора инструкций мы уделим много времени в  других  гла-
вах.

              Набор инструкций Турбо Ассемблера
                                                      Таблица 4.1
-----------------------------------------------------------------
Инструкция       Процессор         Инструкция          Процессор
-----------------------------------------------------------------
ADD                все                SAL                все
OR                 все                SHL                все
ADC                все                SAR                все
SBB                все                SHR                все
AND                все                RCL                все
SUB                все                RCR                все
XOR                все                AAA                все
CMP                все                AAS                все
XCHG               все                CBW                все
TEST               все                CWDE               386
MOV                все (1)            CLC                все
ESC                все                CLD                все
JMP                все                CLI                все
CALL               все                CMC                все
INT                все                CMPSB              все
INC                все                CMPSW              все
DEC                все                CMPSD              386
PUSH               все                CWD                все
POP                все                CDQ                386
AAD                все (2)            DAA                все
AAM                все (2)            DAS                все
IN                 все                HLT                все
OUT                все                INTO               все
LEA                все                IRET               все
LDS                все                IRETD              386
LES                все                LAHF               все
LSS                386                LODSB              все
LFS                386                LODSW              все
LGS                386                LODSD              386
DIV                все                MOVSB              все
MUL                все                MOVSW              все
IDIV               все                MOVSD              386
IMUL               все (3)            NOP                все
NEG                все                POPF               все
NOT                все                POPFD              386
ROL                все                PUSHF              все
ROR                все                PUSHFD             386
SAHF               все                REPE               все
SCASB              все                REPZ               все
SCASW              все                REPNE              все
SCASD              386                REPNZ              все
STC                все                SEGCS              все (4)
STD                все                SEGSD              все (5)
STI                все                SEGSS              все (6)
STOSB              все                SEGES              все (7)
STOSW              все                SEGFS              386 (8)
STOSD              386                SEGGS              386 (9)
WAIT               все                RET                все
XLATB              все                RETN               все (10)
STOS               все                RETF               все (11)
SCAS               все                JA                 все (12)
LODS               все                JNBE               все (12)
XLAT               все                JAE                все (12)
MOVS               все                JNB                все (12)
CMPS               все                JNK                все (12)
PUSHA            186-386              JB                 все (12)
PUSHAD             386                JNAE               все (12)
POPA             186-386              JC                 все (12)
POPAD              386                JBE                все (12)
LEAVE            186-386              JNA                все (12)
INSB             186-386              JE                 все (12)
INSD               386                JG                 все (12)
OUTSB            186-386              JNLE               все (12)
OUTSW            186-386              JGE                все (12)
OUTSD              386                JNL                все (12)
INS              186-386              JL                 все (12)
OUTS             186-386              JNGE               все (12)
BOUND            186-386              JLE                все (12)
ENTER            186-386              JNG                все (12)
LOCK               все                JNE                все (12)
REP                все                JNZ                все (12)
JNO                все (12)           SETA               386
JNS                все (12)           SETAE              386
JNP                все (12)           SETB               386
JPO                все (12)           SETBE              386
JO                 все (12)           SETC               386
JP                 все (12)           SETE               386
JPE                все (12)           SETG               386
JS                 все (12)           SETGE              386
LOOP               все (13)           SETL               386
LOOPE              все (14)           SETLE              386
LOOPZ              все (14)           SETNA              386
LOOPNE             все (14)           SETNAE             386
LOOPNZ             все (14)           SETNB              386
LOOPW              все (15)           SETNB              386
LOOPWE             все (16)           SETNC              386
LOOPWZ             все (16)           SETNE              386
LOOPWNE            все (16)           SETNG              386
LOOPWNZ            все (16)           SETNGE             386
LOOPD              386 (17)           SETNL              386
LOOPDE             386 (17)           SETNLE             386
LOOPDZ             386 (17)           SETNO              386
LOOPDNE            386 (17)           SETNP              386
LOOPDNZ            386 (17)           SETNS              386
JCXZ               все (18)           SETNZ              386
JECXZ              386 (19)           SETO               386
BT                 386                SETP               386
BTC                386                SETPE              386
BTR                386                SETS               386
BTS                386                SETZ               386
BSF                386
BSR                386                APPL            286p+386p
MOVSX              386                CLTS            286p+386p
MOVZX              386                LLDT            286p+386p
SHLD               386                LMSW            286p+386p
SHRD               386                LTR             286p+386p
SLDT            286p+386p             FXAM             8087-387
SMSW            286p+386p             FXTRACT          8087-387
STR             286p+386p             FXAM             8087-387
VERR            286p+386p             FXTRACT          8087-387
VERW            286p+386p             FYL2X            8087-387
LGDT            286p+386p             FYL2XP1          8087-387
LIDT            286p+386p             FNCLEX           8087-387
SGDT            286p+386p             FNDISI           8087-387
SIDT            286p+386p             FNENI            8087-387
LAR             286p+386p             FNINIT           8087-387
LSL             286p+386p             FADDP            8087-387
FMULP           8087-387              FDIVP            8087-387
FADD            8087-387              FDIVRP           8087-387
FDIV            8087-387              FSUBP            8087-387
FDIVR           8087-387              FSUBRP           8087-387
FMUL            8087-387              FXCH             8087-387
FSUB            8087-387              FCOMPP           8087-387
FCOM            8087-387              FFREE            8087-387
FCOM            8087-387              FIADD            8087-387
FCOMP           8087-387              FICOM            8087-387
FST             8087-387              FICOMP           8087-387
F2XM1           8087-387              FIDIV            8087-387
FABS            8087-387              FIDIVR           8087-387
FCHS            8087-387              FIMUL            8087-387
FCLEX           8087-387              FIST             8087-387
FDECSTP         8087-387              FISUB            8087-387
FDISI           8087-387              FISUBR           8087-387
FENI            8087-387              FLDCW            8087-387
FINCSTP         8087-387              FSTCW            8087-387
FINIT           8087-387              FSTSW            8087-387
FLD1            8087-387              FNSTCW           8087-387
FLDL2E          8087-387              FNSTSW           8087-387
FLDL2T          8087-387              FLDENV           8087-387
FLDLG2          8087-387              FRSTOR           8087-387
FLDLN2          8087-387              FSAVE            8087-387
FLDPI           8087-387              FSTENV           8087-387
FLDZ            8087-387              FNSAVE           8087-387
FNOP            8087-387              FNSTENV          8087-387
FPATAN          8087-387              FLD              8087-387
FPREM           8087-387              FSTP             8087-387
FPTAN           8087-387              FILD             8087-387
FRNDINT         8087-387              FISTP            8087-387
FSCALE          8087-387              FBLD             8087-387
FSQRT           8087-387              FBSTP            8087-387
FIST            8087-387              FWAIT            8087-387
-----------------------------------------------------------------

(1)  - реализована на процессоре 386 с использованием специальных
       регистров;
(2)  - за инструкцией может следовать любое 8-битовое непосредст-
       венное значение х (по умолчанию 10);
(3)  - расширения процессора 286;
(4)  - генерирует переопределение CS, может следовать за инструк-
       цией;
(5)  - генерирует переопределение DS, может следовать за инструк-
       цией;
(6)  - генерирует переопределение SS, может следовать за инструк-
       цией;
(7)  - генерирует переопределение ES, может следовать за инструк-
       цией;
(8)  - генерирует переопределение FS, может следовать за инструк-
       цией;
(9)  - генерирует переопределение GS, может следовать за инструк-
       цией;
(10) - явный возврат управления ближнего типа;
(11) - явный возврат управления дальнего типа;
(12) - при переходах воспринимает аргумент ближнего или дальнего
       типа;
(13) - размер операнда в операторе  цикла  определяется  размером
       сегмента;
(14) - аналогично LOOP;
(15) - размер операнда в цикле всегда равен слову (CX);
(16) - аналогично LOOPW;
(17) - размер операнда в цикле всегда равен двойному слову (ECX);
(18) - размер операнда в JCXZ равен слову (CX);
(19) - размер операнда в JECXZ равен двойному слову (ECX).



Оглавление

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог