L L e e n n g g u u a a j j e e E E n n s s a a m m b b l l a a d d o o r r
M M ..D D ..O O ..H H ..S S o o n n i i a a A A l l v v a a r r a a d d o o M M a a r r e e s s
79
MOV hacia un registro de segmento, las interrupciones quedan inhibidas hasta
después
de ejecutarse la siguiente instrucción (8086/88 de 1983 y procesadores posteriores).Ejemplos:
MOV DS, AX MOV BX, ES:[SI] MOV SI,OFFSET DATO
En el último ejemplo, no se coloca en SI el valor de la variable
dato
sino su dirección dememoria o desplazamiento respecto al segmento de datos. En otras palabras, SI es unpuntero a
DATO
pero no es
DATO
. En el próximo capítulo se verá cómo se declaran lasvariables.
XCHG (intercambiar)
.
Sintaxis:
XCHG destino, origen
Indicadores:
OF DF IF TF SF ZF AF PF CF- - - - - - - - -Una instrucción útil pero no imprescindible es
XCHG
.Intercambia el contenido de losoperandos origen y destino. No pueden utilizarse registros de segmentos comooperandos.Por ejemplo, si queremos intercambiar los contenidos de los registros AX y BX, podemoshacer:
MOV AUX, AX MOV AX, BX MOV BX, AUX
en donde
AUX
es una variable auxiliar que hace de puente, o simplemente utilizar:
XCHG AX, BX
Otro
ejemplo:
XCHG BL, CH XCHG MEM_PAL, BX
Las restricciones que presenta esta operación es que no se pueden efectuar intercambiosdirectamente entre posiciones de memoria ni tampoco entre registros de segmento.
XLAT (traducción)
.
Sintaxis: XLAT tablaIndicadores: OF DF IF TF SF ZF AF PF CF- - - - - - - - -