110 likes | 287 Views
INSTITUTO TECNOLOGICO DE APIZACO. Integrantes del equipo: José Luis C ocoletzi López Ariana P aredes Gonzales Edgar Lozano Velázquez TEMA: Conjunto de instrucciones. CONJUNTO DE INSTRUCCIONES.
E N D
INSTITUTO TECNOLOGICO DE APIZACO Integrantes del equipo: José Luis Cocoletzi López Ariana Paredes Gonzales Edgar Lozano Velázquez TEMA: Conjunto de instrucciones
CONJUNTO DE INSTRUCCIONES. • Instrucciones de 32 bits en el modo de operación nativo ARM: longitud de palabra de 32 bits • Todas las instrucciones son condicionales • En ejecución normal ( incondicional), la condición AL (always) se establece en el campo condición • En operaciones condicionales se selecciona una de las 14 condiciones • 36 formatos de instrucciones
CONJUNTO DE INSTRUCCIONES. • 11 tipos básicos de instrucciones. • Dos de estos tipos emplean la ALU, el desplazador en barril y el multiplicador para ejecutar operaciones a alta velocidad sobre datos en los registros. • Ejemplos: AND, EOR, SUB, RSB, ADD, ADC, SBC, RSC, TST, TEQ, CMP, CMN, ORR, MOV, BIC, MVN, ( Multiplicaciones ) MUL, MLA, MULL, MLAL
CONJUNTO DE INSTRUCCIONES. • Instrucciones de salto (Branching): BX, B, BL • BX: Branch and eXchange, salto con cambio de conjunto de instrucciones ARM < -- > Thumb • B: salto con desplazamiento de 24 bits con signo • BL: enlace (link) PC -> R14 • Instrucciones de transferencia de datos: LDR, STR, LDRH, STRH, LDRSB, LDRSH, LDM, STM, SWP.
CONJUNTO DE INSTRUCCIONES . • Instrucciones de excepciones: SWI, SoftWare Interrupt. • Instrucciones del Coprocesador: CDP, LDC, STC, MRC, MCR. • ARM no ejecuta estas instrucciones pero deja al coprocesador la manipulación de ellas.
Las instrucciones de una CPU a otra difieren bastante, sin embargo en todas las CPU se puede encontrar el siguiente conjunto de instrucciones: 1.- Instrucciones de transferencias de datos 2.- Instrucciones aritméticas 3.- Instrucciones lógicas 4.- Control de flujo 5.- Entrada / Salida
1.- Instrucciones de transferencias de datos MOVE transferir registros en la CPU STOREregistro → memoria LOAD memoria → registro CLEARpone un registro en ceros SET pone un registro en unos PUSH introduce en la pila POP extrae en la pila Acciones: Transfiere datos de una posición a otra. Si se implica a la memoria: • determina la dirección de la memoria • inicia lectura/escritura en memoria
2.- Instrucciones aritméticas ADD suma dos operandos SUBSTRACT resta dos operandos MULTIPLY multiplica dos operandos DIVIDE divide dos operandos ABSOLUTE calcula valor absoluto del operando NEGATE cambia el signo del operando INCREMENTE sube en 1 el operando DECREMENTE baja en 1 el operando Acciones: Puede implicar transferencias de datos, antes y/o después. Realiza la operación en la ALU Actualiza códigos e indicadores de condición
3.- Instrucciones lógicas AND Y lógico bit a bit OR O lógico bit a bit NOT no lógico bit a bit XOR o exclusivo lógico bit a bit TEST evalúa condiciones COMPARE comparación de dos operandos SHIFT desplazamiento izquierda o derecha ROTATE desplazamiento cíclico Acciones: Puede implicar transferencias de datos, antes y/o después. Realiza la operación en la ALU Actualiza códigos e indicadores de condición.
4.- Control de flujo JUMP salto incondicional JUMP CON salto condicional JUMP SUB salto a subrutina RETURN retorno de subrutina SKIP incrementa PC en 1 SKIP CON incremento condicional de PC en 1 HALT detiene la ejecución del programa WAIT detiene la ejecución hasta una condición NOP no ejecuta operación alguna Acciones: Actualiza el contador de programa. En el caso de llamadas y retornos de subrutinas, gestiona la transferencia y enlace de parámetros.
5.- Entrada / salida INPUT transferir I/O → memoria o registro OUTPUT transferir memoria o registro → I/O START I/O inicializa dispositivo I/O TEST I/O transfiere información de estado de I/O Acciones: Cursa una orden a un módulo de E/S En el caso de E/S asignada en memoria, determina la dirección de memoria correspondiente.