|
Ушел с форума
16377 / 7689 / 1080
Регистрация: 11.11.2010
Сообщений: 13,768
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 18.12.2013, 13:34 [ТС] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
ГЛАВА 17 Все строковые команды задаются в виде однобайтового кода pppp-ccc-w, где биты pppp=1010b и задают группу команд, биты ccc задают команду внутри группы (расшифровка в таблице), а бит w определяет размер операнда — байт или слово/двойное/учетверенное слово, в зависимости от установленного режима. Если размер операнда — байт, то опкод инструкции четный (w=0), если размер операнда — слово/двойное слово/учетверенное слово — опкод нечетный (w=1).СТРОКОВЫЕ КОМАНДЫ (часть 2/2) Кодировка строковых команд
000 — mov al/ax/eax,memory offset type byte/word/double word 001 — mov memory offset,al/ax/eax 100 — test al/ax/eax,imm Префиксы повторения REP/REPE/REPZ/REPNE/REPNZ Синтаксис префиксов:(Повторить цепочечную операцию = "REPEAT string operation") REP REPE /REPZ REPNE /REPNZ Семантика команды: указание условного и безусловного повторения следующей за данной командой цепочечной операции. Алгоритм работы: алгоритм работы зависит от конкретного префикса. Префиксы REP, REPE и REPZ на самом деле имеют одинаковый код операции, их действия зависят от той цепочечной команды, которую они предваряют: REP используется перед любыми цепочечными командами (MOVS, STOS, INS, OUTS). Действия REP:
Действия REPNE и REPNZ:
Если префиксы REP/REPE/REPZ и REPNE/REPNZ используется не со строковыми инструкциями они игнорируются. Поиск конца строки lpStr или определение длины строки
Машинная кодировка префиксов повторения: 0F2h — repne/repnz 0F3h — rep/repe/repz
Команды загрузки адресных пар в регистры Использование строковых команд и префиксов повторения позволяет существенно ускорить обработку строк, однако перед этими командами приходится выписывать достаточно много установочных команд (установить флаг направления CLD/STD (под Win32 при старте программы DF всегда равен нулю), записать в регистр CX/ECX/RCX число повторений и т.д.). В определенной мере сократить число таких команд позволяют две команды LDS и LES, которые загружают в регистры адресные пары (указатели) и с помощью которых можно установить пары регистров DS:SI/ESI и ES: DI/EDI на обрабатываемые строки (под Win32 содержимое регистра DS равно содержимому ES). Команды LDS/LES/LFS/LGS/LSS (Загрузка указателя с сегментным регистром DS/ES/FS/GS/SS из памяти = “Load far pointer from memory”) Синтаксис команд: LDS <операнд1>,<операнд2> LES <операнд1>,<операнд2> LFS <операнд1>,<операнд2> LGS <операнд1>,<операнд2> LSS <операнд1>,<операнд2> Семантика команды: получение полного указателя в виде сегментной составляющей и смещения. Алгоритм работы: алгоритм работы команды зависит от действующего режима адресации (use16 или use32):
Примечание: иногда требуется загрузить сегментный регистр CS (совершение скрытого jmp, переключение из real mode в protected mode и т. д.). Хотя команды LCS не существует — можно выйти из положения, поместив необходимое значение в стек, а затем вызвать команды retf или iret. Микропроцессор i8086 имел недокументированную команду pop cs (опкод 0Fh), но при очередном расширении количества команд 0Fh стали использовать как ID группы команд. Контрольные вопросы и упражнения
2
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|
|
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины".
За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html
Задача: . . .
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|