DEPARTAMENTO DE ELECTRONICA
Microprocesadores
1121060
Tema 4
Conjunto de Instrucciones.
Microprocesadores 1121060
Instrucciones de Transferencia de datos
Tema 4.
Conjunto de Instrucciones.
1. Lenguaje Ensamblador
2.
3. Operaciones Aritmético Lógicas
4.
5.
6.
7. Ensamblado de Instrucciones
Instrucciones de Salto
Instrucciones de Manejo de Pila
Interrupciones
Tema 4. Conjunto de Instrucciones
Instrucción de Transferencia MOV
Mnemónico
Código Objeto
Mnemónico
MOV dest,fuente
8B C3
8A E3
MOV AX,BX
MOV AH,BL
Operación simbólica
Segmento de
memoria
Dentro del CPU AXBX
Dentro del CPU AHBL
A1 00 10
MOV AX,MEMWDS Datos
A0 02 10
89 1E 00 10
MOV AL,MEMBDS
Datos
MOV MEMWDS,BX Datos
88 1E 02 10
Datos
C7 06 00 10 34 12 MOV MEMWDS,1234H Datos
MOV MEMBDS,BL
C6 06 02 10 34
B0 10
B8 00 10
8E D8
8C C2
MOV AL,10H
AL[1000H],
AH[1001H]
AL[1002H]
[1000H]BL,
[1001H]BH
[1002H]BL
[1000H]34H,
[1001H]12H
[1002H]34H
AL10H
Al00H, AH10H
MOV MEMBDE,34H Datos
Código
Código
Dentro del CPU DSAX
Dentro del CPU DXES
MOV DS,AX
MOV DX,ES
MOV AX,1000H
8E 06 00 10
MOV ES,MEMWDS
8C 0E 00 10
MOV MEMWDS,CS
Datos
Datos
ES[1001H:1000H]
[1001H:1000H]CS
Tema 4. Conjunto de Instrucciones
Instrucciones de Transferencia
Mnemónico
XCHG dest,fuente
LAHF
SAHF
IN acumulador,puerto
OUT puerto,acumulador
Código
Objeto
Mnemónico
93
86 C7
87 14
9F
9E
E4 26
E5 26
EC
ED
E6 26
E7 26
EE
EF
XCHG AX,BX
XCHG AL,BH
XCHG [SI],DX
LAHF
SAHF
IN AL,26H
IN AX,26H
IN AL,DX
IN AX,DX
OUT 26H,AL
OUT 26H,AX
OUT DX,AL
OUT DX,AX
LEA dest,fuentec
8D 1E 00 10
LEA BX,MEMBDS
LDS dest,fuented
LES dest,fuented
C5 1C
C4 1C
LDS BX,DWORD PTR[SI]
LES BX,DWORD PTR[SI]
Segmento de
memoria
Dentro del CPU
Dentro del CPU
Datos
Operación simbólica
AX ⇄ BX
AL ⇄ BH
[SI] ⇄ DL; [SI+1] ⇄ DH
Dentro del CPU
AH Banderas
Dentro del CPU
Banderas AH
b
b
b
b
b
b
b
b
Datos
Datos
Datos
AL puerto 26H
ALpuerto 26H, AHpuerto 27H
ALpuerto DX
AL puerto DX; AHpuerto DX+1
puerto 26HAL
puerto 26HAL; puerto 27HAH
puerto DXAL
puerto DXAL; puerto DX+1 AH
BL00; BH 10H
BL [SI]; BH[SI+1];
DS[SI+3:SI+2]
BL [SI]; BH[SI+1];
ES[SI+3:SI+2]
XLAT
D7
XLAT
Datos
AL[BX+AL];
Tema 4. Conjunto de Instrucciones
Instrucciones de Cadena (String)
Mnemónico
Código Objeto Mnemónico
Segmento
Operación simbólica
STOSB
STOSW
LODSB
LODSW
MOVSB
MOVSW
AA
AB
AC
AD
A4
A5
STOSB
Extra
STOSW
Extra
LODSB
Datos
LODSW
Datos
MOVSB
Datos, Extra
ES:[DI]AL
Si DF=0, DIDI+1
Si DF=1, DIDI-1
ES:[DI] AL; ES:[DI+1] AH
Si DF=0, DIDI+2
Si DF=1, DIDI-2
AL DS:[SI]
Si DF=0,SISI+1
Si DF=1, SISI-1
ALDS:[SI]; AHDS:[SI+1]
Si DF=0, SISI+2
Si DF=1, SISI-2
ES:[DI] DS:[SI]
Si DF=0,DIDI+1, SISI+1
Si DF=1, DIDI-1, SISI-1
MOVSW
Datos, Extra
ES:[DI+1 :DI] DS:[SI+1: SI]
Si DF=0,DIDI+2, SISI+2 Si DF=1,
DIDI-2, SISI-2
Tema 4. Conjunto de Instrucciones
Instrucciones de Cadena (String)
Mnemónico Código Objeto Mnemónico
Segmento
Operación simbólica
SCASB
AE
SCASB
Extra
SCASW
AF
SCASW
Extra
CMPSB
A6
CMPSB
Extra, Datos
CMPSW
A7
CMPSW
Extra, Datos
AL – ES:[DI]; actualiza banderas
Si DF=0, DI DI + 1
Si DF=1, DI DI - 1
AX – ES:[DI+1:DI]; actualiza banderas
Si DF=0, DI DI + 2
Si DF=1, DI DI - 2
DS:[SI] - ES:[DI]; actualiza banderas
Si DF=0 DIDI+1, SISI+1
Si DF=1 DIDI-1, SISI-1
DS:[SI+1:SI] - ES:[DI+1:DI]; actualiza banderas
Si DF=0 DIDI+2, SISI+2
Si DF=1 DIDI-2, SISI-2
Prefijo
REP
REP
F3 AA
F3 AB
F3 A4
F3 A5
REP STOSB
REP STOSW
REP MOVSB
REP MOVSW
Extra
Extra
Extra, datos
Extra, datos
STOSB; CX CX – 1 Repite hasta que CX=0
STOSW; CX CX – 1 Repite hasta que CX=0
MOVSB; CX CX – 1Repite hasta que CX=0
MOVSW; CXCX-1Repite hasta que CX=0
Tema 4. Conjunto de Instrucciones
Instrucciones de Cadena (String)
Mnemónico
REP
REPE/REPZ
Código
Objeto
F3 AA
F3 AB
F3 A4
F3 A5
F3 AE
F3 AF
F3 A6
F3 A7
Mnemónico
Segmento
Operación simbólica
REP STOSB
REP STOSW
REP MOVSB
REP MOVSW
Extra
Extra
Extra, datos
Extra, datos
STOSB; CX CX – 1 Repite hasta que CX=0
STOSW; CX CX – 1 Repite hasta que CX=0
MOVSB; CX CX – 1Repite hasta que CX=0
MOVSW; CXCX-1Repite hasta que CX=0
REPZ SCASB
REPZ SCASW
Extra
Extra
SCASB; CX CX – 1 Repite si ZF = 1 y CX ≠ 0
Similar a la anterior excepto SCASW
REPZ CMPSB
Extra, datos
Similar a la anterior excepto CMPSB
REPZ CMPSW
Extra, datos
Similar a la anterior excepto CMPSW
REPNE/REPNZ
F2 AE
REPNE SCASB
REPNE SCASW
Extra
Extra
SCASB; CX CX – 1 Repite si ZF = 0 y CX ≠ 0
Similar a la anterior excepto SCASW
F2 AF
F2 A6
F2 A7
REPNE CMPSB
Extra, datos
Similar a la anterior excepto CMPSB
REPNE CMPSW
Extra, datos
Similar a la anterior excepto CMPSW
Tema 4. Conjunto de Instrucciones
Instrucciones de Rotación y Corrimiento
Ashl A, A1
Ashr A, (S)A(S)e
0
Mnemónico
Código Objeto Mnemónico
SAL AX,1
SAL AX,CL
SAR AL,1
SAR AL,CL
SHR WORD PTR[SI],1
SHR BYTE PTR[SI],CL
Datos
Datos
RCL BX,1
RCL BX,CL
RCR BL,1
RCR BL,CL
ROL WORD PTR[SI],1
ROL BYTE PTR[SI],CL
Segmento de
memoria
Dentro del CPU
Dentro del CPU
Dentro del CPU
Dentro del CPU
Dentro del CPU
Dentro del CPU
Dentro del CPU
Dentro del CPU
Datos
Datos
Datos
Datos
Operación simbólica
C
0
0
C
C
C
C
C
C
SAL/SHLb dest,contador
SAR dest, contador
SHR dest, contador
RCL dest, contador
RCR dest, contador
ROL dest, contador
D1 E0
D3 E0
D0 F8
D2 F8
D1 2C
D2 2C
D1 D3
D3 D3
D0 DB
D2 DB
D1 04
D2 04
ROR dest, contador
D1 0E 00 10
D2 0E 04 10
ROR MEMWDS,1
ROR MEMBDS,CL
Tema 4. Conjunto de Instrucciones
Instrucciones Lógicas
Mnemónico
BX[SI]
NOT dest
AND dest, fuente
OR dest, fuente
XOR dest, fuente
TEST dest, fuente
Código
Objeto
F7 D3
F6 14
23 CA
22 3C
25 00 80
0B CA
0A 3C
0D 00 80
33 CA
32 3C
35 00 80
85 D1
84 3C
A9 00 80
Mnemónicoa
Segmento de
memoria
Operación simbólica
NOT BX
NOT BYTE PTR[SI]
Dentro del CPU
Datos
BXBX’
[SI] [SI]’
AND CX, DX
AND BH,BYTE PTR [SI]
AND AX, 8000H
OR CX,DX
OR BH, BYTE PTR[SI]
OR AX,8000H
XOR CX,DX
XOR BH, BYTE PTR[SI]
XOR AX,8000H
Dentro del CPU
Datos
Código
Dentro del CPU
Datos
Código
Dentro del CPU
Datos
Código
CX CX ^ DX
BH BH ^ [SI]
AX AX ^ 8000H
CX CX + DX
BH BH + [SI]
AX AX + 8000H
CX CX DX
BH BH [SI]
AX AX 8000H
TEST CX,DX
TEST BH, BYTE PTR[SI]
TEST AX,8000H
Dentro del CPU
Datos
Código
CX ^ DX; actualiza banderas
BH ^ [SI]; actualiza banderas
AX ^ 8000H; actualiza banderas
Tema 4. Conjunto de Instrucciones
Instrucciones Aritméticas
Mnemónico
Código Objeto
Mnemónicoa
Segmento de
Operación simbólica
memoria
ADD dest, fuente
03 F2
00 2F
81 C7 00 80
81 06 00 10 00 80
ADD SI, DX
ADD BYTE PTR[BX],CH
ADD DI,8000H
ADD MEMWDS,8000Ha
Dentro del CPU
Datos
Dentro del CPU
Datos
SI SI + DX
[BX][BX] + CH
DI DI + 8000H
[1001H:1000H] [1001H:1000H]+8000H
ADC dest, fuente
13 F2
10 2F
81 D7 00 80
81 16 00 10 00 80
ADC SI, DX
ADC BYTE PTR [BX],CH
ADC DI, 8000H
ADC MEMWDS,8000Ha
Dentro del CPU
Datos
Dentro del CPU
Datos
SI SI + DX + CF
[BX][BX]+CH + CF
DI DI + 8000H + CF
[1001H:1000H] [1001H:1000H]+8000H+CF
SUB dest, fuente
2B F2
28 2F
81 EF 00 80
81 2E 00 10 00 80
SUB SI, DX
SUB BYTE PTR[BX],CH
SUB DI,8000H
SUB MEMWDS,8000Ha
Dentro del CPU
Datos
Dentro del CPU
Datos
SI SI - DX
[BX][BX] - CH
DI DI - 8000H
[1001H:1000H] [1001H:1000H]-8000H
SBB dest, fuente
1B F2
18 2F
81 DF 00 80
81 1E 00 10 00 80
SBB SI, DX
SBB BYTE PTR [BX],CH
SBB DI, 8000H
SBB MEMWDS,8000H
Dentro del CPU
Datos
Dentro del CPU
Datos
SI SI - DX - CF
[BX][BX]- CH - CF
DI DI - 8000H - CF
[1001H:1000H] [1001H:1000H]-8000H-CF
Tema 4. Conjunto de Instrucciones
Instrucciones Aritméticas
Mnemónico
Código Objeto Mnemónicoa
Ejemplo codificado
INC destb
DEC destb
NEG destb
CMP dest,
fuente
FE C3
FF 05
FE 06 04 10
FE CB
FF 0D
FE 0E 04 10
F6 DB
F7 1D
F6 1E 04 10
3A C4
39 0D
81 3E 00 10 00
80
81 FF 00 80
INC BL
INC WORD PTR[DI]
INC MEMBDSc
DEC BL
DEC WORD PTR[DI]
DEC MEMBDSc
NEG BL
NEG WORD PTR[DI]
NEG MEMBDSc
CMP AL,AH
CMP [DI],CX
CMP MEMWDS,800Ha
CMP DI,8000H
Segmento de
memoria
Dentro del CPU
Datos
Datos
Dentro del CPU
Datos
Datos
Dentro del CPU
Datos
Datos
Dentro del CPU
Datos
Datos
Dentro del CPU
Operación simbólica
BLBL+1
[DI+1:DI][DI+1:DI]+1
[1004H] [1004H]+1
BLBL-1
[DI+1:DI][DI+1:DI]-1
[1004H] [1004H]-1
BL0 - BL
[DI+1:DI] 0 - [DI+1:DI]
[1004H] 0 - [1004H]
AL – AH; actualiza banderas
[DI+1:DI]-CX; actualiza banderas
[1001H:1000H]-8000H;actualiza
banderas
DI-8000H;actualiza banderas
Tema 4. Conjunto de Instrucciones
Instrucciones Aritméticas
Mnemónico
Código
Objeto
Mnemónico
Segmento de
Operación simbólica
memoria
MUL fuente
F6 E3
F7 E1
F6 27
F7 26 00 10
MUL BL
MUL CX
MUL BYTE PTR[BX]
MUL MEMWDS
Dentro del CPU
Dentro del CPU
Datos
Datos
AX AL * BL
DX:AXAX * CX
AX AL * [BX]
DX:AXAX* [1001H:1000H]
IMUL fuente
F6 EB
F7 E9
F6 2F
F7 2E 00 10
IMUL BL
IMUL CX
IMUL BYTE PTR[BX]
IMUL MEMWDS
Dentro del CPU
Dentro del CPU
Datos
Datos
AX AL * BL (con signo)
DX:AXAX * CX (con signo)
AX AL * [BX] (con signo)
DX:AXAX* [1001H:1000H] (con signo)
DIV
IDIV
F6 F3
F7 F1
F6 37
F7 36 00 10
DIV BL
DIV CX
DIV BYTE PTR[BX]
DIV MEMWDS
Dentro del CPU
Dentro del CPU
Datos
Datos
AX AX / BL
DX:AXDXAX / CX
AX AX / [BX]
DX:AXDXAX / [1001H:1000H]
F6 FB
F7 F9
F6 3F
F7 3E 00 10
IDIV BL
IDIV CX
IDIV BYTE PTR[BX]
IDIV MEMWDS
Dentro del CPU
Dentro del CPU
Datos
Datos
AX AX / BL (con signo)
DX:AXDXAX / CX (con signo)
AX AX / [BX] (con signo)
DX:AXDXAX /[1001H:1000H] (con signo)
Tema 4. Conjunto de Instrucciones
Instrucciones de Ajuste
Mnemónico
Código
Objeto
Mnemó-
nico
Segmento de memoria
Operación simbólica
DAA
27
DAA
Dentro del CPU
DAS
2F
DAS
Dentro del CPU
AAA
37
AAA
Dentro del CPU
AAS
3F
AAS
Dentro del CPU
Si AL 0F > 9 o AF = 1, entonces
ALAL+ 6; AF 1
Si AL > 9F o
Comentarios de: Tema 4 Conjunto de Instrucciones - Microprocesadores (0)
No hay comentarios