PBN - 07 - 1 © Jaime Alberto Parra Plaza CLASE 7 CONJUNTO DE INSTRUCCIONES. TRANSFERENCIA.

27
PBN - 07 - 1 © Jaime Alberto Parra Plaza CLASE 7 CONJUNTO DE INSTRUCCIONES. TRANSFERENCIA

Transcript of PBN - 07 - 1 © Jaime Alberto Parra Plaza CLASE 7 CONJUNTO DE INSTRUCCIONES. TRANSFERENCIA.

Page 1: PBN - 07 - 1 © Jaime Alberto Parra Plaza CLASE 7 CONJUNTO DE INSTRUCCIONES. TRANSFERENCIA.

PBN - 07 - 1© Jaime Alberto Parra Plaza

CLASE 7

CONJUNTO DE INSTRUCCIONES. TRANSFERENCIA

Page 2: PBN - 07 - 1 © Jaime Alberto Parra Plaza CLASE 7 CONJUNTO DE INSTRUCCIONES. TRANSFERENCIA.

PBN - 07 - 2© Jaime Alberto Parra Plaza

El primer byte de una línea de instrucción se relaciona con el opcode de esa instrucción. El uP puede diferenciar entre 256 opcodes diferentes (256 = 28), así que el número máximo de instrucciones posibles es 256.

Page 3: PBN - 07 - 1 © Jaime Alberto Parra Plaza CLASE 7 CONJUNTO DE INSTRUCCIONES. TRANSFERENCIA.

PBN - 07 - 3© Jaime Alberto Parra Plaza

La instrucción completa puede tener entre 1 y 6 bytes. Aunque no es preciso conocer la codificación real de cada instrucción, los programadores experimentados sí procuran elegir aquéllas que tengan menos bytes, lo cual permite hacer programas más pequeños y mas rápidos.

Page 4: PBN - 07 - 1 © Jaime Alberto Parra Plaza CLASE 7 CONJUNTO DE INSTRUCCIONES. TRANSFERENCIA.

PBN - 07 - 4© Jaime Alberto Parra Plaza

Formato de una instrucción:

Mnemónico Operando(s)

Mnemónico: Palabra o abreviatura del idioma inglés que sugiere la labor de la instrucción.

Ej: ADD para suma

JMP para salto

NOP para no-operación

Operandos: Pueden ser 0, 1 ó 2 según el tipo de instrucción.

Page 5: PBN - 07 - 1 © Jaime Alberto Parra Plaza CLASE 7 CONJUNTO DE INSTRUCCIONES. TRANSFERENCIA.

PBN - 07 - 5© Jaime Alberto Parra Plaza

NORMAS GENERALES SOBRE LOS OPERANDOS:

1) Pueden ser de 8 o 16 bits.

• Para un registro se sobreentiende por su nombre (AX es de 16 bits, DH es de 8)

• Para una posmem por la forma en que se declara (DB para byte, DW para word)

• Se puede forzar un cambio de tipo en una posmem precediéndola por el qualificador BYTE PTR -forzar tipo byte- o WORD PTR -forzar tipo word-

Page 6: PBN - 07 - 1 © Jaime Alberto Parra Plaza CLASE 7 CONJUNTO DE INSTRUCCIONES. TRANSFERENCIA.

PBN - 07 - 6© Jaime Alberto Parra Plaza

2) Si un operando es una posmen, pueden usarse todos los modos de direccionamiento existentes para referirse a ella:

• Directo

• Indirecto por registro

• Basado

• Indexado

• Basado-Indexado

Page 7: PBN - 07 - 1 © Jaime Alberto Parra Plaza CLASE 7 CONJUNTO DE INSTRUCCIONES. TRANSFERENCIA.

PBN - 07 - 7© Jaime Alberto Parra Plaza

3) Si un operando es una constante,

puede indicarse en cualquier formato:

binario, decimal, hexadecimal o ASCII.

Ejemplo: El número 65 puede darse como:

Formato Valor

Decimal 65

Binario 10000001B

Hexadecimal 41H

ASCII ‘A’

Page 8: PBN - 07 - 1 © Jaime Alberto Parra Plaza CLASE 7 CONJUNTO DE INSTRUCCIONES. TRANSFERENCIA.

PBN - 07 - 8© Jaime Alberto Parra Plaza

4) Si la instrucción es de 1 operando, éste no puede ser una constante.

La razón para esta limitante radica en que, en este tipo de instrucciones, el microprocesador asume que el otro operando está ubicado en algún sitio predefinido, de forma que debe combinarse con un registro o con una posmem, cuya dirección ya esté en la cola de instrucciones.

Page 9: PBN - 07 - 1 © Jaime Alberto Parra Plaza CLASE 7 CONJUNTO DE INSTRUCCIONES. TRANSFERENCIA.

PBN - 07 - 9© Jaime Alberto Parra Plaza

5) Si la instrucción es de 2 operandos, éstos deben ser del mismo tamaño, 8 bits o 16 bits (excepciones con punteros).

Las combinaciones permitidas son:

Operando 1 Operando 2

reg reg

reg posmen

reg cte

posmen reg

posmen cte

Page 10: PBN - 07 - 1 © Jaime Alberto Parra Plaza CLASE 7 CONJUNTO DE INSTRUCCIONES. TRANSFERENCIA.

PBN - 07 - 10© Jaime Alberto Parra Plaza

CLASIFICACIÓN DE LAS INSTRUCCIONES SEGÚN SU

FUNCIÓN:

1) De transferencia de datos

2) Aritméticas

3) De manipulación de bits

4) De cadena

5) De transferencia de control

6) De control del procesador

Page 11: PBN - 07 - 1 © Jaime Alberto Parra Plaza CLASE 7 CONJUNTO DE INSTRUCCIONES. TRANSFERENCIA.

PBN - 07 - 11© Jaime Alberto Parra Plaza

1. INSTRUCCIONES DE TRANSFERENCIA DE DATOS:

Permiten llevar y/o traer datos entre los registros internos del uP y la memoria externa o los puertos de entrada/salida.

Los subgrupos son:

a) De propósito general

b) De entrada/salida

c) De punteros

d) De transferencia de banderas

Page 12: PBN - 07 - 1 © Jaime Alberto Parra Plaza CLASE 7 CONJUNTO DE INSTRUCCIONES. TRANSFERENCIA.

PBN - 07 - 12© Jaime Alberto Parra Plaza

b. De entrada/salida

IN

OUT

a. De propósito general

MOV

PUSH

POP

XCHG

XLAT

Page 13: PBN - 07 - 1 © Jaime Alberto Parra Plaza CLASE 7 CONJUNTO DE INSTRUCCIONES. TRANSFERENCIA.

PBN - 07 - 13© Jaime Alberto Parra Plaza

c. De punteros

LEA

LDS

LES

d. De transferencia de banderas

LAHF

SAHF

PUSHF

POPF

Page 14: PBN - 07 - 1 © Jaime Alberto Parra Plaza CLASE 7 CONJUNTO DE INSTRUCCIONES. TRANSFERENCIA.

PBN - 07 - 14© Jaime Alberto Parra Plaza

Instrucción de copia (MOV):

Sintaxis:

MOV destino, origen

Propósito:

Copia el contenido de origen en destino.

Page 15: PBN - 07 - 1 © Jaime Alberto Parra Plaza CLASE 7 CONJUNTO DE INSTRUCCIONES. TRANSFERENCIA.

PBN - 07 - 15© Jaime Alberto Parra Plaza

Ejemplos:

MOV AL, BL ; copia reg en reg

MOV CX, var16 ; copia posmem en reg

MOV DH, 29 ; copia cte en reg

MOV var8, CL ; copia reg en posmem

MOV BYTE PRT var8, 5AH

; copia cte en posmem

MOV [SI], DI ; ¿qué tipo es?

Page 16: PBN - 07 - 1 © Jaime Alberto Parra Plaza CLASE 7 CONJUNTO DE INSTRUCCIONES. TRANSFERENCIA.

PBN - 07 - 16© Jaime Alberto Parra Plaza

Instrucción de apilamiento (PUSH):

Sintaxis:

PUSH origen

Propósito:

Copia el contenido de origen en el tope de la pila. Origen siempre es de 16 bits.

Ejemplos:

PUSHCX ; apilar reg

PUSHvar16 ; apilar posmem

PUSH259 ; ¡ERROR! ¿por qué?

Page 17: PBN - 07 - 1 © Jaime Alberto Parra Plaza CLASE 7 CONJUNTO DE INSTRUCCIONES. TRANSFERENCIA.

PBN - 07 - 17© Jaime Alberto Parra Plaza

Instrucción de desapilamiento (POP):

Sintaxis:

POP destino

Propósito:

Copia el contenido actual del tope de la pila en destino. Destino siempre es de 16 bits.

Ejemplos:

POP SI ; desapilar en SI

POP var16 ; desapilar en posmem

Page 18: PBN - 07 - 1 © Jaime Alberto Parra Plaza CLASE 7 CONJUNTO DE INSTRUCCIONES. TRANSFERENCIA.

PBN - 07 - 18© Jaime Alberto Parra Plaza

Instr. de carga de dirección efectiva (LEA):

Sintaxis:LEA destino, origen

Propósito:

Copia la dirección de origen en destino. Destino debe ser un registro de 16 bits, origen puede tener 8 o 16 bits.

