Андрей Газибаров


без тайни

Инструкциите On-line

Низови инструкции
Низовите инструкции използват компактно кодиране, неявни операнди и извършват множество действия. Като неявни операнди се използват следните регистри и регистрови двойки:
  • AL, AX, EAX, RAX (акумулатор): получател (LODS), източник (STOS, SCAS);
  • CX, ECX, RCX – брояч на итерации (ако се използват префиксите REP);
  • DX – В/И адрес (INS, OUTS);
  • SI, ESI, RSI – адрес на източника. Комбинира се с DS, който може да се промени чрез префикс (LODS, OUTS, MOVS, CMPS);
  • DI, EDI, RDI – адрес на получателя. Комбинира се винаги с ES, който не може да промени (STOS, INS, MOVS, CMPS, SCAS).
Всички низови инструкции използват автоинкрементно адресиране: след извършване на операцията използваните индексни регистри (eSI и/или eDI) се променят в зависимост от размера на операнда и в посока, определена от флага DF:
  • Ако DF = 0, индексните регистри се преместват напред;
  • Ако DF = 1, индексните регистри се преместват назад.
Тъй като операндите на инструкциите не се кодират, те може да не се указват, а размерът на операнда да се укаже чрез един от следните суфикси на инструкцията:
  • B – байт (LODSB вместо LODS ByteVar);
  • W – дума (LODSW вместо LODS WordVar);
  • D – двойна дума (LODSD вместо LODS DWordVar);
  • Q – четворна дума (LODSQ вместо LODS QWordVar).
По-нататък се дават само тези форми.
Низовите инструкции могат да имат префикс REP. Тогава инструкцията се изпълнява няколко пъти, като скоростта на изпълнението е по-висока, отколкото ако това бяха отделни инструкции. За разлика от инструкция LOOP, влизането в тези итерации с eCX = 0 е еквивалентно на NOP.
Препоръчва се използването на низови инструкции само с префикс REP или когато е от значение размерът на кода. Единични низови инструкции заемат повече време, отколкото емулацията им с прости (например в I80486 LODSB е 4 такта, а еквивалентната двойка MOV AL,[SI]/INC SI – само 2). Трябва да се има впредвид обаче, че LODSB е един байт, а еквивалентната двойка – три).
Всички средства на защитата остават в сила.
 
Съдържание Пълен текст
 
  PDF, 3.6M Приложение, 18К