Documentos de Académico
Documentos de Profesional
Documentos de Cultura
(Part
Para Movimiento
de Datos, pila, banderas
A)
DESCRIPCION
FORMATO
OPERACION
BANDERAS
AFECTADAS
MOV
Transferencia
MOV D, S
DS
Ninguna
MOVSX
MOVSX D, S
DS
Ninguna
MOVZX
MOVZX D, S
DS
Ninguna
XCHG
Intercambio
XCHG D, S
DS
Ninguna
XLAT
Traduce
XLAT
AL (AL+BX)+DS*16
Ninguna
LEA
Carga R con EA
LEA R16,EA
LEA R32, EA
R16 EA
R32 EA
Ninguna
LDS
Carga R y DS
LDS R16, EA
LDS R32, EA
R16 (EA)
DS (EA+2)
R32 (EA)
DS (EA+4)
Ninguna
LSS
Carga R y SS
LSS R16, EA
LSS R32, EA
R16 (EA)
SS (EA+2)
R32 (EA)
SS (EA+4)
Ninguna
LES
Carga R y ES
LES R16, EA
LES R32, EA
Similar
Ninguna
MOVZX
Operandos en Memoria
.DATA
BYTE1
BYTE
9BH
WORD1
WORD
0A69BH
.CODE
MOVZX EAX, WORD1
MOVZX EDX, BYTE1
MOVZX CX, BYTE1
00000000
10001111
FUENTE
10001111
DESTINO
MOVSX
00000000
01101111
FUENTE
01101111
DESTINO
11111111
10001111
FUENTE
10001111
DESTINO
MOVIMIENTO DE DATOS:
ejemplos.
LEA AX, NUMERO
OPERANDOS PERMITIDOS:
-INMEDIATO (solo PUSH)
-REGISTRO
-REGISTRO DE SEGMENTO
-MEMORIA
NEMONICO
DESCRIPCION
FORMATO
OPERACION
BANDERAS
PUSH
Guarda en pila
PUSH S
(SP) S
SP SP - 2
Ninguna
POP
Lee Pila
POP D
D (SP)
SP SP + 2
Ninguna
PUSHF
Guarda Banderas
PUSHF
(SP) FLAGS
SP SP-2
Ninguna
POPF
Carga Banderas
FLAGS (SP)
SP SP+2
Ninguna
PUSHA
Guarda registros de
trabajo
Ninguna
POPA
Recupera registros
de trabajo
Ninguna
PUSHAD
Guarda registros
trabajo 32 bits
Ninguna
POPAD
Recupera registros
trabajo 32 bits
Ninguna
6
ZF
5
---
4
AF
3
---
2
PF
1
---
NEMONICO
DESCRIPCION
OPERACION
BANDERAS
AFECTADAS
LAHF
Carga AH con
banderas
AH FLAGS
Ninguna
SAHF
Carga banderas
con AH
FLAGS AH
CLC
Apaga CF
CF 0
CF
STC
Enciende CF
CF 1
CF
CMC
Complementa CF
CLI
Apaga IF
IF 0
IF
STI
Enciende IF
IF 1
IF
0
CF
CF
__
CF
CF
LAHF y SAHF
.data
FLAGS1
BYTE ?
.code
LAHF
MOV FLAGS1,AH
.
.
MOV AH,FLAGS1
SAHF
Banderas ZF y SF:
Ejemplos
MOV CX,1
SUB CX,1
MOV AX,0FFFFH
INC AX
INC AX
MOV CX,0
SUB CX, 1
ADD CX,2
;CX=0, ZF=1
;AX=0, ZF=1
;AX =1, ZF=0
;CX=-1, SF=1
;CX=1, SF=0
Bandera CF
Instrucciones Aritmticas
NEMONICO
DESCRIPCION
FORMATO
OPERACION
BANDERAS
AFECTADAS
ADD
Suma
ADD D, S
D D+S
CF Cy
ADC
ADC D, S
D D+S+CF
CF Cy
INC
Incremento
INC D
D D+1
DAA
Ajuste decimal
DAA
AAA
Ajuste ASCII
AAA
SUB
Resta
SUB D, S
D D-S
CF Bw
SBB
Resta con
prstamo
SBB D-S
D D-S-CF
CF Bw
DEC
Decremento
DEC D
D D-1
NEG
Complemento de
dos
NEG D
D0D
CF Cy
.data
var1
DWORD 10000H
var2
DWORD 20000H
.code
MOV EAX, VAR1
ADD EAX, VAR2 ;EAX=30000H
Las banderas CF, ZF, SF, OF, CA y PF
cambian en concordancia con el resultado
dejado en el operando destino.
data
var1
DWORD 30000H
var2
DWORD 10000H
.code
MOV
EAX, VAR1
SUB
EAX, VAR2
;EAX=20000H
Las banderas CF, ZF, SF, OF, CA y PF
cambian en concordancia con el resultado
dejado en el operando destino.
NEG reg/mem
.data
VAL1
SWORD 26
VAL2
SWORD 30
.code
MOV
EAX, VAL1
NEG
EAX
;EAX=-26
NEG
VAL2
;VAL2=-30
NEG invierte el signo de un nmero evaluando su
complemento de dos.
Las banderas CF, ZF, SF, OF, CA y PF cambian en
concordancia con el resultado dejado en el
operando destino.
Expresiones Aritmticas
Implementar la expresin
R=-X+(Y-Z)
.data
R SWORD ?
X SWORD 26
Y SWORD 30
Z SWORD 40
.code
MOV
EAX, X
NEG
EAX
MOV
EBX, Y
SUB
EBX, Z
ADD
EAX, EBX
MOV
R, EAX
;EAX=-26
;EBX=-10
;R=-36
Aritmtica BCD
DAA: ajuste decimal despus de
laMOV
suma
AL, 97H
; dos dgitos BCD
Aritmtica BCD
DAS: ajuste decimal despus de la
resta
MOV BL, 48H;dos dgitos BCD
MOV AL,85H ;dos dgitos BCD
SUB AL, BL ;AL=3DH
DAS
;AL=37H
DAS convierte el resultado binario AL de
SUB o SBB en formato decimal
empaquetado.
Aritmtica ASCII
AAA: Ajuste ASCII despus de
suma
MOV AH, 0
;ENCERAR AH
Aritmtica ASCII
AAS: Ajuste ASCII despus de
resta
MOV AH, 0
MOV AL, 8
SUB AL, 9
;AX=00FFH
AAS
;AX=FF09H
PUSHF ; guarda CY
OR AL,30H
;AX=FF39H
POPF
;recupera CY
Observe que el ajuste es necesario solamente cuando
la resta genera un resultado negativo.