Está en la página 1de 18

DIRECCIONAMIENTO:

DIRECTO:
MOV AX,BX
MOV AH,CL

INDIRECTO :
MOV AX,[500] ; DEFECTO:DATOS
INDIRECTO POR REGISTRO BASE:
MOV AX,[BX] ; DATOS
MOV AX,[BP] ;PILA

MOV REGISTRO,[DESPLAZAMIENTO]
Puede mover 1 byte, 2 bytes o
cuatro byte.
MOV EAX,[EBX]
Registros extendidos: 4bytes

DIRECCIONAMIENTO INDIRECTO
BASE + INDICE:
MOV DH,[BX+DI]
Segmento:datos desplaza= BX+DI;
(MOV BX,40) solo para la base
(MOV DI,0) para los siguientes
(MOV DI,1) posiciones
(ADD DI,1) (INC DI) aumentan 1
MOV DH,[BP+SI]
MOV DH,[BX+SI]
MOV [BX+DI],BL

MOV [BX],[BP] NO VALIDA

DIRECCIONAMIENTO INDEXADO:
Hace uso de una etiqueta.
Etiqueta equivale a un
desplazamiento. NUEVO=03F0
Direccionamiento=NUEVO+DI
MOV AL,NUEVO[DI]
El valor de la etiqueta no es asignada
por el programador.
Registros BX,DI y SI. (exclusivo del
segmento de datos).
Direccionamiento indexado por
registro base.
Direccionamiento indexado por
registro índice.
Direccionamiento indexado por
registro base+indice.
INSTRUCCIONES X86.
ARITMETICAS:
ADD AX,BX ; AX=AX+BX
ADD BL,DH ; BL = BL+DH
SUB AX,BX ; AX=AX-BX

MUL BL ; AX=AL*BL
El registro acumulador siempre es
AX.
MUL AL; AX=AL*AL
MUL BX; DX AX = AX*BX
BX=DC00 AX=1A35 16858C00
DX AX= 16858C00
AX=8C00 Y DX=1685
Multiplicación de 32 bits. (DX AX)

DIV CL ; AL = AX/CL
DIV CX ; AX = DX AX / CX

NEG AX; complemento a 2


Ejemplito:
SUB AX,BX
NEG AX
LOGICAS:
AND AX,BX
OR CL,DH
XOR CL,AL
NAND AX,CX
NOT AX

AX=5FFA BX=D5A7
AND AX,BX; AX=……….. 55A2
AX= 0101 1111 1111 1010
BX= 1101 0101 1010 0111
(resultado)=0101 0101 1010 0010
INSTRUCCIONES DE BIFURCACION
 Inician con una instrucción de
comparación:
CMP AX,CX
JE SALTO
SALTO es una etiqueta
JE es jump equal
Cambiar el valor de IP=salto si es
que es igual AX con CX
EJEMPLO:
CS:0230 MOV AX,BX
CS:0232 ……
…….CODIGO modifica valor de cx
CS:0245 MOV AX,[BX+DI]
CS:0248 CMP AX,CX
CS:024A JNE 0230 ; SALTA SI AX<>CX
CS:024C ; SIGUE SI ES QUE AX=CX
JA : MAYOR
JB : MENOR
JAE : MAYOR IGUAL
JNAE : NO ES MAYOR NI IGUAL
JBE : MENOR IGUAL

 cuando existe una instrucción aritmético o


lógica previa
Ejemplito:
AND AX,BX
JZ salto ; saltar si fue cero.
; saltar si fue igual
Ejemplito equivalente:
AND AX,BX
CMP AX,0
JE salto ; (JZ salto)

JNZ : SALTAR SINO ES IGUAL


SALTARSI ES DIFERENTEDE CERO

 bifurcation unconditional
JMP salto ; siempre salta a salto
INSTRUCCIONES DE DESPLAZAMIENTO Y
ROTACION
AX=FA7B
MOV CL,03
SHR AX,CL ; shift right ; siempre en cl
AX= 1 1 1 1 1 0 1 0 0 1 1 1 1 0 1 1
———→ 3BITS
AX= 0 0 0 1 1 1 1 1 0 1 0 0 1 1 1 1
AX=1F4F

SHL Y SHR (IZQUIERDA Y DERECHA)


ROL Y ROR ( IZQ Y DER … ROTACION )
AX=FA7B
MOV CL,03
ROR AX,CL ; rotar right ; siempre en cl
AX= 1 1 1 1 1 0 1 0 0 1 1 1 1 0 1 1
———→ 3BITS
AX= 0 1 1 1 1 1 1 1 0 1 0 0 1 1 1 1
AX=7F4F

INSTRUCCION DE BUCLE

MOV CX,05
Salto: MOV AX,[BX]
Push cx
…..
…..
Pop cx
LOOP salto ; cx=cx-1
Compara cx=0
Si no es igual bifurca a salto

También podría gustarte