CLASE 7 CONJUNTO DE INSTRUCCIONES. TRANSFERENCIA

Slides:



Advertisements
Presentaciones similares
el 1, el 4 y el 9 tres cuadrados perfectos autosuficientes
Advertisements

Organización de la unidad central de procesamiento (CPU)
Instrucciones de operación sobre datos
Assembler Set de Instrucciones.
REGISTROS INTERNOS DEL PROCESADOR.
CLASE 15 MACROS Y PROCEDIMIENTOS
CLASE 4 EL ENSAMBLADOR.
CLASE 3 SOFTWARE DEL MICROPROCESADOR
CLASE 10 TALLER: INSTRUCCIONES ARITMÉTICAS
TEMA 2 Arquitectura de un Ordenador
MANEJO DE CADENAS Equipo 7 Villanueva Martínez Yesenia Nallely
Fermín Sánchez Carracedo Universitat Politècnica de Catalunya
INSTTUTO TECNOLOGICO DE APIZACO
No. Lista 31 Teresita Ramírez Uribe HORA: 8:00-9:00AM.
N.L 32 ROMERO HERNÁNDEZ GABRIELA VERÓNICA. HORA: 8:00-9:00AM ESQUELETO DE UN PROGRAMA EN ENSAMBLADOR.
Programación en ensamblador
Introducción al lenguaje ensamblador
Expresiones Racionales
Circuitos Digitales II
Comité Nacional de Información Bogotá, Julio 27 de 2011 Consejo Nacional de Operación de Gas Natural 1 ESTADISTICAS NACIONALES DE OFERTA Y DEMANDA DE GAS.
ARQUITECTURA INTEL Modos de direccionamiento
TC2015 Prof. Msc. Ivan Alejandro Escobar Broitman
Programación en Lenguaje Ensamblador.
Conceptos Básicos de Java
PROG. EN ENSAMBLADOR Ing. Pablo Cesar Tapia Catacora.
SEMANA 05_2.
Introducción al NASM The Netwide Assembler MIA J. Rafael Rojano C.
ESCUELA PROFESIONAL DE INGENIERIA INDUSTRIAL CURSO: GESTION DE LA CALIDAD ING.ELIZABETH FERG 1.

Lenguaje Ensamblador integrantes: Esthela Vianey Vázquez Medina No.30
ISA (Instruction Set Architecture)
MODOS DE DIRECCIONAMIENTO No. Lista 21 7am Rivas chacón Ana cristina
MODOS DE DIRECCIONAMIENTO
Introducción al lenguaje ensamblador
Tema 2: INTRUCCIONES Profesor: Carlos Concha S LENGUAJES DE BAJO NIVEL.
2.2 Registro de Banderas Conjunto de bits que nos dan información sobre el estado del procesador y sobre el resultado de la última operación efectuada.
MODOS DE DIRECCIONAMIENTO
Instrucciones de Pentium

Instrucciones Aritméticas Instrucciones Aritméticas Instrucciones Aritméticas Instrucciones Aritméticas Instrucciones Transferencia de Datos Instrucciones.
1 SEMANA 04_2. 2 OPERADORES ARITMETICOS OPERADOR: + FORMATO: VALOR1 + VALOR2 FUNCION : SUMA VALOR1 Y VALOR2 EJEMPLO : TABLA_MAS_2 DW TABLA + 2 ; (DESPLAZAMIENTO.
Lenguaje Ensamblador Unidad 2
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 13.
Conceptos Arquitectónicos del computador
PBN © Jaime Alberto Parra Plaza CLASE 5 LOS SEGMENTOS.
Microprocesador (80X86) Universidad Nacional de Ingeniería
PBN © Jaime Alberto Parra Plaza CLASE 9 INSTRUCCIONES ARITMÉTICAS. GENERACIÓN DE EXPRESIONES.

Tema 1: DATOS Y REGISTROS
Unidad I: Registros e Interrupciones Facilitador: Ing. Eduardo Brando.
INTRODUCCION AL AMBIENTE DE BAJO NIVEL ® M.C.C. Sergio Luis Castillo Valerio Esta presentación puede reproducirse libremente siempre que se mantengan estos.
MODOS DE DIRECCIONAMIENTO
introducción al Lenguaje Ensamblador
MODOS Y METODOS DE DIRECCIONAMIENTO
Capítulo 4 CPU y la memoria.
TEMA : ARQUITECTURA DE COMPUTADORAS

introducción al Lenguaje Ensamblador
Introducción a la Arquitectura Intel x86 © M.C.C. Sergio Luis Castillo Valerio Esta presentación puede reproducirse libremente siempre y cuando se mantenga.
Aprende el arte de la ingeniería inversa
2. ELEMENTOS DEL LENGUAJE 2.1 INTRODUCCIÓNES LINEALES
Arquitectura de Computadores
Etapas de solución de un problema. Módulo o secciones de un algoritmo.
El microprocesador y su arquitectura
Introducción MSc. Rina Arauz.
Lenguaje ensamblador Conceptos introductorios. Formatos de Instrucción. Modos de Direccionamiento. Conjunto de instrucciones básico. Introducción al Lenguaje.
Arquitectura de PCs Lenguaje ASM Intel Lenguaje de máquina y ASM Toda CPU interpreta su código de máquina propio Instrucciones en código de máquina.
Clase 7 Assembly - Simulador MSX88.
Lenguaje Ensamblador. Repertorio de instrucciones Microprocesador Z80.
Instrucciones de Corrimiento
Transcripción de la presentación:

CLASE 7 CONJUNTO DE INSTRUCCIONES. TRANSFERENCIA

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.

La instrucción completa puede tener entre 1 y 6 bytes 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.

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.

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-

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

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’

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.

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

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

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

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

Instrucción de copia (MOV): Sintaxis: MOV destino, origen Propósito: Copia el contenido de origen en destino.

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?

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: PUSH CX ; apilar reg PUSH var16 ; apilar posmem PUSH 259 ; ¡ERROR! ¿por qué?

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

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, var8 LEA DX, var16 LEA AX, [SI] LEA DI, var8[BX][SI]

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:

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

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

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ón tiene dos mnemónicos diferentes.

INSTRUCCIONES DE CADENA: MOVS, CMPS, SCAS, LODS, STOS, REP, REPE/REPZ, REPNE/REPNZ

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

b. Transferencia incondicional: CALL, RET, JMP c. Control de iteración: LOOP, LOOPE/LOOPZ, LOOPNE/LOOPNZ, JCXZ d. Interrupciones: INT, INTO, IRET

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

< FIN DE LA CLASE 7 >