Ejemplos: LEA CX, var8LEA DX, var16LEA AX, [SI]LEA DI, var8[BX][SI]

Page 19: PBN - 07 - 1 © Jaime Alberto Parra Plaza CLASE 7 CONJUNTO DE INSTRUCCIONES. TRANSFERENCIA.

PBN - 07 - 19© Jaime Alberto Parra Plaza

Es claro que no pueden mencionarse todas las instrucciones con el detalle dado a las órdenes anteriores. Para una referencia durante el curso, se listan a continuación todas las instrucciones, de las cuales sólo se mencionarán algunas. Las demás quedan para que el estudiante las investigue y aprenda su utilidad:

Page 20: PBN - 07 - 1 © Jaime Alberto Parra Plaza CLASE 7 CONJUNTO DE INSTRUCCIONES. TRANSFERENCIA.

PBN - 07 - 20© Jaime Alberto Parra Plaza

INSTRUCCIONES DE TRANSFERENCIA:

a. De propósito general:

MOV, PUSH, POP, XCHG, XLAT

b. De entrada/salida:

IN, OUT

c. De punteros:

LEA, LDS, LES

d. De transferencia de banderas:

LAHF, SAHF, PUSHF, POPF

Page 21: PBN - 07 - 1 © Jaime Alberto Parra Plaza CLASE 7 CONJUNTO DE INSTRUCCIONES. TRANSFERENCIA.

PBN - 07 - 21© Jaime Alberto Parra Plaza

INSTRUCCIONES ARITMÉTICAS:

a. Suma:

ADD, ADC, INC, AAA, DAA

b. Resta:

SUB, SBB, DEC, NEG, CMP, AAS, DAS

c. Multiplicación:

MUL, IMUL, AAM

d. División:

DIV, IDIV, AAD, CBW, CWD

Page 22: PBN - 07 - 1 © Jaime Alberto Parra Plaza CLASE 7 CONJUNTO DE INSTRUCCIONES. TRANSFERENCIA.

PBN - 07 - 22© Jaime Alberto Parra Plaza

INSTR. DE MANIPULACIÓN DE BITS:

a. Lógicas:

NOT, AND, OR, XOR, TEST

b. Desplazamiento:

SHL/SAL, SHR, SAR

c. Rotación:

ROL, ROR, RCL, RCR

La barra (/) indica que la instruccióntiene dos mnemónicos diferentes.

Page 23: PBN - 07 - 1 © Jaime Alberto Parra Plaza CLASE 7 CONJUNTO DE INSTRUCCIONES. TRANSFERENCIA.

PBN - 07 - 23© Jaime Alberto Parra Plaza

INSTRUCCIONES DE CADENA:

MOVS, CMPS, SCAS, LODS,

STOS, REP, REPE/REPZ,

REPNE/REPNZ

Page 24: PBN - 07 - 1 © Jaime Alberto Parra Plaza CLASE 7 CONJUNTO DE INSTRUCCIONES. TRANSFERENCIA.

PBN - 07 - 24© Jaime Alberto Parra Plaza

INSTR. DE TRANSF. DE CONTROL:

a. Transferencia condicional:

JA/JNBE, JAE/JNB, JB/JNAE,

JBE/JNA, JC, JE/JZ, JG/JNLE,

JGE/JNL, JL/JNGE, JLE/JNG,

JNC, JNE/JNZ, JNO, JNP/JPO,

JNS, JO, JP/JPE, JS

Page 25: PBN - 07 - 1 © Jaime Alberto Parra Plaza CLASE 7 CONJUNTO DE INSTRUCCIONES. TRANSFERENCIA.

PBN - 07 - 25© Jaime Alberto Parra Plaza

b. Transferencia incondicional:

CALL, RET, JMP

c. Control de iteración:

LOOP, LOOPE/LOOPZ,

LOOPNE/LOOPNZ, JCXZ

d. Interrupciones:

INT, INTO, IRET

Page 26: PBN - 07 - 1 © Jaime Alberto Parra Plaza CLASE 7 CONJUNTO DE INSTRUCCIONES. TRANSFERENCIA.

PBN - 07 - 26© Jaime Alberto Parra Plaza

INSTR. DE CTRL. DEL PROCESADOR:

a. Operaciones de banderas:

STC, CLC, CMC, STD, CLD, STI, CLI

b. Sincronización externa:

HLT, WAIT, ESC, LOCK

c. No operación:

NOP

Page 27: PBN - 07 - 1 © Jaime Alberto Parra Plaza CLASE 7 CONJUNTO DE INSTRUCCIONES. TRANSFERENCIA.

PBN - 07 - 27© Jaime Alberto Parra Plaza

< FIN DE LA CLASE 7 >