CX se usa principalmente como contador en los bucles. Estos son
tan frecuentes que existe una instrucción especial, LOOP, que
comprueba su valor, volviendo al principio del bucle si es
distinto de cero:
MOV CX,10
BUCLE:
instrucciones
LOOP BUCLE
DX es el único registro que puede usarse para acceder a puertos.
Por ejemplo, para escribir 62H en la dirección de puerto 1000H:
MOV AL,62H
MOV DX,1000H
OUT DX,AL
SI se usa como puntero. Su nombre proviene de Source Index, y se
usa principalmente con instrucciones de cadena:
CLD
MOV AX,0
MOV DS,AX
MOV SI,20
LODSB
carga en AX el valor de la posición 20 de memoria. SI se incrementa
en una unidad. En combinación con LOOP permite leer posiciones su-
cesivas de memoria.
DI tambien se usa como puntero. Permite escribir en posiciones
sucesivas de memoria cuando se usa con instrucciones de cadena:
CLD
MOV DX,0
MOV ES,DX
MOV DI,2048
STOSB
escribe el contenido de AL en 0000:2048. Mientras que DI usa a ES
como segmento, SI usa a DS.
BX, DI y SI actuan como punteros relativos a DS, o a ES en el caso
de DI cuando se usa con funciones de cadena. BP actua tambien co-
mo puntero, pero relativo al segmento de pila SS.
SP es entre los registros de uso general el mas específico, ya que
no se recomienda su uso, pues apunta al extremo superior de la pi-
la, y por ello no debe modificarse salvo que se sepa exactamente
que se está haciendo.
No hay comentarios:
Publicar un comentario