Anda di halaman 1dari 14

MANEJO DEDE CADENAS

MANEJO

CADENAS

Equipo

Equipo 77

Villanueva Martínez

Villanueva

Martínez Yesenia

Yesenia Nallely

Nallely

Olvera Hernández

Olvera

Hernández Maribel

Maribel

Acevedo Chávez

Acevedo

Chávez José

José Ernesto

Ernesto

Ávila

Ávila Puente

Puente TTomas

omas Eduardo

Eduardo

Ortiz Alvarado

Ortiz

Alvarado Francisco

Francisco Javier

Javier

Romero Álvarez

Romero

Álvarez Antonio

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:

LOaD

acumulador

LODS un caracter

String. Lee

a

la

vez

en

el

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

LODSB

LODSW

Equivalente

MOV AL, DS:[SI]

INC SI

MOV AX, DS:[SI]

ADD SI,2

STOS: STOre String. cadena a la vez

STOS

Graba un

caracter de una

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

AL

STOSB

STOSW

Equivalente

MOV ES:[DI],

INC DI

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

(CLD) de DI

(STD)

o

auto-incremento

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

SCASB

SCASW

Equivalente

CMP AL, ES:[DI]

INC DI

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

REPE SCASB

[DI]

REPNE SCASB

[DI]

Equivalente

CYCLE: CMP AL, ES:

JE END

INC DI

LOOP CYCLE

CYCLE: CMP AL, ES:

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

MOVSB

MOVSW

Equivalente

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

INC SI

INC DI

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

REP MOVSB

[SI]

Equivalente

CICLO: MOV ES:[DI], DS:

INC SI

INC DI

LOOP CICLO