Está en la página 1de 14

MANEJO DE CADENAS

Equipo 7

Villanueva Martínez Yesenia Nallely


Olvera Hernández Maribel
Acevedo Chávez José Ernesto
Ávila Puente Tomas Eduardo
Ortiz Alvarado Francisco Javier
Romero Álvarez Antonio
Operaciones para Cadenas: LODS, STOS, MOVS,
CMPS, SCAS, INS, OUTS

Operación Auxiliar: CLD (Auto-incrementa SI y/o DI),


STD (Auto-decrementa SI y/o DI)

; INICIALIZACION CLD ; AUTO-INCREMENTO MOV


SI, STR ; INICIO-CADENA LODSB ; OPERACION:
AL=MEM[SI++]
LODS
LODS: LOaD String. Lee un caracter a la vez en el
acumulador

Registros Implicados: Registros que debe inicializar antes de


usar la instrucción

Bit-D: Auto-decremento (STD) o auto-incremento (CLD) de


SI

AL/AX/EAX: Dato consultado. LODSB usa AL, LODSW usa


AX, LODSW usa EAX

DS:SI: Apunta al elemento actual de la cadena consultada


Tabla 1. Variantes de LODSB

Operación Equivalente
LODSB MOV AL, DS:[SI]
INC SI
LODSW MOV AX, DS:[SI]
ADD SI,2
STOS
STOS: STOre String. Graba un caracter de una cadena a la
vez

Registros Implicados: Registros que debe inicializar antes


de usar la instrucción

Bit-D: Auto-decremento (STD) o auto-incremento (CLD)


de DI

AL/AX/EAX: Dato consultado. STOSB usa AL, STOSW


usa AX, STOSW usa EAX

ES:DI: Apunta al elemento actual del bloque de memoria


a grabar
Tabla 2. Variantes de STOSB

Operación Equivalente
STOSB MOV ES:[DI], AL
INC DI
STOSW MOV ES:[DI], AX
ADD DI,2
SCAS
SCAS: SCAn String. Busca valor del acumulador en una
cadena

Registros Implicados: Registros que debe inicializar


antes de usar la instrucción

Bit-D: Auto-decremento (STD) o auto-incremento


(CLD) de DI

AL/AX/EAX: Dato a comparar. SCASB usa AL, SCASW


usa AX, SCASW usa EAX

ES:DI: Indice para la cadena donde se buscará el dato


Tabla 3. Variantes de SCAS
Operación Equivalente
SCASB CMP AL, ES:[DI]
INC DI
SCASW CMP AX, ES:[DI]
ADD DI,2
REP SCAS
REP SCAS: REPite búsqueda de un dato mientras sea
diferente (REPNE) o igual (REPE) en una cadena.
Termina búsqueda si el dato es igual (REPNE),
diferente (REPE) o el contador CX es cero
Registros Implicados: Registros que debe inicializar
antes de usar la instrucción
Bit-D: Auto-decremento (STD) o auto-incremento
(CLD) de DI
AL/AX/EAX: Dato a comparar. SCASB usa AL,
SCASW usa AX, SCASW usa EAX
ES:DI: Indice para la cadena donde se buscará el dato
CX: Máximo no. comparaciones = Tamaño de la
cadena
Tabla 4. Variantes de REP SCAS
Operación Equivalente
REPE SCASB CYCLE: CMP AL, ES:[DI]
JE END
INC DI
LOOP CYCLE
REPNE SCASB CYCLE: CMP AL, ES:[DI]
JNE END
INC DI
LOOP CYCLE
MOVS
MOVe String. Transfiere una cadena de [SI] a [DI].
Nota: Existe MOVSB, MOVSW y MOVSD. Además,
no se modifica el registro AX

Registros Implicados: Registros que debe inicializar


antes de usar la instrucción

Bit-D: Auto-decremento (STD) o auto-incremento


(CLD) de SI/DI

DS:SI: Indice para la cadena origen

ES:DI: Indice para la cadena origen


Tabla 5. Variantes de MOVSB
Operación Equivalente
MOVSB MOV ES:[DI], DS:[SI]
INC SI
INC DI

MOVSW MOV ES:[DI], DS:[SI]


ADD SI,2
ADD DI,2
REP MOVS
REP MOVS: Copia una cadena en una sóla instrucción.
El número de caracteres a copiar se especifica en el
registro CX.
Registros Implicados: Registros que debe inicializar
antes de usar la instrucción
Bit-D: Auto-decremento (STD) o auto-incremento
(CLD) de SI/DI
DS:SI: Indice para la cadena origen
ES:DI: Indice para la cadena origen
CX: Tamaño de la cadena
Tabla 6. Variantes de MOVSB

Operación Equivalente

REP MOVSB CICLO: MOV ES:[DI], DS:[SI]


INC SI
INC DI
LOOP CICLO

También podría gustarte