abc Asembler - elektronski priručnik
XV dio Stringovi
String instrukcije
Svaka string instrukcija može zahtijevati izvorišni operand, odredišni operand ili oba. Za 32-bitne segmente, string instrukcije koriste ESI i EDI registre da pokažu na izvorišne i odredišne operande, respektivno.
Za 16-bitne segmente, međutim, SI i DI registri se koriste da pokažu na izvorište i odredište, respektivno.
Postoji 5 osnovnih instrukcija za procesiranje stringova. To su:
- MOVS – Ova instrukcija pomjera 1 Byte, Word ili Doubleword podataka iz jedne memorijske lokacije u drugu.
- LODS – Ova instrukcija puni iz memorije. Ako je operand od jednog bajta, on se puni u AL registar, ako je operand jedan word, on se puni u AX registar, a doubleword se puni u EAX registar.
- STOS – Ova instrukcija sprema podatke iz registra (AL, AX, ili EAX) u memoriju.
- CMPS – Ova instrukcija poredi 2 podatka u memoriji. Podaci mogu biti veličine byte, word ili doubleword.
- SCAS – Ova instrukcija poredi sadržaje registra (AL, AX ili EAX) sa sadržajem stavke u memoriji.
Svaka od gore navedenih instrukcija ima byte, word i doubleword verziju; a string instrukcije mogu biti ponavljane upotrebom repeticionog prefiksa.
Ove instrukcije koriste ES:DI i DS:SI par registara, gdje DI i SI registri sadrže validne offset adrese koje se odnose na bajtove spremljene u memoriji. SI je normalno povezan sa DS (data segment), a DI je uvijek povezan sa ES (extra segment).
DS:SI (ili ESI) i ES:DI (ili EDI) registri pokazuju na izvorišne i odredišne operande, respektivno. Za izvorišni operand se pretpostavlja da je u DS:SI (ili ESI), a odredišni operand u ES:DI (ili EDI) u memoriji.
Za 16-bitne adrese, koriste se SI i DI registri, a za 32-bitne adrese, koriste se ESI i EDI registri.
Sljedeća tabela daje različite verzije string instrukcija i pretpostavljeni prostor za operande.
Osnovna
Instrukcija |
Operandi u |
Byte
Operacija |
Word
Operacija |
Doubleword
Operacija |
MOVS |
ES:DI, DS:EI |
MOVSB |
MOVSW |
MOVSD |
LODS |
AX, DS:SI |
LODSB |
LODSW |
LODSD |
STOS |
ES:DI, AX |
STOSB |
STOSW |
STOSD |
CMPS |
DS:SI, ES:DI |
CMPSB |
CMPSW |
CMPSD |
SCAS |
ES:DI, AX |
SCASB |
SCASW |
SCASD |
Stringovi < Index > Repeticioni prefiksi
|
 |