INSTRUCCIONES DE MANIPULACION DE CADENAS

INSTRUCCIONES DE MANIPULACION DE CADENAS

MOVSB
Copiar un byte de la cadena fuente al destino.
Operación:
1. ES:[DI] <- DS:[SI] (un byte)
2. DI <- DI±1
3. SI <- SI±1
MOVSW
Copiar dos bytes de la cadena fuente al destino.
Operación:
1. ES:[DI] <- DS:[SI] (dos bytes)
2. DI <- DI±2
3. SI <- SI±2
LODSB
Poner en el acumulador un byte de la cadena fuente.
Operación:
1. AL <- DS:[SI] (un byte)
2. SI <- SI±1
LODSW
Poner en el acumulador dos bytes de la cadena fuente.
Operación:
1. AX <- DS:[SI] (dos bytes)
2. SI <- SI±2
STOSB
Almacenar en la cadena destino un byte del acumulador.
Operación:
1. ES:[DI] <- AL (un byte)
2. DI <- DI±1
STOSW
Almacenar en la cadena destino dos bytes del acumulador.
Operación:
1. ES:[DI] <- AX (dos bytes)
2. DI <- DI±2
CMPSB
Comparar un byte de la cadena fuente con el destino.
Operación:
1. DS:[SI] - ES:[DI] (Un byte, afecta sólo los flags)
2. DI <- DI±1
3. SI <- SI±1
CMPSW
Comparar dos bytes de la cadena fuente con el destino.
Operación:
1. DS:[SI] - ES:[DI] (Dos bytes, afecta sólo los flags)
2. DI <- DI±2
3. SI <- SI±2
SCASB
Comparar un byte del acumulador con la cadena destino.
Operación:
1. AL - ES:[DI] (Un byte, afecta sólo los flags)
2. DI <- DI±1
SCASW
Comparar dos bytes del acumulador con la cadena destino.
Operación:
1. AX - ES:[DI] (Dos byte, afecta sólo los flags)
2. DI <- DI±2
En todos los casos el signo + se toma si el indicador DF vale cero. Si vale 1 hay que tomar el signo -.
Prefijo para las instrucciones MOVSB, MOVSW, LODSB, LODSW, STOSB y STOSW:
REP: Repetir la instrucción CX veces.
Prefijos para las instrucciones CMPSB, CMPSW, SCASB, SCASW:
REPZ/REPE: Repetir mientras que sean iguales hasta un máximo de CX veces.REPNZ/REPNE: Repetir mientras que sean diferentes hasta un máximo de CX veces.

No hay comentarios: