MANEJO DE CADENAS Equipo 7 Villanueva Martínez Yesenia Nallely Olvera Hernández Maribel Acevedo...

Post on 07-Mar-2015

7 views 2 download

Transcript of MANEJO DE CADENAS Equipo 7 Villanueva Martínez Yesenia Nallely Olvera Hernández Maribel Acevedo...

MANEJO DE CADENASMANEJO DE CADENAS

Equipo 7Equipo 7

Villanueva Martínez Yesenia NallelyVillanueva Martínez Yesenia NallelyOlvera Hernández MaribelOlvera Hernández Maribel

Acevedo Chávez José ErnestoAcevedo Chávez José ErnestoÁvila Puente Tomas EduardoÁvila Puente Tomas Eduardo

Ortiz Alvarado Francisco JavierOrtiz Alvarado Francisco JavierRomero Álvarez AntonioRomero Á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

STOSSTOS: 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

SCASSCAS: 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 SCASOperació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

MOVSMOVe 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 MOVSREP 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 origenES:DI: Indice para la cadena origenCX: 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