3. PROGRAMACIÓN Microcontroladores
|
|
|
- Margarita Crespo García
- hace 9 años
- Vistas:
Transcripción
1 3. PROGRAMACIÓN Microcontroladores M. C. Felipe Santiago Espinosa Octubre de 2016
2 2 Lenguaje ensamblador Un programa en Ensamblador puede incluir: Instrucciones: Elementos del lenguaje que se traducen a código máquina. Cada instrucción tiene su opcode y sus operandos. El procesador ejecuta las instrucciones para determinar el comportamiento de un sistema. Directivas: Elementos del lenguaje que ayudan en la organización de un programa, indicando diferentes aspectos, como la ubicación del código, definiciones, etc. Las directicas no generan código máquina, son elementos propios de la herramienta que se emplee para ensamblar un programa.
3 3 Conjunto de Instrucciones El repertorio de instrucciones cuenta con 131 instrucciones ATMega328, las cuales están organizadas en 5 grupos: Instrucciones Aritméticas y lógicas (28) Instrucciones de control de flujo (Bifurcaciones) (36) Instrucciones de transferencia de datos (35) Instrucciones para el manejo y evaluación de bits (28) Instrucciones especiales (4) La mayoría de las instrucciones son de 16 bits.
4 4 Instrucciones Aritméticas y Lógicas Sumas y restas Instrucción Descripción Operación Banderas ADD Rd, Rs Suma sin acarreo Rd = Rd + Rs Z,C,N,V,H,S ADC Rd, Rs Suma con acarreo Rd = Rd + Rs + C Z,C,N,V,H,S ADIW Rd, k Suma constante a palabra [Rd + 1:Rd] = [Rd + 1:Rd] + k Z,C,N,V,S SUB Rd, Rs Resta sin acarreo Rd = Rd - Rs Z,C,N,V,H,S SUBI Rd, k Resta constante Rd = Rd k Z,C,N,V,H,S SBC Rd, Rs Resta con acarreo Rd = Rd Rs C Z,C,N,V,H,S SBCI Rd, k Resta constante con acarreo Rd = Rd K C Z,C,N,V,H,S SBIW Rd, k Resta constante a palabra [Rd + 1:Rd] = [Rd + 1:Rd] - k Z,C,N,V,S Las que trabajan con palabras se ejecutan en 2 ciclos de reloj, las demás únicamente en 1 ciclo.
5 5 Multiplicaciones enteras y fraccionales. Instrucción Descripción Operación Banderas MUL Rd, Rs Multiplicación sin signo R1:R0 = Rd * Rs Z,C MULS Rd, Rs Multiplicación con signo R1:R0 = Rd * Rs Z,C MULSU Rd, Rs Multiplicación de un número con R1:R0 = Rd * Rs signo y otro sin signo Z,C FMUL Rd, Rs Multiplicación fraccional sin R1:R0 = ( Rd * Rs ) << 1 signo Z,C FMULS Rd, Rs Multiplicación fraccional con signo R1:R0 = ( Rd * Rs ) << 1 Z,C Multiplicación fraccional de un FMULSU Rd, Rs número con signo y otro sin signo R1:R0 = ( Rd * Rs ) << 1 Z,C Todas se ejecutan en 2 ciclos de reloj.
6 6 Instrucciones Lógicas Binarias Instrucción Descripción Operación AND Rd, Rs Operación lógica AND Rd = Rd AND Rs ANDI Rd, k Operación lógica AND con una constante Rd = Rd AND k OR Rd, Rs Operación lógica OR Rd = Rd OR Rs ORI Rd, k Operación lógica OR con una constante Rd = Rd OR k EOR Rd, Rs Operación lógica OR Exclusiva Rd = Rd XOR Rs Todas se ejecutan en 2 ciclos de reloj. Instrucciones para enmascarar información Instrucción Descripción Operación SBR Rd, k Pone en alto los bits indicados en la constante Rd = Rd OR k CBR Rd, k Pone en bajo los bits indicados en la constante Rd = Rd AND (0xFF k) Se ejecutan en 1 ciclo de reloj y modifican a las banderas Z, C, N, V y S.
7 7 Instrucciones Aritméticas o Lógicas Unarias Instrucción Descripción Operación Banderas COM Rd Complemento a 1 Rd = 0xFF Rd Z,C,N,V,S NEG Rd Negado o complemento a 2 Rd = 0x00 Rd Z,C,N,V,H,S INC Rd Incrementa un registro Rd = Rd + 1 Z,N,V,S DEC Rd Decrementa un registro Rd = Rd 1 Z,N,V,S TST Rd Evalúa un registro Rd = Rd AND Rd Z,C,N,V,S CLR Rd Limpia un registro (pone en bajo) Rd = 0x00 Z,C,N,V,S SER Rd Ajusta un registro (pone en alto) Rd = 0xFF Ninguna Se ejecutan en 1 ciclo de reloj.
8 8 Instrucciones de Control de Flujo Saltos Incondicionales Instrucción Descripción Operación RJMP k Salto relativo PC = PC + k + 1 IJMP Salto indirecto PC = Z JMP k Salto absoluto PC = k Los saltos relativo e indirecto se ejecutan en 2 ciclos de reloj, el salto absoluto en 3. Instrucciones para el manejo de Rutinas Instrucción Descripción Operación RCALL k Llamada relativa a una rutina PC = PC + k + 1, PILA PC + 1 ICALL Llamada indirecta a una rutina PC = Z, PILA PC + 1 CALL k Llamada absoluta a una rutina PC = k, PILA PC + 1 RET Retorno de una rutina PC PILA RETI Retorno de rutina de interrupción PC PILA, I = 1 Las llamadas relativa e indirecta a rutinas se ejecutan en 3 ciclos de reloj, la llamada absoluta y los retornos se ejecutan en 4.
9 9 Instrucciones para la comparación de datos. Instrucción Descripción Operación CP Rd, Rs Compara dos registros Rd Rs CPC Rd, Rs Compara registros con acarreo Rd Rs C CPI Rd, k Compara un registro con una constante Rd k Modifican las banderas Z, C, N, V, H y S.
10 Brincos Condicionales. Instrucción Descripción Operación BRBS s, k Brinca si el bit s del registro estado está en alto si(sreg(s) == 1) PC = PC + k + 1 BRBC s, k Brinca si el bit s del registro estado está en bajo si (SREG(s) == 0) PC = PC + k + 1 BRIE k Brinca si las interrupciones están habilitadas si (I == 1) PC = PC + k + 1 BRID k Brinca si las interrupciones están deshabilitadas si (I == 0) PC = PC + k + 1 BRTS k Brinca si el bit T está en alto si (T == 1) PC = PC + k + 1 BRTC k Brinca si el bit T está en bajo si (T == 0) PC = PC + k + 1 BRHS k Brinca si la bandera H está en alto si (H == 1) PC = PC + k + 1 BRHC k Brinca si la bandera H está en bajo si (H == 0) PC = PC + k + 1 BRGE k Brinca si es mayor o igual que (con signo) si (S == 0) PC = PC + k + 1 BRLT k Brinca si es menor que (con signo) si (S == 1) PC = PC + k + 1 BRVS k Brinca si la bandera V está en alto si (V == 1) PC = PC + k + 1 BRVC k Brinca si la bandera V está en bajo si (V == 0) PC = PC + k + 1 BRMI k Brinca si es negativo si (N == 1) PC = PC + k + 1 BRPL k Brinca si no es negativo si (N == 0) PC = PC + k + 1 BREQ k Brinca si los datos son iguales si (Z == 1) PC = PC + k + 1 BRNE k Brinca si los datos no son iguales si (Z == 0) PC = PC + k + 1 BRSH k Brinca si es mayor o igual si (C == 0) PC = PC + k + 1 BRLO k Brinca si es menor si (C == 1) PC = PC + k + 1 BRCS k Brinca si la bandera C está en alto si (C == 1) PC = PC + k + 1 BRCC k Brinca si la bandera C está en bajo si (C == 0) PC = PC + k + 1 Pueden tardar 1 o 2 ciclos de reloj. 10
11 11 Saltitos Condicionales. Instrucción Descripción Operación CPSE Rd, Rs Un saltito si los registros son iguales si(rd == Rs) PC = PC + 2 o 3 SBRS Rs, b Un saltito si el bit b del registro Rs está en si(rs(b) == 1) PC = PC + 2 o 3 alto SBRC Rs, b Un saltito si el bit b del registro Rs está en si(rs(b) == 0) PC = PC + 2 o 3 bajo SBIS P, b Un saltito si el bit b del registro P está en si(i/o(p, b) == 1) alto, P es un registro I/O PC = PC + 2 o 3 SBIC P, b Un saltito si el bit b del registro P está en si(i/o(p, b) == 0) bajo, P es un registro I/O PC = PC + 2 o 3 Pueden tardar 1, 2 o 3 ciclos de reloj.
12 12 Instrucciones de Transferencia de Datos Registro de Instrucción (IR) SRAM K 2 Archivo de Registros 32 x 8 4 Flash Memoria de Programa 1 Transferencias entre registros 2 Transferencia de una constante a registro 1024 x 8 Espacio de Propósito General 3 Registros de propósito general 1 5 Registros I/O 64 x 8 Registros para el manejo de Recursos 3 Transferencias entre memoria de datos y registros 4 Transferencias entre memoria de código y registros 5 Transferencias entre registros I/O y de propósito general
13 13 Trasferencia entre registros. Instrucción Descripción Operación MOV Rd, Rs Copia un registro Rd = Rs MOVW Rd, Rs Copia un par de registros Rd + 1: Rd = Rs + 1: Rs, Rd y Rs registros pares Trasferencia de una constante a un registro. Instrucción Descripción Operación LDI Rd, k Copia la constante en el registro Rd = k
14 14 Transferencias entre memoria de datos y registros (cargas) Instrucción Descripción Operación LDS Rd, k Carga directa de memoria Rd = Mem[k] LD Rd, X Carga indirecta de memoria Rd = Mem[X] LD Rd, X+ Carga indirecta con post-incremento Rd = Mem[X], X = X + 1 LD Rd, -X Carga indirecta con pre-decremento X = X - 1, Rd = Mem[X] LD Rd, Y Carga indirecta de memoria Rd = Mem[Y] LD Rd, Y+ Carga indirecta con post-incremento Rd = Mem[Y], Y = Y + 1 LD Rd, -Y Carga indirecta con pre-decremento Y = Y - 1, Rd = Mem[Y] LDD Rd, Y + q Carga indirecta con desplazamiento Rd = Mem[Y + q] LD Rd, Z Carga indirecta de memoria Rd = Mem[Z] LD Rd, Z+ Carga indirecta con post-incremento Rd = Mem[Z], Z = Z + 1 LD Rd, -Z Carga indirecta con pre-decremento Z = Z - 1, Rd = Mem[Z] LDD Rd, Z + q Carga indirecta con desplazamiento Rd = Mem[Z + q]
15 15 Transferencias entre registros y memoria de datos (Almacenamientos) Instrucción Descripción Operación STS k, Rs Almacenamiento directo en memoria Mem[k] = Rs ST X, Rs Almacenamiento indirecto en memoria Mem[X] = Rs ST X+, Rs Almacenamiento indirecto con post-incremento Mem[X] = Rs, X = X + 1 ST -X, Rs Almacenamiento indirecto con pre-decremento X = X - 1, Mem[X] = Rs ST Y, Rs Almacenamiento indirecto en memoria Mem[Y] = Rs ST Y+, Rs Almacenamiento indirecto con post-incremento Mem[Y] = Rs, Y = Y + 1 ST -Y, Rs Almacenamiento indirecto con pre-decremento Y = Y - 1, Mem[Y] = Rs STD Y + q, Rs Almacenamiento indirecto con desplazamiento Mem[Y + q] = Rs ST Z, Rs Almacenamiento indirecto en memoria Mem[Z] = Rs ST Z+, Rs Almacenamiento indirecto con post-incremento Mem[Z] = Rs, Z = Z + 1 ST -Z, Rs Almacenamiento indirecto con pre-decremento Z = Z - 1, Mem[Z] = Rs STD Z + q, Rs Almacenamiento indirecto con desplazamiento Mem[Z + q] = Rs
16 16 Transferencias entre memoria de datos y registros (Acceso a la Pila) Instrucción Descripción Operación PUSH Rs Inserta a Rs en la pila Mem[SP] = Rs, SP = SP 1 POP Rd Extrae de la pila y coloca en Rd SP = SP + 1, Rd = Mem[SP] Transferencias entre memoria de código y registros Instrucción Descripción Operación LPM Carga indirecta de memoria de programa en R0 R0 = Flash[Z] LPM Rd, Z Carga indirecta de memoria de programa en Rd Rd = Flash[Z] LPM Rd, Z+ Carga indirecta con post-incremento Rd = Flash[Z], Z = Z + 1 SPM Almacenamiento indirecto en memoria de programa Flash[Z] = R1:R0 Transferencias entre Registros I/O y registros de propósito general Instrucción Descripción Operación IN Rd, P Lee de un registro I/O, deja el resultado en Rd Rd = P OUT P, Rs Escribe en un registro I/O, el valor de Rs P = Rs
17 17 Instrucciones para el manejo y evaluación de bits Desplazamientos y rotaciones Instrucción Descripción Operación LSL Rd Desplazamiento lógico a la izquierda C = Rd(7), Rd(n+1) = Rd(n), Rd(0) = 0 LSR Rd Desplazamiento lógico a la derecha C = Rd(0), Rd(n) = Rd(n + 1), Rd(7) = 0 ROL Rd Rotación a la izquierda C = Rd(7), Rd(n + 1) = Rd(n), Rd(0) = C ROR Rd Rotación a la derecha C = Rd(0), Rd(n) = Rd(n + 1), Rd(7) = C ASR Rd Desplazamiento aritmético a la derecha Rd(n) = Rd(n + 1), n = 0.. 6
18 18 Instrucción para el intercambio de nibbles. Instrucción Descripción Operación SWAP Rd Intercambia nibbles en Rd Rd(7..4) = Rd(3..0), Rd(7..4) = Rd(3..0) Se ejecuta en 1 ciclo de reloj y no modifica banderas. Instrucciones para modificar bits en los Registros I/O. Instrucción Descripción Operación SBI P, b Pone en alto al bit b del Registro P P(b) = 1 CBI P, b Pone en bajo al bit b del Registro P P(b) = 0 Registros I/O que están en el rango de 0x00 a 0x1F. Se ejecutan en 2 ciclos de reloj y tampoco modifican banderas. Instrucciones para transferencia de bits. Instrucción Descripción Operación BTS Rs, b Almacena al bit b de un registro en T T = Rs(b) BTL Rd, b Carga en el bit b de un registro desde T Rd(b) = T Se ejecutan en 1 ciclo de reloj.
19 19 Instrucción para manipular los bits del registro Estado Instrucción Descripción Operación BSET s Pone en alto al bit s del registro Estado SREG(s) = 1 BCLR s Pone en bajo al bit s del registro Estado SREG(s) = 0 SEI Pone en alto al habilitador de interrupciones I = 1 CLI Pone en bajo al habilitador de interrupciones I = 0 SET Pone en alto al bit de transferencias T = 1 CLT Pone en bajo al bit de transferencias T = 0 SEH Pone en alto a la bandera de acarreo del nibble bajo H = 1 CLH Pone en bajo a la bandera de acarreo del nibble bajo H = 0 SES Pone en alto a la bandera de signo S = 1 CLS Pone en bajo a la bandera de signo S = 0 SEV Pone en alto a la bandera de sobreflujo V = 1 CLV Pone en bajo a la bandera de sobreflujo V = 0 SEN Pone en alto a la bandera de negativo N = 1 CLN Pone en bajo a la bandera de negativo N = 0 SEZ Pone en alto a la bandera de cero Z = 1 CLZ Pone en bajo a la bandera de cero Z = 0 SEC Pone en alto a la bandera de acarreo C = 1 CLC Pone en bajo a la bandera de acarreo C = 0
20 20 Instrucciones Especiales Instrucción NOP SLEEP WDR BREAK Descripción No operación, empleada para forzar una espera de 1 ciclo de reloj Introduce al MCU al modo de bajo consumo previamente seleccionado Reinicia al Watchdog Timer, para evitar reinicios por su desbordamiento Utilizada para depuración desde la interfaz DebugWire
21 21 Modos de direccionamiento Los Modos de Direccionamiento indican la ubicación de los datos sobre los que operan las instrucciones. Los Microcontroladores AVR manejan los siguientes modos de direccionamiento: 1. Directo por registro 2. Directo a registros I/O 3. Directo a memoria de datos 4. Indirecto a memoria de datos 5. Indirecto a memoria de código 6. Inmediato 7. Direccionamientos en bifurcaciones
22 22 Direccionamiento directo por registro Un registro: 11 bits 5 bits OPCODE Rd 5 2=32 REGISTROS R0 R1... Ejemplos: COM R3 INC R5 SER R7 R30 R31
23 23 Direccionamiento directo por registro Dos registros: 6 bits 5 bits 5 bits OPCODE Rr Rd Ejemplos: ADD R1, R2 SUB R1, R2 AND R1, R2 MOV R1, R2
24 24 Direccionamiento directo a I/O 5 bits 5 bits 6 bits OPCODE REGISTROS R0 R 5 2=32 P 6 2=64 REGISTROS I/O SREG R1 SPH R30 R31 Ejemplos: OUT PORTB, R13 IN R15, PINA
25 25 Direccionamiento directo a Memoria de Datos 11 bits 5 bits REGISTROS R0 R1 OPCODE DIRECCIÓN DE DATOS n... R = 64k SRAM R31 0x45F (limitado por el dispositivo) Ejemplos: STS 0x0100, R5 LDS R16, 0x0110
26 26 Direccionamiento indirecto a Memoria de Datos 11 bits 5 bits OPCODE Rd 5 REGISTROS 2=32 R0 R1 SRAM 0 Ejemplos: LD R5, Y ST X, R11 X, Y o Z quedan especificados como parte del opcode X Y Z.... R26 R27 R28 R29 R30 R x045F
27 Direccionamiento indirecto a Memoria de Datos Con desplazamiento 27 Y o Z SRAM 5 bits 5 bits 6 bits OPCODE n q R0 R1... R30 R31 Ejemplos: LDD R5, Y+0x020 STD Z+0x10, R11 Y o Z quedan especificados como parte del opcode
28 Direccionamiento indirecto a Memoria de Datos Con pre-decremento 28 X, Y o Z + SRAM -1 REGISTROS R0 11 bits 5 bits R1 OPCODE Ejemplos: LD R5, -Y ST Z, R11 n... R30 R31
29 29 Direccionamiento indirecto a Memoria de Datos Con post-incremento X, Y o Z + SRAM 1 REGISTROS R0 11 bits 5 bits R1 OPCODE Ejemplos: LD R5, Y+ ST X+, R6 n... R30 R31
30 30 Direccionamiento indirecto a Memoria de Código Z FLASH REGISTROS R0 11 bits 5 bits R1 OPCODE n... Ejemplos: LPM LPM SPM (R0 y Z implícitos) R3, Z (R1:R0 y Z implícitos) R30 R31 Nota: También existe una carga indirecta de memoria de código con post-incremento del apuntador Z.
31 31 Direccionamiento inmediato 4 bits 4 bits 8 bits OPCODE REGISTROS R16 R 4 2 =16 K R17... R30 Ejemplos: R31 ANDI SUBI ORI R17, 0xF3 R19, 0x12 R31, 0x03
32 32 Direccionamientos en Bifurcaciones Las bifurcaciones o saltos (pueden ser condicionales o incondicionales) permiten cambiar el flujo secuencial, durante la ejecución de un programa. Esto se consigue modificando el valor del registro contador del programa (Program Counter). Cuando no hay una bifurcación, el PC automáticamente debe incrementarse en 1. Indirectas Z PC Ejemplos: IJMP ICALL Nota: El apuntador Z queda implícito en la instrucción.
33 Direccionamientos en Bifurcaciones 33 Relativas PC OPCODE K Ejemplos: RJMP -20 RCALL 32 BREQ 15 BRNE -10 BRGE 10 En bifurcaciones incondicionales, se dispone de 12 bits para K. En bifurcaciones condicionales, Solo se dispone de 7 bits. Notas: 1. En un programa se utilizan etiquetas, el ensamblador calcula el valor de las constantes. 2. Existen bifurcaciones condicionales que sólo brincan la siguiente instrucción, también son relativas al PC.
34 34 Direccionamientos en Bifurcaciones Absolutas 10 bits 6 bits OPCODE K ( 15 : 0 ) K ( 21 : 16 ) PC Ejemplos: JMP CALL 0x x1FFFFF Nota: Estos saltos absolutos no están en el ATMega8, pero si en el ATMega16. Para el ATMega8, las bifurcaciones relativas son suficientes para cubrir todo el espacio de memoria de código.
35 35 Ejercicio: Ignorando como se llevó un conjunto de 20 enteros sin signo a la memoria SRAM, ubicados a partir de la dirección 0x0200 y ocupando un byte por cada entero, realice una secuencia de instrucciones en ensamblador que use direccionamiento indirecto e incluya comparaciones para que, al final de la secuencia en el registro R20 quede el mayor de los 20 enteros. Sugerencia: Revise cómo se resolvería el problema en alto nivel.
36 36 Directivas comunes: INCLUDE: Se utiliza para leer el código fuente de otro archivo En un ATMega328 se debe agregar:.include <m328pdef.inc>
37 37 Directivas para definir diferentes tipos de segmentos en un programa: CSEG: Segmento de Código (por omisión). Se crea un archivo.hex para la memoria FLASH. DSEG: Segmento de Datos. Para reservar espacio en la SRAM. ESEG: Segmento de EEPROM. Se crea un archivo.eep, a descargarse en la memoria EEPROM.
38 38.DSEG ; Inicia un segmento de datos var1:.byte 1 ; Variable de 1 byte en SRAM.CSEG ; Inicia un segmento de código ldi R16, 0x25 ; Instrucciones para alguna tarea mov r0,r16... const:.db 0x02 ; Constante con 0x02 en flash.eseg ; Inicia un segmento de EEPROM eevar1:.db 0x3f ; Constante con 0x3f en EEPROM
39 39 DB y DW (Define Byte y Define Word) Directivas para definir constantes o variables, en memoria de programa o en EEPROM..CSEG ; Constantes en memoria FLASH const1:.db 0x33 consts1:.db 0, 255, 0b , -128, 0xaa consts2:.dw 0, 0xffff, 0b , , ESEG ; Constantes en EEPROM eevar1:.db 0x37 eelist1:.db 1,2,3,4 eelist2:.dw 0,0xffff,10
40 40 EQU: Define una constante simbólica, que puede usarse dentro de las instrucciones. Ejemplo:.EQU io_offset = 0x23.EQU porta = io_offset + 2.CSEG ; Inicia el segmento de código clr r2 ; Limpia el registro 2 out porta, r2 ; Escribe a porta
41 ORG: Organizar a cualquiera de los segmentos de memoria, indica en qué dirección se ubicará la información subsecuente, pudiendo ser variables en SRAM, constantes en EEPROM o en FLASH, o código en FLASH. 41.DSEG.ORG 0x120 var1:.byte 1 ; Variable en la dirección 0x120 del ; segmento de datos.cseg.org 0x000 ; Código ubicado en la dirección 0x00 RJMP inicio.org 0x010 inicio: MOV R1, R2.... ; Código ubicado en la dirección 0x10
42 42 HIGH y LOW : Se utilizan para separar constantes de 16 bits. HIGH: Byte alto. LOW: Byte bajo. LDI R20, LOW (1022) LDI R21, HIGH (1022) LDI R30, LOW(tabla) LDI R31, HIGH(tabla).... tabla:.db 0x01,0x02,0x03,0x04
43 BYTE: Reserva uno o más bytes en SRAM o EEPROM para el manejo de variables, la cantidad de bytes debe especificarse. Este espacio no es inicializado y posteriormente será referido con una etiqueta. 43.DSEG var1:.byte 1 ; variable de 1 byte var2:.byte 10 ; variable de 10 bytes.cseg STS var1, R17 ; acceso a var1 por dir. Directo LDI R30, LOW (var2) ; Z apunta a Var2 LDI R31, HIGH (var2) LD R1, Z ; acceso indirecto a var2
44 44 PROGRAMACIÓN EN ALTO NIVEL Lenguaje C
45 45 Tipos de Datos Tipo Tamaño (bits) Rango char a 127 unsigned char 8 0 a 255 signed char a 127 int 16-32, 768 a 32, 767 short int 16-32, 768 a 32, 767 unsigned int 16 0 a 65, 535 signed int 16-32, 768 a 32, 767 long int 32-2, 147, 483, 648 a 2, 147, 483, 647 unsigned long int 32 0 a 4, 294, 967, 295 signed long int 32-2, 147, 483, 648 a 2, 147, 483, 647 float 32 +/ x a +/ x double 32 +/ x a +/ x
46 46 Definiciones en WINAVR typedef signed char typedef unsigned char typedef signed int typedef unsigned int typedef signed long int typedef unsigned long int int8_t uint8_t int16_t uint16_t int32_t uint32_t
47 47 Operadores ejemplo z *= 12; equivalente a z = z * 12; z /= 2; equivalente a z = z / 12 Operador ternario Expresión1? Expresión2 : Expresión3; Asignación después de una manipulación de bits.
48 48 Operadores de manipulación de bits Complemento Uno ~ Desplazamiento a la Izquierda Trabajan sobre operandos que no son punto flotante (char, int, long) y afectan el resultado al nivel de bits. Operadores Lógicos << Desplazamiento a la Derecha >> AND AND & OR OR Exclusiva && OR NOT! Tratan a los operandos como expresiones FALSAS o VERDADERAS. ^
49 49 15 Estructuras de control Secuencial Selección simple Selección Doble // Expresiones en secuencia a = conta + 5;... contador++; if(expresión) Proposición if(expresión) proposición1 else proposición2
50 50 15 Estructuras de control Selección Múltiple Repetición Mientras switch (expresión){ case exp-const: proposiciones case exp-const: proposiciones default: proposiciones } while(expresión) proposición
51 51 15 Estructuras de control Repetición Hacer/Mientras Repetición Para/Hasta do proposición for (expr1; expr2; expr3) while(expresión); proposición
52 52 Tipos de Memoria Datos en SRAM Variables: Datos que van a ser leídos o escritos repetitivamente. SRAM este es el espacio de almacenamiento por default. unsigned char x, y; unsigned int a, b, c; Si es posible, el compilador utilizará los registros de propósito general (R0 a R31). Los apuntadores son manejados en SRAM y hacen referencia a objetos de SRAM, un ejemplo de declaraciones y uso es: char cadena[] = "hola mundo"; char *pcad; pcad = cadena;
53 53 Datos en FLASH Constantes: Datos que no cambiarán durante la ejecución normal de un programa. Si las constantes se manejan en memoria FLASH, se liberarán espacios significativos de SRAM. Útil para cadenas de texto o tablas de búsqueda. Se requiere el uso de la palabra reservada const e incluir al atributo PROGMEM, definido en la biblioteca pgmspace.h (en WinAVR). Ejemplos de declaraciones: const char cadena[] PROGMEM = Cadena con un mensaje constante ; const unsigned char tabla[] PROGMEM = { 0x24, 0x36, 0x48, 0x5A, 0x6C };
54 54 Declaración de constantes -> ámbito global. Acceso -> funciones de la biblioteca pgmspace.h Ejemplos: pgm_read_byte(address); pgm_read_word(address); pgm_read_dword(address); // Lee 8 bits // Lee 16 bits // Lee 32 bits Reciben como argumento la dirección del dato en FLASH. x = pgm_read_byte(&tabla[i]); Es posible el manejo de apuntadores, un apuntador a datos en memoria FLASH se declara como PGM_P.
55 55 La biblioteca incluye funciones que trabajan con bloques completos de memoria FLASH. strcpy_p: Sirve para leer una cadena de memoria FLASH y depositarla en SRAM. char buf[32]; // Buffer destino, en SRAM PGM_P p; // Apuntador a memoria FLASH p = cadena; strcpy_p(buf, p); // p apunta a la cadena en FLASH // copia de FLASH a SRAM
56 56 Datos en EEPROM Variables en las que se requiera conservar su contenido aún en ausencia de energía. Deberán almacenarse en la EEPROM. Deberá utilizarse el atributo EEMEM, definido en la biblioteca eeprom.h, también en WinAVR. Son declaraciones globales y se deben hacer antes de cualquier declaración enfocada hacia la SRAM. #include <avr/eeprom.h> //Biblioteca para la EEPROM EEMEM int contador = 0x1234; // Un entero:2 bytes EEMEM unsigned char clave[4] = { 1, 2, 3, 4}; // 4 bytes En la EEPROM: FF FF FF...
57 57 Para el acceso a los datos en la EEPROM: Por medio de los registros EEAR, EEDR y EECR. Funciones en la biblioteca eeprom.h, ejemplos: eeprom_read_byte: Lee un byte de la EEPROM, en la dirección que recibe como argumento. eeprom_write_byte: Escribe un byte en la EEPROM, como argumentos recibe la dirección y el dato. También se incluyen funciones para datos de 16 y 32 bits, así como para el manejo de bloques de memoria.
58 58 PROGRAMAS DE EJEMPLO En Ensamblador y en Lenguaje C
59 59 Parpadeo de un LED Realice un programa que haga parpadear un LED conectado en la terminal PB0 a una frecuencia aproximada de 1 Hz (periodo de 1 seg.), considerando un ciclo útil del 50 % (½ seg. encendido y ½ seg. apagado).
60 60 Decodificador de binario a 7 Segmentos Desarrolle un programa que lea los 4 bits menos significativos del Puerto D [PD3:PD0] y genere su código en 7 segmentos en el Puerto B. Num g f e d c b a HEX x3F x x5B x4F x x6D x7D x x7F x67 A x77 B x7C C x39 D x5E E x79 F x71
61 61 Decodificador de binario a 7 Segmentos INICIO PortD como Entrada PortB como Salida Dato! PinD & 0x0F Portb = 0x00 = 0x01 Dato? = 0x02 = 0x0E = 0x0F! 0x3F Portb! 0x06 Portb! 0x 5B... Portb! 0x79 Portb! 0x71
62 Diseño de una ALU de 4 bits 62 Construya una ALU de 4 bits utilizando un ATMega8, en donde los operandos se lean del puerto B (nibble bajo para el operando A y nibble alto para el operando B), el resultado se genere en el puerto D y con los 3 bits menos significativos del puerto C se defina la operación. PortC[2:0] Operación 000 R = A + B 001 R = A - B 010 R = A * B 011 R = A AND B 100 R = A OR B 101 a 111 R = 0
63 Diseño de una ALU de 4 bits 63 INICIO PortB y PortC como Entradas PortD como Salida A! PinB & 0x0F B! ( PinB & 0xF0) >> 4 Op! PinC & 0x07 = 000 Op? otros = 001 = 100 = 010 = 011 R! A + B R! A - B R! A * B R! A & B R! A B R! 0 PortD! R
Programación en ensamblador y en alto nivel (C)
Programación en ensamblador y en alto nivel (C) Taller de Microcontroladores año 2012 Optativa de grado y Curso de Posgrado El ISAdel AVR Preliminares 32 registros de 8 bits: R0 a R31 Los registros pueden
Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones
Introducción a la Computación Capítulo 10 Repertorio de instrucciones: Características y Funciones Que es un set de instrucciones? La colección completa de instrucciones que interpreta una CPU Código máquina
Conceptos de Arquitectura de Computadoras Curso 2015
PRACTICA 1 Assembly, Instrucciones, Programas, Subrutinas y Simulador MSX88 Objetivos: que el alumno Domine las instrucciones básicas del lenguaje assembly del MSX88. Utilice los diferentes modos de direccionamiento.
8.4. El software en los μprocesadores
8.4. El software en los μprocesadores Ejemplo de comandos de la CPU: Tarea: Sumar dos números A y B. Suponer los datos A y B almacenados en las posiciones 1000 2 y 1010 2 respectivamente. El resultado
Elementos de un programa en C
Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución
Contenido. Conjunto de Instrucciones. Formato de la Instrucción. Instrucciones de 1 byte. Formato de la Instrucción 28/09/2011
1 ontenido 2 UNIDAD 5 EL LENGUAJE DE ENSAMBLADOR DEL Z80 onjunto de instrucciones Tipos de instrucciones Modos de direccionamiento El ensamblador del Z80 El simulador AVOET Implementación de un sistema
Lección 2 Introducción al lenguaje C
Lección Introducción al lenguaje C Decimal Binario Hexadecimal A B C D E F Octal Equivalencia entre decimal, binario, hexadecimal y octal. Código ASCII (American Standard Code for Information Interchange)
Guía de programación ATMega328pa
Guía de programación ATMega328pa Autor: Alberto J. Molina Última modificación: 6/05/13 Usted es libre de copiar, distribuir y comunicar públicamente la obra y de hacer obras derivadas siempre que se cite
El Diseño de un Lenguaje Máquina
Arquitectura de Ordenadores Juego de Instrucciones del Procesador Intel Pentium Abelardo Pardo [email protected] Universidad Carlos III de Madrid Departamento de Ingeniería Telemática El Diseño de un Lenguaje
Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.
LENGUAJE C CARACTERISTICAS DEL LENGUAJE 'C' El lenguaje 'C' se conoce como un lenguaje compilado. Existen dos tipos de lenguaje: interpretados y compilados. Los interpretados son aquellos que necesitan
Tema 2. El lenguaje JAVA
Tema 2. El lenguaje JAVA Nomenclatura habitual Variables Tipos de variables Tipos primitivos Referencias Arrays Operadores Operadores de Java Precedencia de operadores Sentencias de control Sentencias
LENGUAJE. Tema 2 Elementos de un programa
LENGUAJE Tema 2 Elementos de un programa ELEMENTOS DE UN PROGRAMA Comentarios. Identificadores. Constantes. Variables. Operadores. Sentencias o instrucciones. COMENTARIOS Los comentarios en C pueden ocupar
El lenguaje C. 1. Identificadores, constantes y variables
Principios de Programación El lenguaje C 1. Identificadores, constantes y variables 1.1. Conceptos de memoria Los nombres de variable como x, y, suma corresponden a localizaciones o posiciones en la memoria
Práctica de constantes, expresiones y operadores. Programación en C 1
Práctica de constantes, expresiones y operadores Programación en C 1 Definición de variables (II) Las variables (automáticas) no inicializadas tienen cualquier valor. Una variable (automática) se inicializa
Curso de Programación Avanzada en C
Curso de Programación Avanzada en C Copyright, 1996 Universidad Sim on Bol ivar 1 Prof. Mariela J. Curiel Contenido del Curso Conceptos BásicosB Estructuras de Control Arreglos Otros tipos de datos derivados
Expresiones y sentencias
Expresiones y sentencias Expresión Construcción (combinación de tokens) que se evalúa para devolver un valor. Sentencia Representación de una acción o una secuencia de acciones. En Java, todas las sentencias
Ensamblador. Introducción. Dpto. Física y Arquitectura de Computadores. Universidad Miguel Hernandez
Dpto. Física y Arquitectura de Computadores Universidad Miguel Hernandez Es el lenguaje de más bajo nivel que admite una máquina. El ensamblador hace que el código binario(máquina sea transparente al usuario)
Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C
Algoritmo y Estructura de Datos Ing. M. Laura López 1 Estructura de un programa en C 2 Estructura de un programa en C #include Archivos de cabecera # define Definición de constantes Declaraciones Globales
Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Antonio Rivero Cuesta La Sintaxis de Java I... 5 Tipos de datos... 6 Tipos de datos simples... 7 Operadores... 11 Operadores Aritméticos... 12 Operadores relacionales...
El nivel ISA (II)! Conjunto de Instrucciones
El nivel ISA (II) Conjunto de Instrucciones EC-2721 Arquitectura del Computador I Que es un Conjunto de Instrucciones? Colección completa de instrucciones comprendida por un procesador Lenguaje de máquina
Programación de Sistemas. Unidad 1. Programación de Sistemas y Arquitectura de una Computadora
Programación de Sistemas Unidad 1. Programación de Sistemas y Arquitectura de una Computadora Programación de Sistemas Arquitectura de una Computadora Componentes de un Sistema de Cómputo Un sistema está
Lenguaje de programación C. Introducción
Lenguaje de programación C Introducción 1 Elementos del lenguaje C Colección de funciones Estas funciones contienen declaraciones, sentencias, expresiones y otros elementos que en conjunto indican a la
TIPOS DE DATOS BASICOS EN LENGUAJE C
TIPOS DE DATOS BASICOS EN LENGUAJE C TIPO char int float double void ANCHO EN BIT 64 0 TIPOS DE DATOS RANGO EN PC -12 a 127 3.4E-3 a 3.4E+3 1.7E-30 a 1.7E+30 sin valores TIPO ANCHO EN BIT RANGO EN PC char
Resumen de las instrucciones del 8086/8088
Resumen de las instrucciones del 8086/8088 En este capítulo se hace un resumen de las instrucciones del 8086/8088. Estas instrucciones se encuentran explicadas más detalladamente en otro capítulo. Se puede
INDICE Programa Entrada Unidad de control Unidad aritmética y lógica (ALU)
INDICE Capitulo 1. Qué es un computador? 1.1. Introducción 1 1.2. El computador como dispositivo electrónico 2 1.3. Cómo se procesa la información? 3 1.4.Diagrama de bloques de un computador 1.4.1. Información
4. Operadores Operador asignación
Programación orientada a objetos con Java 43 4. Operadores Objetivos: a) Describir los operadores (aritméticos, incrementales, de relación, lógicos y de asignación) y los tipos de dato primitivos sobre
Relación de Problemas I
Relación de Problemas I 352) $1'5e6 52/'È1 $5$1'$ 1. Realizar el cálculo del tiempo que transcurre durante la ejecución del bloque de instrucciones sombreado, en función del contenido de los registros
Circuitos Digitales II y Laboratorio Electrónica Digital II y Laboratorio
Circuitos Digitales II y Laboratorio Electrónica Digital II y Laboratorio Fundamentos de Arquitectura de Computadores Modelo de von Neumann Profesor: Felipe Cabarcas Correo:[email protected] Oficina:
3 - Arquitectura interna de un up
[email protected] 3 - Arquitectura interna un up Componentes básicos Lenguaje ensamblador y código máquina Ciclo básico ejecución una instrucción Algunos ejemplos Universidad Politécnica Madrid Componentes básicos
Ejercicios del tema 4. El procesador
jercicios del tema 4. l procesador jercicio 1. Considere un procesador de 32 bits con una frecuencia de reloj de 500 MHz con la estructura del mostrado en el jercicio 3. La memoria se direcciona por bytes
Estructuras de Datos Declaraciones Tipos de Datos
Departamento de Informática Universidad Técnica Federico Santa María Estructuras de Datos Declaraciones Tipos de Datos Temas: 2-3-4 IWI-131, paralelo 01 Profesor: Teddy Alfaro O. Lenguaje de Programación
Arquitectura (Procesador familia 80 x 86 )
Arquitectura (Procesador familia 80 x 86 ) Diseño de operación Basada en la arquitectura Von Newman Memoria CPU asignadas direcciones I / O BUS: Es un canal de comunicaciones Bus de direcciones: Contiene
Elementos léxicos del lenguaje de programación C
Elementos léxicos del lenguaje de programación C Elementos léxicos de los lenguajes de programación (tokens) Palabras reservadas Identificadores Literales Operadores Delimitadores Comentarios Apéndices
Principios de Computadoras II
Departamento de Ingeniería Electrónica y Computadoras Operadores y Expresiones [email protected] Primer programa en Java 2 Comentarios en Java Comentario tradicional (multi-línea) Comentario de línea Comentario
Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones
Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice
MICROPROCESADORES II LENGUAJE C EN LOS MICROCONTROLADORES PIC
MICROPROCESADORES II LENGUAJE C EN LOS MICROCONTROLADORES PIC Tipos de datos en CCS TIPO TAMAÑO RANGO DESCRIPCION int1 short 1 bit 0 a 1 Binario int int8 8 bits 0 a 255 Entero int16 long 16 bits 0 a 65535
INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA
APUNTES DE JAVA FUNCIONAMIENTO DE UN PROGRAMA Assembler Ensamblador Ejecuta Programador Programa fuente BASIC Interprete Ejecuta C, C++, Pascal Compilador Compila Ejecuta Programa fuente Programa Objeto
Programación n Orientada a Objetos Sentencias Java Parte I. Ing. Julio Ernesto Carreño o Vargas MsC.
Programación n Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño o Vargas MsC. Variables y expresiones aritméticas Variables Conceptos de Memoria Una variable es un espacio en la memoria
TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS
TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS Una vez que ya sabes crear tus propios programas, vamos a analizar los fundamentos del lenguaje de programación C. Este capítulo incluye además los siguientes temas:
Estructura de Microprocesadores. Profesor Ing. Johan Carvajal Godínez
Estructura de Microprocesadores PIC 18F4550 Administración de la memoria Profesor Ing. Johan Carvajal Godínez Contenidos Organización de la memoria del MCU Administración de la memoria de programa (Flash)
Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.
Tipos de Datos Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Entrada de datos Procesamientos de datos Salida de resultados Los
Definición de Memoria
Arquitectura de Ordenadores Representación de Datos en Memoria Abelardo Pardo [email protected] Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Definición de Memoria DRM-1 La memoria
Programación Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC.
Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC. Variables Conceptos de Memoria Una variable es un espacio en la memoria del PC Cada variable tiene un nombre, un tipo, un tamaño y un valor
Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria
1.2. Jerarquía de niveles de un computador Qué es un computador? Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria Es un sistema tan complejo
Programación estructurada (Introducción a lenguaje C)
Programación estructurada (Introducción a lenguaje C) M. en C. Sergio Luis Pérez Pérez UAM CUAJIMALPA, MÉXICO, D. F. Trimestre 15-I Sergio Luis Pérez (UAM CUAJIMALPA) Curso de programación estructurada
CICLOS DEL PROCESADOR
UNIDAD DE CONTROL CICLOS DEL PROCESADOR Qué es un ciclo de búsqueda? Para qué sirve estudiar los ciclos de instrucción de una CPU? Para comprender el funcionamiento de la ejecución de instrucciones del
Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas
2 - Introducción al lenguaje Java, identificadores y comentarios. Carlos Montenegro Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 1. Introducción: Java tiene como todos
Java para programadores
Java para programadores Java y Servicios Web I Master en Ingeniería Matemática Manuel Montenegro Dpto. Sistemas Informáticos y Computación Desp. 467 (Mat) [email protected] Contenidos Variables. Tipos
Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.
Java Avanzado. Guía 1 Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 2 Introducción Este manual ha sido elaborado para orientar al estudiante de Java Avanzado en el desarrollo
Curso de Programación en C. Licenciatura, FCQeI. APUNTADORES.
APUNTADORES. La memoria de una máquina esta ordenada en forma de celdas numeradas consecutivamente y que se pueden manipular individualmente o en grupos contiguos. La siguiente figura muestra una representación
Instrucciones de Control de Flujo y Usos de la Pila
1 Instrucciones de Control de Flujo y Usos de la Pila Objetivos Generales Facultad: Estudios Tecnologicos. Escuela: Electrónica Asignatura: Microprocesadores Analizar la forma en que se ejecutan algunas
Programación En Lenguaje C
Programación En Lenguaje C Introducción Básica para Primero de Bachillerato TECNOLOGÍA DE LA INFORMACIÓN IES PALAS ATENEA Lenguaje C Estructurado Secuencial De alto Nivel Altamente portable Necesita un
REFERENCIA DEL LENGUAJE
REFERENCIA DEL LENGUAJE Sesión 07 Mg. Cadenas de caracteres Una cadena de caracteres es un arreglo de caracteres. Los caracteres son letras, números y signos de puntuación. Cuando un número se usa como
Tema 2: Lenguaje máquina. La interfaz entre el hardware y el software
Tema 2: Lenguaje máquina La interfaz entre el hardware y el software 1 Índice Introducción. Formatos de Instrucción. Modos de Direccionamiento. Ortogonalidad y Regularidad. Frecuencia de Utilización de
Programación Estructurada
Programación Estructurada PROGRAMACIÓN ESTRUCTURADA 1 Sesión No. 2 Nombre: El lenguaje de programación C Contextualización Una constante en todos los lenguajes de programación (viejos y nuevos) es la implementación
Tema 5: La pila, las macros y los procedimientos
Tema 5: La pila, las macros y los procedimientos S La pila S Las macros S Definición de procedimientos S Tipos de procedimientos: NEAR y FAR S Paso de parámetros a un procedimiento S Mediante registros
Expresiones Aritméticas. Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz
Expresiones Aritméticas Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz Expresiones Aritméticas El computador puede realizar cálculos además de mostrar datos por pantalla.
Lenguajes de programación
Lenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa de computador es una secuencia de estas instrucciones Etapas
Arquitectura de Computadores II 8086 Parte II
8086 Parte II Facultad de Ingeniería Universidad de la República Instituto de Computación Contenido Funciones recursivas Manejadores de dispositivos Rutinas recursivas(1/10) Introducción Salvar contexto.
Tema 4: Ejemplo de un computador real: ATmegaX8PA. 8-bit Microcontroller
Tema 4: Ejemplo de un computador real: ATmegaX8PA 8-bit Microcontroller EdC-T4-AVR-v0 1 1. Introducción Índice 2. Descripción general 3. Arquitectura interna 4. Organización de memoria 5. Modos de direccionamiento
Constantes. Las constantes no cambian durante la ejecucion de un programa en C++, en C++ existen 4 tipos de constantes:
Constantes Las constantes se pueden declarar con la palabra reservada const y se le asigna un valor en el momento de la declaracion, este valor no se puede modificar durante el programa y cualquier intento
Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.
Variables Una variable no es más que un nombre simbólico que identifica una dirección de memoria: Suma el contenido de la posición 3001 y la 3002 y lo almacenas en la posición 3003 vs. total = cantidad1
Practica de PIC 16F84
Practica de PIC 16F84 Los PIC son circuitos que pueden controlar dispositivos y diferentes sistemas, son como los PLC (controles lógico programable), además debo decir que es un circuito que tiene todas
Ciclos de máquina. Otro ejemplo: decremento de un registro par (donde rp = HL, DE, BC, SP) DCX rp
Ciclos de máquina Otro ejemplo: decremento de un registro par (donde rp = HL, DE, BC, SP) DCX rp Acceso a periféricos: función del pin IO/M Este μp cuenta con dos instrucciones específicas para I/O, llamadas
Ficha de Aprendizaje N 13
Ficha de Aprendizaje N 13 Curso: Lógica y lenguaje de programación Tema: Fundamentos de programación Duración: 2 horas pedagógicas Logros de aprendizaje Identifica los diferentes tipos de operadores que
Arquitectura de Computadores II Clase #3
Clase #3 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Veremos Registros Repertorio de instrucciones Modos de direccionamiento El stack Formatos de datos Control
Construyendo Programas más Complejos
Arquitectura de Ordenadores Construcciones de Alto Nivel en Ensamblador Abelardo Pardo [email protected] Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Construyendo Programas más
Datos y tipos de datos
Datos y tipos de datos Dato Representación formal de hechos, conceptos o instrucciones adecuada para su comunicación, interpretación y procesamiento por seres humanos o medios automáticos. Tipo de dato
Fundamentos de Programación 2017-I
Fundamentos de Programación 2017-I Fundamentos para la construcción de código a partir del algoritmo Objetivo: El alumno construirá programas utilizando el lenguaje de programación C a través de un análisis
ENSAMBLADOR DE ARCHIVO TASM MASM NASM GAS. Características de un Ensamblador de Archivo
ENSAMBLADOR DE ARCHIVO TASM MASM NASM GAS Características de un Ensamblador de Archivo Traduce de Leng Ensamblador a Lenguaje máquina Permite definición de etiquetas Reserva memoria para variables octales
Estatutos de Control C# Estatutos de Decisión (Selección)
SELECCIÓN Estatutos de Control C# Estatutos de Decisión (Selección) IF Condición THEN Estatuto1 ELSE Estatuto2 Estatuto1 Statement Condición... Antes de ver esta presentación: Lee el Capítulo correspondiente
7. Modos de direccionamiento
El MC68000 permite 12 modos de direccionamiento para localizar a los operandos. Podemos dividir los modos de direccionamiento en 5 grupos: Directo de registro : el operando es el dato contenido en un registro
SISTEMAS OPERATIVOS Arquitectura de computadores
SISTEMAS OPERATIVOS Arquitectura de computadores Erwin Meza Vega [email protected] Esta presentación tiene por objetivo mostrar los conceptos generales de la arquitectura de los computadores, necesarios
TEMA III: OPERACIONES CON LOS DATOS
CUESTIONES A TRATAR: Cual es la función de la unidad operativa? Es necesaria? Qué tipos de circuitos implementan la unidad operativa? Unidad operativa frente a ALU Qué es una operación de múltiple precisión?
Tema 4. Operadores y Expresiones
Tema 4 Operadores y Expresiones Contenidos 1. Conceptos Básicos. 2. Operadores Aritméticos. 3. Operadores de Relación, de Igualdad y Lógicos. 4. Operadores de Incremento y Decremento. 5. Operadores y Expresiones
Análisis general de un Microprocesador
Análisis general de un Microprocesador Arquitectura del chip Repertorio de instrucciones Sistema mínimo Señales de control Función de cada pin del µp Herramientas de desarrollo Performance. ARQUITECTURA
Tema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía
Tema 3 SUBRUTINAS ÍNDICE Definición e instrucciones básicas Soporte para el tratamiento de subrutinas (ejecución de la subrutina y gestión del bloque de activación) Interrupciones vs llamadas a procedimiento
Tema 2. El lenguaje de programación Java (Parte 1)
Programación en Java Tema 2. El lenguaje de programación Java (Parte 1) Luis Rodríguez Baena Facultad de Informática Elementos del lenguaje (I) El juego de caracteres. No utiliza ASCII, sino Unicode de
Elementos léxicos del lenguaje de programación Java
Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Palabras reservadas Identificadores Literales Operadores Delimitadores Comentarios Apéndices Operadores
ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF
ESCUELA POLITÉCNICA SUPERIOR GRADO EN DISEÑO IND. INFORMÁTICA CURSO 2012-13 PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF HASTA AHORA... En prácticas anteriores se ha aprendido: La estructura principal de un
1.2.- EL MICROPROCESADOR.
1.2.- EL MICROPROCESADOR. El microprocesador es un circuito integrado que contiene algunos o todos los elementos necesarios para conformar una (o más) unidad central de procesamiento UCP, también conocido
Fundamentos de programación
Fundamentos de programación Estructuras de Control Estructuras de control Estructuras de control Estructura secuencial Estructura alternativa Sentencias if, if else Sentencias if else anidadas El operador
28/09/2012. Interfaz con Dispositivos de Salida. Interfaz con Dispositivos de Entrada. Port Mapped. Memory mapped. Interfaz con Dispositivos I/O
Interfaz con Dispositivos I/O Interfaz con Dispositivos de Salida y Salida Unidad 4, Segunda Parte Port Mapped Memory mapped 1 2 Ejecución de la Instrucción OUT Ejecución de la instrucción OUT Dirección
Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros
Práctica 3. Paso de parámetros entre subrutinas 1. Objetivo de la práctica El objetivo de esta práctica es que el estudiante se familiarice con la programación en ensamblador y el convenio de paso de parámetros
Arquitectura intel 8086. Preámbulo de OSO para alumnos formados en el procesador MIPS. Asignatura Sistemas Operativos Murcia abril de 2005
Arquitectura intel 8086 Preámbulo de OSO para alumnos formados en el procesador MIPS Asignatura Sistemas Operativos Murcia abril de 2005 página 1. Introducción 2 2.- Direccionamiento y Registros de Segmento
1 ELEMENTOS BASICOS DEL LENGUAJE
1 ELEMENTOS SICOS DEL LENGUJE Contenido: Variables su declaracion y asignacion Caracteres en java Secuencias de escape y comentarios Tipos de datos Operadores aritméticos, relacionales y lógicos Entrada
Práctica 4 - Arquitectura CPU
Práctica 4 - Arquitectura CPU Organización del Computador 1 1er. Cuatrimestre 2006 Programación en Assembler Ejercicio 1 Dados los siguientes valores de la memoria y del registro R0 de la arquitectura
Laboratorio de Arquitectura de Redes. Punteros en lenguaje C
Laboratorio de Arquitectura de Redes Punteros en lenguaje C Punteros en lenguaje C Definición Declaración e inicialización de punteros Operadores de punteros: «*» y «&» Operaciones con punteros Operaciones
Computación II. Introducción a Visual Basic
Computación II Introducción a Visual Basic Introducción a Visual Basic Microsoft Visual Basic es un conjunto de herramientas que posibilitan el desarrollo de aplicaciones para Windows de una manera rápida
Tema 3 Elementos básicos de programación
Representación de Datos y Aplicaciones Tema 3 Elementos básicos de programación Natividad Martínez Madrid [email protected] Objetivos del tema 3 Conocer la estructura básica de un programa Java Comprender
PROGRAMACIÓN EN C. PRÁCTICA 2: Operaciones con bits. Práctica 2: Índice. 2.1 Introducción 2.2 Representación de información binaria en C
PROGRAMACIÓN EN C PRÁCTICA 2: Operaciones con bits Práctica 2: Índice 2.1 Introducción 2.2 Representación de información binaria en C 2.3 Operando con bits en C 2.4 Máscaras 2.5 Desplazamientos 2.6 Ejercicios
Práctica 1. Introducción a la programación en ensamblador
Práctica 1 Introducción a la programación en ensamblador 1. Generalidades 2. Introducción 3. Cuestiones 1. Generalidades El desarrollo de las prácticas consistirá en una breve introducción del tema por
Datos y tipos de datos
Datos y tipos de datos Dato Representación formal de hechos, conceptos o instrucciones adecuada para su comunicación, interpretación y procesamiento por seres humanos o medios automáticos. Tipo de dato
ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES
Universidad Rey Juan Carlos ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES Repertorio de instrucciones y modos de direccionamiento: conceptos básicos Luis Rincón Córcoles Licesio J. Rodríguez-Aragón Programa
Tema 4. Lenguaje máquina y lenguaje ensamblador
Tema 4. Lenguaje máquina y lenguaje ensamblador Estructura de Computadores I. T. Informática de Gestión / Sistemas Curso 2008-2009 Transparencia: 2 / 47 Índice Introducción Juego de instrucciones Estructura
Bucles: o Bucles infinitos o Bucles finitos o Bucles anidados Medir tiempos con MPLAB Ejemplos y ejercicios
SISTEMAS ELECTRÓNICOS Y AUTOMÁTICOS PRACTICAS DE MICROCONTROLADORES PIC PRÁCTICA 3: Bucles Bucles: o Bucles infinitos o Bucles finitos o Bucles anidados Medir tiempos con MPLAB Ejemplos y ejercicios -
CONCEPTOS BASICOS DEL LENGUAJE JAVA
CONCEPTOS BASICOS DEL LENGUAJE JAVA NOMENCLATURA GENERAL En Java se distinguen las letras mayúsculas y minúsculas. Las reglas del lenguaje respecto a los nombres de variables son muy amplias y permiten
Programa Java. El lenguaje de programación Java. Comentarios. Programa Java. Palabras reservadas. Identificadores
El lenguaje de programación Java Programa Java Un programa Java está formado por un conjunto de clases que interactúan entre sí La clase es la unidad básica de programación La ejecución depende de la clase
