SlideShare ist ein Scribd-Unternehmen logo
1 von 33
jaime.velarde@epn.edu.ec 1 SISTEMAS MICROPROCESADOS INSTRUCCIONES DE TRANSFERENCIA DE LOS MICROCONTOLADORESATmega Elaborado por: Ing. Jaime E. Velarde
jaime.velarde@epn.edu.ec 2 RESUMEN DE LAS INSTRUCCIONES DE TRANSFERENCIA
jaime.velarde@epn.edu.ec 3 INFORMACIÓN DE LAS INSTRUCCIONES EL FABRICANTE PROPORCIONA LA SIGUIENTE INFORMACIÓN SOBRE LAS INSTRUCCIONES: EL MNEMÓNICO Y LOS OPERANDOS para la elaboración de los programas LA DESCRIPCIÓN en palabras LA OPERACIÓN simbólica que explica la acción o acciones que realiza EL CÓDIGO DE MÁQUINA en formato binario LAS BANDERAS que se afectan EL NUMERO DE CICLOS de reloj que se demora en la ejecución
jaime.velarde@epn.edu.ec 4 COPIAR REGISTROS  COPIA DE REGISTROS (R0 … R31) MNEMÓNICO:	MOVRd,Rr[1] OPERACIÓN:	Rd←Rr CÓDIGO:		0010 11rd ddddrrrr  COPIA DE PAREJAS DE REGISTROS (SE ESPECIFICAN SOLO REGISTROS PARES R0, R2 … R28, R30 ) MNEMÓNICO:	MOVWRd,Rr[1] OPERACIÓN:	Rd←Rr  Rd+1 ← Rr+1 CÓDIGO:		0000 0001 ddddrrrr
jaime.velarde@epn.edu.ec 5 EJEMPLOS PARA COPIAR REGISTROS MOVR5,R20; R5 ←R20 0010 1110 01010100 = 0x2E54 MOV	R31,R0	; R31 ← R0 0010 1101 11110000 = 0x2DF0 MOV	R8,R8		; R8 ← R8 0010 1100 10001000 = 0x2C88 MOVW   R30,R0; R30 ←R0  R31 ←R1 0000 0001 11110000 = 0x01F0 MOVW   R8,R18; R8 ← R18  R9 ← R19 0000 0001 01001001 = 0x0149 MOVW  R11,R22; R11 ← R22  R12 ← R23 0000 0001 dddd1011 = 0x01?B Error..!! No es un registro válido
jaime.velarde@epn.edu.ec 6 CARGAR A UN REGISTRO CON UN VALOR  EN UN REGISTRO (R16 … R31) SE CARGA UN VALOR DE 8 BITS (0 … 255) MNEMÓNICO:	LDIRd,K[1] OPERACIÓN:	Rd← K CÓDIGO:		1110 KKKKddddKKKK
jaime.velarde@epn.edu.ec 7 EJEMPLOS PARA CARGAR UN REGISTROS LDIR18,0x30; R18 ←0x30 1110 0011 00100000 = 0xE320 LDI	R19,30	; R19 ← 30 1110 0001 00111110 = 0xE13E LDI	R10,0xA6	; R10 ← 0xA6 1110 1010dddd0110 = 0xEA?6 LDI	R20,300	; R20 ← 300 1110 KKKK 0100KKKK = 0xE?4? LDI	R16,-100	; R18 ← -100 1110 1001 00001100 = 0xE90C Error..!! No es un registro válido Error..!! Operando fuera de rango
jaime.velarde@epn.edu.ec 8 CARGAR DESDE LA SRAMCON DIRECCIONAMIENTO DIRECTO  EN UN REGISTRO (R0 … R31) SE CARGA EL CONTENIDO DE UNA LOCALIDAD CON DIRECCIÓN k (0 … 65535), UTILIZANDO DIRECCIONAMIENTO DIRECTO MNEMÓNICO:	LDSRd,k[2] OPERACIÓN:	Rd← (k) CÓDIGO:		1001 000d dddd 0000 kkkkkkkkkkkkkkkk
jaime.velarde@epn.edu.ec 9 EJEMPLOS PARA CARGAR DESDE LA SRAM CON DIRECCIONAMIENTO DIRECTO LDSR18,0x13A	; R18 ←(0x13A) 0x9120  0x013A LDS	R19,0x13B		; R19 ← (0x13B) 0x9130  0x013B LDS	R6,0x2CF		; R6 ← (0x2CF) 0x9060  0x02CF LDS	R3,0x300		; R3 ← (0x300) 0x9030  0x0300 LDS	R25,0x800		; R25 ← (0x800) 0x9190  0x0800 Atención..!! Dirección fuera de rango
jaime.velarde@epn.edu.ec 10 CARGAR DESDE LA SRAM CON DIRECCIONAMIENTO INDIRECTO  EN UN REGISTRO (R0 … R31) SE CARGA DESDE UNA LOCALIDAD (0 … 65535), UTILIZANDO DIRECCIONAMIENTO INDIRECTO MNEMÓNICO:	LDRd,X[2] OPERACIÓN:	Rd← (X) CÓDIGO:		1001 000d dddd1100 MNEMÓNICO:	LDRd,Y[2] OPERACIÓN:	Rd← (Y) CÓDIGO:		1000 000d dddd 1000 MNEMÓNICO:	LDRd,Z[2] OPERACIÓN:	Rd← (Z) CÓDIGO:		1000 000d dddd 0000
jaime.velarde@epn.edu.ec 11 EJEMPLOS PARA CARGAR DESDE LA SRAM CON DIRECCIONAMIENTO INDIRECTO LDI	R27,0x01	; R27 ← 0x01 1110 0000 10110001 = 0xE0B1 LDI	R26,0x3A	; R26 ← 0x3A 1110 0011 10101010 = 0xE3AA LD	R18,X		; R18 ← (X)  R18 ← (0x013A) 1001 0001 0010 1100 = 0x912C Inicialización del Puntero X LDI	R29,0x01	; R27 ← 0x01 1110 0000 11010001 = 0xE0D1 LDI	R28,0x3B	; R26 ← 0x3A 1110 0011 11001011 = 0xE3CB LD	R19,Y		; R19 ← (Y)  R19 ← (0x013B) 1000 0001 0011 1000 = 0x8138 Inicialización del Puntero Y
jaime.velarde@epn.edu.ec 12 CARGAR DESDE LA SRAM CON DIRECCIONAMIENTO INDIRECTO Y CON POST INCREMENTO  EN UN REGISTRO (R0 … R31) SE CARGA DESDE UNA LOCALIDAD (0 … 65535), UTILIZANDO  DIRECCIONAMIENTO INDIRECTO Y EL PUNTERO SE INCREMENTA POSTERIORMENTE MNEMÓNICO:	LDRd,X+[2] OPERACIÓN:	Rd← (X)	 X ← X+1 CÓDIGO:	1001 000d dddd 1101 MNEMÓNICO:	LDRd,Y+[2] OPERACIÓN:	Rd← (Y) 	 Y ← Y+1 CÓDIGO:	1001 000d dddd 1001 MNEMÓNICO:	LDRd,Z+[2] OPERACIÓN:	Rd← (Z) 	 Z ← Z+1 CÓDIGO:	1001 000d dddd 0001
jaime.velarde@epn.edu.ec 13 EJEMPLOS PARA CARGAR DESDE LA SRAM CON POST INCREMENTO LDI	R27,0x01	; R27 ← 0x01 1110 0000 10110001 = 0xE0B1 LDI	R26,0x3A	; R26 ← 0x3A 1110 0011 10101010 = 0xE3AA LD	R18,X+	; R18 ← (X)  R18 ← (0x013A) X ← X+1 1001 0001 0010 1101 = 0x912D LD	R19,X+	; R19 ← (X)  R19 ← (0x013B) X ← X+1 1001 0001 0011 1101 = 0x913D Inicializa-ción del Puntero X
jaime.velarde@epn.edu.ec 14 CARGAR DESDE LA SRAM CON DIRECCIONAMIENTO INDIRECTO Y CON PRE DISMINUCIÓN  EN UN REGISTRO (R0 … R31) SE CARGA DESDE UNA LOCALIDAD (0 … 65535), UTILIZANDO  DIRECCIONAMIENTO INDIRECTO EN EL QUE EL PUNTERO PREVIAMENTE SE HA DISMINUIDO MNEMÓNICO:	LDRd,-X[2] OPERACIÓN:	X ← X-1Rd← (X) CÓDIGO:	1001 000d dddd 1110 MNEMÓNICO:	LDRd,-Y[2] OPERACIÓN:	Y ← Y-1Rd← (Y) CÓDIGO:	1001 000d dddd 1010 MNEMÓNICO:	LDRd,-Z[2] OPERACIÓN:	Z ← Z-1	Rd← (Z) CÓDIGO:	1001 000d dddd 0010
jaime.velarde@epn.edu.ec 15 EJEMPLOS PARA CARGAR DESDE LA SRAM CON PRE DISMINUCIÓN LDI	R29,0x01	; R27 ← 0x01 1110 0000 11010001 = 0xE0D1 LDI	R28,0x3C	; R26 ← 0x3C 1110 0011 11001100 = 0xE3CC LD	R19,-Y	; Y ← Y-1 R19 ← (Y)  R19 ← (0x013B) 1001 0001 0011 1010 = 0x913A LD	R18,-Y	; Y ← Y-1 R18 ← (Y)  R18 ← (0x013A) 1001 0001 0010 1010 = 0x912A Inicializa-ción del Puntero Y
jaime.velarde@epn.edu.ec 16 CARGAR DESDE LA SRAM CON DIRECCIONAMIENTO INDIRECTO Y CON DESPLAZAMIENTO  EN UN REGISTRO (R0 … R31) SE CARGA DESDE UNA LOCALIDAD (0 … 65535), UTILIZANDO DIRECCIONAMIENTO INDIRECTO AL QUE SE SUMA EL DESPLAZAMIENTO (0 … 63) MNEMÓNICO:	LDDRd,Y+q[2] OPERACIÓN:	Rd← (Y+q) CÓDIGO:		10q0 qq0d dddd 1qqq MNEMÓNICO:	LDDRd,Z+q[2] OPERACIÓN:	Rd← (Z+q) CÓDIGO:		10q0 qq0d dddd 0qqq
jaime.velarde@epn.edu.ec 17 EJEMPLOS PARA CARGAR DESDE LA SRAM CON DESPLAZAMIENTO LDI	R31,0x01	; R31 ← 0x01 1110 0000 11110001 = 0xE0F1 LDI	R30,0x3A	; R30 ← 0x3A 1110 0011 11101010 = 0xE3EA LDD	R19,Z+10	; R19 ← (Z+10)  R19 ← (0x0144) 1000 0101 0011 0010 = 0x8532 LDD	R18,Z+20	; R18 ← (Z+20)  R18 ← (0x014E) 1000 1001 0010 0100 = 0x8924 LDD	R1,Z+64	; R1 ← (Z+64)  R1 ← (0x017A) 10q0 qq00 0001 0qqq Inicializa-ción del Puntero Z Error..!! Desplazamiento fuera de rango
jaime.velarde@epn.edu.ec 18 ALMACENAR EN LA SRAMCON DIRECCIONAMIENTO DIRECTO  EN UNA LOCALIDAD CON DIRECCIÓN k (0 … 65535) UTILIZANDO DIRECCIONAMIENTO DIRECTO, SE ALMACENA EL CONTENIDO DE UN REGISTRO (R0 … R31) MNEMÓNICO:	STSk,Rr[2] OPERACIÓN:	(k) ←Rr CÓDIGO:		1001 001r rrrr 0000 kkkkkkkkkkkkkkkk
jaime.velarde@epn.edu.ec 19 EJEMPLOS PARA ALMACENAR EN LA SRAMCON DIRECCIONAMIENTO DIRECTO STS0x13A, R18	; (0x13A) ← R18  0x9320  0x013A STS	0x13B,R19		; (0x13B) ← R19   0x9330  0x013B STS	0x2CF,R6		; (0x2CF) ← R6  0x9260  0x02CF STS	0x300,R3		; (0x300) ← R3  0x9230  0x0300 STS	0x800,R25		; (0x800) ← R25  0x9390  0x0800 Atención..!! Dirección fuera de rango
jaime.velarde@epn.edu.ec 20 ALMACENAR EN LA SRAMCON DIRECCIONAMIENTO INDIRECTO  EN UNA LOCALIDAD (0 … 65535) UTILIZANDO DIRECCIONAMIENTO INDIRECTO, SE ALMACENA UN REGISTRO (R0 … R31) MNEMÓNICO:	STX,Rr[2] OPERACIÓN:	(X) ←Rr CÓDIGO:		1001 001r rrrr 1100 MNEMÓNICO:	STY,Rr[2] OPERACIÓN:	(Y) ←Rr CÓDIGO:		1000 001r rrrr 1000 MNEMÓNICO:	STZ,Rr[2] OPERACIÓN:	(Z) ←Rr CÓDIGO:		1000 001r rrrr 0000
jaime.velarde@epn.edu.ec 21 EJEMPLOS PARA ALMACENAR EN LA SRAMCON DIRECCIONAMIENTO INDIRECTO LDI	R27,0x01	; R27 ← 0x01 1110 0000 10110001 = 0xE0B1 LDI	R26,0x3A	; R26 ← 0x3A 1110 0011 10101010 = 0xE3AA ST	X,R18		; (X) ← R18  (0x013A) ← R18 1001 0011 0010 1100 = 0x932C Inicialización del Puntero X LDI	R29,0x01	; R27 ← 0x01 1110 0000 11010001 = 0xE0D1 LDI	R28,0x3B	; R26 ← 0x3A 1110 0011 11001011 = 0xE3CB ST	Y,R19		; (Y) ← R19  (0x013B) ← R19 1000 0011 0011 1000 = 0x8338 Inicialización del Puntero Y
jaime.velarde@epn.edu.ec 22 ALMACENAR EN LA SRAMCON DIRECCIONAMIENTO INDIRECTO Y CON POST INCREMENTO  EN UNA LOCALIDAD (0 … 65535) UTILIZANDO DIRECCIONAMIENTO INDIRECTO, SE ALMACENA UN REGISTRO (R0 … R31) Y EL PUNTERO SE INCREMENTA POSTERIORMENTE MNEMÓNICO:	STX+,Rr[2] OPERACIÓN:	(X) ←Rr	 X ← X+1 CÓDIGO:	1001 001r rrrr 1101 MNEMÓNICO:	STY+,Rr[2] OPERACIÓN:	(Y) ←Rr	 Y ← Y+1 CÓDIGO:	1001 001r rrrr1001 MNEMÓNICO:	STZ+,Rr[2] OPERACIÓN:	(Z) ←Rr	 Z ← Z+1 CÓDIGO:	1001 001r rrrr 0001
jaime.velarde@epn.edu.ec 23 EJEMPLOS PARA ALMACENAR EN LA SRAMCON POST INCREMENTO LDI	R27,0x01	; R27 ← 0x01 1110 0000 10110001 = 0xE0B1 LDI	R26,0x3A	; R26 ← 0x3A 1110 0011 10101010 = 0xE3AA ST	X+,R18	; (X) ← R18  (0x013A) ← R18  X ← X+1 1001 0011 0010 1101 = 0x932D ST	X+,R19	; (X) ← R19  (0x013B) ← R19  X ← X+1 1001 0011 0011 1101 = 0x933D Inicializa-ción del Puntero X
jaime.velarde@epn.edu.ec 24 ALMACENAR EN LA SRAMCON DIRECCIONAMIENTO INDIRECTO Y CON PRE DISMINUCIÓN  EN UNA LOCALIDAD (0 … 65535) UTILIZANDO DIRECCIONAMIENTO INDIRECTO EN EL QUE PREVIAMENTE SE HA DISMINUIDO EL PUNTERO, SE ALMACENA UN REGISTRO (R0 … R31) MNEMÓNICO:	ST-X,Rr[2] OPERACIÓN:	X ← X-1 (X) ←Rr CÓDIGO:	1001 001r rrrr 1110 MNEMÓNICO:	ST-Y,Rr[2] OPERACIÓN:	Y ← Y-1 (Y) ←Rr CÓDIGO:	1001 001r rrrr 1010 MNEMÓNICO:	ST-Z,Rr[2] OPERACIÓN:	Z ← Z-1	 (Z) ←Rr CÓDIGO:	1001 001r rrrr 0010
jaime.velarde@epn.edu.ec 25 EJEMPLOS PARA ALMACENAR EN LA SRAMCON PRE DISMINUCIÓN LDI	R29,0x01	; R27 ← 0x01 1110 0000 11010001 = 0xE0D1 LDI	R28,0x3C	; R26 ← 0x3C 1110 0011 11001100 = 0xE3CC ST	-Y,R19	; Y ← Y-1  (Y) ← R19  (0x013B) ← R19 1001 0011 0011 1010 = 0x933A ST	-Y,R18	; Y ← Y-1  (Y) ← R18  (0x013A) ← R18 1001 0011 0010 1010 = 0x932A Inicializa-ción del Puntero Y
jaime.velarde@epn.edu.ec 26 ALMACENAR EN LA SRAMCON DIRECCIONAMIENTO INDIRECTO Y CON DESPLAZMIENTO  EN UNA LOCALIDAD (0 … 65535) UTILIZANDO DIRECCIONAMIENTO INDIRECTO AL QUE SE SUMA EL DESPLAZAMIENTO (0 … 63), SE ALMACENA UN REGISTRO (R0 … R31) MNEMÓNICO:	STDY+q,Rr[2] OPERACIÓN:	(Y+q) ←Rr CÓDIGO:		10q0 qq1r rrrr 1qqq MNEMÓNICO:	STDZ+q,Rr[2] OPERACIÓN:	(Z+q) ←Rr CÓDIGO:		10q0 qq1r rrrr 0qqq
jaime.velarde@epn.edu.ec 27 EJEMPLOS PARA ALMACENAR EN LA SRAMCON DESPLAZAMIENTO LDI	R31,0x01	; R31 ← 0x01 1110 0000 11110001 = 0xE0F1 LDI	R30,0x3A	; R30 ← 0x3A 1110 0011 11101010 = 0xE3EA STD	Z+10,R19	; (Z+10) ← R19  (0x0144) ← R19 1000 0111 0011 0010 = 0x8732 STD	Z+20,R18	; (Z+20) ← R18  (0x014E) ← R18 1000 1011 0010 0100 = 0x8B24 STD	Z+64,R1	; (Z+64) ← R1  (0x017A) ← R1 10q0 qq10 0001 0qqq Inicializa-ción del Puntero Z Error..!! Desplazamiento fuera de rango
jaime.velarde@epn.edu.ec 28 CARGAR UN REGISTRO DESDE LA FLASH  EN UN REGISTRO SE CARGA DESDE UNA LOCALIDAD DE LA MEMORIA DEL PROGRAMA, UTILIZANDO DIRECCIONAMIENTO INDIRECTO MNEMÓNICO:	LPM[3] OPERACIÓN:	R0 ← (Z) CÓDIGO:		1001 0101 1100 1000 MNEMÓNICO:	LPMRd,Z[3] OPERACIÓN:	Rd← (Z) CÓDIGO:		1001 000d dddd 0100 MNEMÓNICO:	LPMRd,Z+[3] OPERACIÓN:	Rd← (Z)	Z ← Z+1 CÓDIGO:		1001 000d dddd 0101
jaime.velarde@epn.edu.ec 29 EJEMPLOS PARA CARGAR DESDE LA FLASH LDI	R31,0x03	; R31 ← 0x01 1110 0000 11110011 = 0xE0F3 LDI	R30,0x3A	; R30 ← 0x3A 1110 0001 11100000 = 0xE1E0 LPM	; R0 ← (Z)FLASH R0 ← (0x0310)FLASH 1001 0101 1100 1000 = 0x95C8 LPM	R7,Z		; R7 ← (Z)FLASH R7 ← (0x0310)FLASH 1001 0000 0111 0100 = 0x9074 LPM	R17,Z+	; R17 ← (Z)FLASH R17 ← (0x0310)FLASH ;  Z ← Z+1 1001 0001 0001 0101 = 0x9115 Inicializa-ción del Puntero Z
jaime.velarde@epn.edu.ec 30 TRANSFERIR ENTRE REGISTRO Y PÓRTICO  ENTRADA A UN REGISTRO (R0 … R31) DESDE UN PÓRTICO DE DIRECCIÓN A (0 … 63) MNEMÓNICO:	IN	Rd,A[1] OPERACIÓN:	Rd← I/O A CÓDIGO:		1011 0AAd ddddAAAA  SALIDA HACIA UN PÓRTICO (0 … 63) DESDE UN REGISTROS (R0 … R31) MNEMÓNICO:	OUTA,Rr[1] OPERACIÓN:	I/O A ←Rr CÓDIGO:		 1011 1AAr rrrrAAAA
jaime.velarde@epn.edu.ec 31 EJEMPLOS DE TRANSFERENCIAS CON PÓRTICOS IN	R16,0x00	; R16 ← PÓRTICO 0x00 1011 0001 00000000 = 0xB100 IN	R12,0x20	; R12 ← PÓRTICO 0x20 1011 0010 11000100 = 0xB2C4 OUT	0x02,R18	; PÓRTICO 0x02 ← R18 1011 1001 00100010 = 0xB922 OUT	0x1F,R9	; PÓRTICO 0x1F ← R9 1011 1010 10011111 = 0xBA9F OUT	0x50,R10	; PÓRTICO 0x50 ← R10  1011 1AA0 1010AAAA = 0xB?A? Error..!! Pórtico fuera de rango
jaime.velarde@epn.edu.ec 32 EJERCICIO QUE UTILIZA INSTRUCCIONES DE TRANSFERENCIA  Desarrollar un programa para el microcontrolador ATmega164P, para llenar las dieciséis primeras localidades de la memoria de datos, con los códigos ASCII del signo $, del número 1, de la letra F mayúscula y del número 4 en forma alternada, tal como se muestra en la siguiente lámina.
GRÁFICO DEL EJERCICIO  jaime.velarde@epn.edu.ec 33 0x24 es el ASCII del signo $, 0x31 es el ASCII del 1, 0x46 es el ASCII de la F y 0x34 es el ASCII del 4.

Weitere ähnliche Inhalte

Was ist angesagt?

04 Estructura de Buses Compartidos en Microcomputadoras
04 Estructura de Buses Compartidos en Microcomputadoras04 Estructura de Buses Compartidos en Microcomputadoras
04 Estructura de Buses Compartidos en MicrocomputadorasJaime E. Velarde
 
Fundamentos de Telecomunicaciones - Unidad 3 modulacion
Fundamentos de Telecomunicaciones - Unidad 3 modulacionFundamentos de Telecomunicaciones - Unidad 3 modulacion
Fundamentos de Telecomunicaciones - Unidad 3 modulacionJosé Antonio Sandoval Acosta
 
Tipos De Ensambladores
Tipos De EnsambladoresTipos De Ensambladores
Tipos De EnsambladoresSpiderHal
 
ensayo de la La nube
ensayo de la La nubeensayo de la La nube
ensayo de la La nubealex Acosta
 
Capas del modelo OSI y Protocolos que intervienen en cada capa
Capas del modelo OSI y Protocolos que intervienen en cada capaCapas del modelo OSI y Protocolos que intervienen en cada capa
Capas del modelo OSI y Protocolos que intervienen en cada capaaeross
 
Componentes de una red
Componentes de una redComponentes de una red
Componentes de una redjesusrodhs
 
Cuadro comparativo de SMBD
Cuadro comparativo de SMBD Cuadro comparativo de SMBD
Cuadro comparativo de SMBD Jazmin Glez.
 
Sistema De Gestión De Base De Datos
Sistema De Gestión De Base De DatosSistema De Gestión De Base De Datos
Sistema De Gestión De Base De DatosGuillermo Chirinos
 
Conectores, buses, zócalos y puertos
Conectores, buses, zócalos y puertosConectores, buses, zócalos y puertos
Conectores, buses, zócalos y puertosJimmy Torres
 
Estructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEstructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEustakiu Padilla
 
04 ccna principios baciscos de routers y enrrutamiento v3.1
04 ccna principios baciscos de routers y enrrutamiento v3.104 ccna principios baciscos de routers y enrrutamiento v3.1
04 ccna principios baciscos de routers y enrrutamiento v3.1Tania Escobar Méndez
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasYESENIA CETINA
 
Línea del tiempo sobre los Sistemas Gestores de Bases de Datos
Línea del tiempo sobre los Sistemas Gestores de Bases de DatosLínea del tiempo sobre los Sistemas Gestores de Bases de Datos
Línea del tiempo sobre los Sistemas Gestores de Bases de DatosAlejandra Caballero Quintero
 

Was ist angesagt? (20)

04 Estructura de Buses Compartidos en Microcomputadoras
04 Estructura de Buses Compartidos en Microcomputadoras04 Estructura de Buses Compartidos en Microcomputadoras
04 Estructura de Buses Compartidos en Microcomputadoras
 
Fundamentos de Telecomunicaciones - Unidad 3 modulacion
Fundamentos de Telecomunicaciones - Unidad 3 modulacionFundamentos de Telecomunicaciones - Unidad 3 modulacion
Fundamentos de Telecomunicaciones - Unidad 3 modulacion
 
Tipos De Ensambladores
Tipos De EnsambladoresTipos De Ensambladores
Tipos De Ensambladores
 
ensayo de la La nube
ensayo de la La nubeensayo de la La nube
ensayo de la La nube
 
Buses normalizados
Buses normalizadosBuses normalizados
Buses normalizados
 
Capas del modelo OSI y Protocolos que intervienen en cada capa
Capas del modelo OSI y Protocolos que intervienen en cada capaCapas del modelo OSI y Protocolos que intervienen en cada capa
Capas del modelo OSI y Protocolos que intervienen en cada capa
 
Arquitecturas de computadoras
Arquitecturas de computadorasArquitecturas de computadoras
Arquitecturas de computadoras
 
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADORUNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
 
Taller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 ConectividadTaller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 Conectividad
 
Arquitectura del cpu
Arquitectura del cpuArquitectura del cpu
Arquitectura del cpu
 
Componentes de una red
Componentes de una redComponentes de una red
Componentes de una red
 
Cuadro comparativo de SMBD
Cuadro comparativo de SMBD Cuadro comparativo de SMBD
Cuadro comparativo de SMBD
 
Sistema De Gestión De Base De Datos
Sistema De Gestión De Base De DatosSistema De Gestión De Base De Datos
Sistema De Gestión De Base De Datos
 
Conectores, buses, zócalos y puertos
Conectores, buses, zócalos y puertosConectores, buses, zócalos y puertos
Conectores, buses, zócalos y puertos
 
Estructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEstructura de lenguaje ensamblador
Estructura de lenguaje ensamblador
 
04 ccna principios baciscos de routers y enrrutamiento v3.1
04 ccna principios baciscos de routers y enrrutamiento v3.104 ccna principios baciscos de routers y enrrutamiento v3.1
04 ccna principios baciscos de routers y enrrutamiento v3.1
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadoras
 
Informe vlans
Informe vlansInforme vlans
Informe vlans
 
Línea del tiempo sobre los Sistemas Gestores de Bases de Datos
Línea del tiempo sobre los Sistemas Gestores de Bases de DatosLínea del tiempo sobre los Sistemas Gestores de Bases de Datos
Línea del tiempo sobre los Sistemas Gestores de Bases de Datos
 
Buses
BusesBuses
Buses
 

Andere mochten auch

Registros de control y estados de la CPU
Registros de control y estados de la CPURegistros de control y estados de la CPU
Registros de control y estados de la CPUIvan Porras
 
12 Pórticos de los Atmega
12 Pórticos de los Atmega12 Pórticos de los Atmega
12 Pórticos de los AtmegaJaime E. Velarde
 
06 Elaboración de Programas
06 Elaboración de Programas06 Elaboración de Programas
06 Elaboración de ProgramasJaime E. Velarde
 
Evaluation 1
Evaluation 1 Evaluation 1
Evaluation 1 kd6141
 
01 Diseño en Sistemas Digitales
01 Diseño en Sistemas Digitales01 Diseño en Sistemas Digitales
01 Diseño en Sistemas DigitalesJaime E. Velarde
 
Tema 3: Lógica Combinacional (II): Ruta de Datos.
Tema 3: Lógica Combinacional (II): Ruta de Datos.Tema 3: Lógica Combinacional (II): Ruta de Datos.
Tema 3: Lógica Combinacional (II): Ruta de Datos.Manuel Fernandez Barcell
 
16 Instrucciones de Subrutinas
16 Instrucciones de Subrutinas16 Instrucciones de Subrutinas
16 Instrucciones de SubrutinasJaime E. Velarde
 
15 Instrucciones Aritmeticas y Logicas
15 Instrucciones Aritmeticas y Logicas15 Instrucciones Aritmeticas y Logicas
15 Instrucciones Aritmeticas y LogicasJaime E. Velarde
 
03 Arquitectura de un Microprocesador
03 Arquitectura de un Microprocesador03 Arquitectura de un Microprocesador
03 Arquitectura de un MicroprocesadorJaime E. Velarde
 
Ejercicios 04 cálculo continuación
Ejercicios 04 cálculo continuaciónEjercicios 04 cálculo continuación
Ejercicios 04 cálculo continuaciónJaime E. Velarde
 
Transferencia de datos entre registros
Transferencia de datos entre registrosTransferencia de datos entre registros
Transferencia de datos entre registrosDaniel Zuluaga
 
Ejercicios 07 interrupciones
Ejercicios 07 interrupcionesEjercicios 07 interrupciones
Ejercicios 07 interrupcionesJaime E. Velarde
 
Ciclo de instrucciones CPU
Ciclo de instrucciones CPUCiclo de instrucciones CPU
Ciclo de instrucciones CPUEduardo Suarez
 
05 Ciclos de las Instrucciones
05 Ciclos de las Instrucciones05 Ciclos de las Instrucciones
05 Ciclos de las InstruccionesJaime E. Velarde
 
09 Conjunto de Instrucciones de los Atmega
09 Conjunto de Instrucciones  de los Atmega09 Conjunto de Instrucciones  de los Atmega
09 Conjunto de Instrucciones de los AtmegaJaime E. Velarde
 
02 Diagrama de Bloques de una Computadora
02 Diagrama de Bloques de una Computadora02 Diagrama de Bloques de una Computadora
02 Diagrama de Bloques de una ComputadoraJaime E. Velarde
 

Andere mochten auch (20)

Registros de control y estados de la CPU
Registros de control y estados de la CPURegistros de control y estados de la CPU
Registros de control y estados de la CPU
 
Transistor igbt
Transistor igbtTransistor igbt
Transistor igbt
 
12 Pórticos de los Atmega
12 Pórticos de los Atmega12 Pórticos de los Atmega
12 Pórticos de los Atmega
 
20 Portico Serial
20 Portico Serial20 Portico Serial
20 Portico Serial
 
06 Elaboración de Programas
06 Elaboración de Programas06 Elaboración de Programas
06 Elaboración de Programas
 
Evaluation 1
Evaluation 1 Evaluation 1
Evaluation 1
 
01 Diseño en Sistemas Digitales
01 Diseño en Sistemas Digitales01 Diseño en Sistemas Digitales
01 Diseño en Sistemas Digitales
 
Tema 3: Lógica Combinacional (II): Ruta de Datos.
Tema 3: Lógica Combinacional (II): Ruta de Datos.Tema 3: Lógica Combinacional (II): Ruta de Datos.
Tema 3: Lógica Combinacional (II): Ruta de Datos.
 
16 Instrucciones de Subrutinas
16 Instrucciones de Subrutinas16 Instrucciones de Subrutinas
16 Instrucciones de Subrutinas
 
Bus datos
Bus datosBus datos
Bus datos
 
15 Instrucciones Aritmeticas y Logicas
15 Instrucciones Aritmeticas y Logicas15 Instrucciones Aritmeticas y Logicas
15 Instrucciones Aritmeticas y Logicas
 
03 Arquitectura de un Microprocesador
03 Arquitectura de un Microprocesador03 Arquitectura de un Microprocesador
03 Arquitectura de un Microprocesador
 
Ejercicios 04 cálculo continuación
Ejercicios 04 cálculo continuaciónEjercicios 04 cálculo continuación
Ejercicios 04 cálculo continuación
 
Transferencia de datos entre registros
Transferencia de datos entre registrosTransferencia de datos entre registros
Transferencia de datos entre registros
 
Ejercicios 07 interrupciones
Ejercicios 07 interrupcionesEjercicios 07 interrupciones
Ejercicios 07 interrupciones
 
Compiladores teoria e implementacion
Compiladores teoria e implementacionCompiladores teoria e implementacion
Compiladores teoria e implementacion
 
Ciclo de instrucciones CPU
Ciclo de instrucciones CPUCiclo de instrucciones CPU
Ciclo de instrucciones CPU
 
05 Ciclos de las Instrucciones
05 Ciclos de las Instrucciones05 Ciclos de las Instrucciones
05 Ciclos de las Instrucciones
 
09 Conjunto de Instrucciones de los Atmega
09 Conjunto de Instrucciones  de los Atmega09 Conjunto de Instrucciones  de los Atmega
09 Conjunto de Instrucciones de los Atmega
 
02 Diagrama de Bloques de una Computadora
02 Diagrama de Bloques de una Computadora02 Diagrama de Bloques de una Computadora
02 Diagrama de Bloques de una Computadora
 

Ähnlich wie 10 Instrucciones de Transferencia

11 Instrucciones de Salto de los Atmega
11  Instrucciones de Salto  de los Atmega11  Instrucciones de Salto  de los Atmega
11 Instrucciones de Salto de los AtmegaJaime E. Velarde
 
Electrónica digital: sistemas secuenciales maquina de estado
Electrónica digital: sistemas secuenciales maquina de estadoElectrónica digital: sistemas secuenciales maquina de estado
Electrónica digital: sistemas secuenciales maquina de estadoSANTIAGO PABLO ALBERTO
 
Sistemas electronicos digitales
Sistemas electronicos digitalesSistemas electronicos digitales
Sistemas electronicos digitalesFrancesc Perez
 
13 Instrucciones de manejo de bits
13  Instrucciones de manejo de bits13  Instrucciones de manejo de bits
13 Instrucciones de manejo de bitsJaime E. Velarde
 
PDF ing. sumoso 2015 Etc2 0304 cs1
PDF ing. sumoso 2015 Etc2 0304 cs1PDF ing. sumoso 2015 Etc2 0304 cs1
PDF ing. sumoso 2015 Etc2 0304 cs1Jose Bondia
 
Modos de direccionamiento
Modos de direccionamientoModos de direccionamiento
Modos de direccionamientoJose Bondia
 
U2 FUNCION DE TRANSFERENCIA.pdf
U2 FUNCION DE TRANSFERENCIA.pdfU2 FUNCION DE TRANSFERENCIA.pdf
U2 FUNCION DE TRANSFERENCIA.pdfssusere26c75
 
⭐⭐⭐⭐⭐ SISTEMAS DIGITALES 1, SOLUCIÓN LECCIÓN 2do PARCIAL (2017 1er Término)
⭐⭐⭐⭐⭐ SISTEMAS DIGITALES 1, SOLUCIÓN LECCIÓN 2do PARCIAL (2017 1er Término)⭐⭐⭐⭐⭐ SISTEMAS DIGITALES 1, SOLUCIÓN LECCIÓN 2do PARCIAL (2017 1er Término)
⭐⭐⭐⭐⭐ SISTEMAS DIGITALES 1, SOLUCIÓN LECCIÓN 2do PARCIAL (2017 1er Término)Victor Asanza
 
CCNA I-II-III Exploration v4
CCNA I-II-III Exploration v4CCNA I-II-III Exploration v4
CCNA I-II-III Exploration v4cuty54
 
Lenguajes máquina y ensamblador
Lenguajes máquina y ensambladorLenguajes máquina y ensamblador
Lenguajes máquina y ensambladorJose Bondia
 
Aplicación reduce
Aplicación reduceAplicación reduce
Aplicación reduceeliasbadra
 
Lecture 11 precodificación y ecualización
Lecture 11 precodificación y ecualizaciónLecture 11 precodificación y ecualización
Lecture 11 precodificación y ecualizaciónnica2009
 
Sistema de controlooooooooooooooooooooooooooooooooooooooooooooooooo.pdf
Sistema de controlooooooooooooooooooooooooooooooooooooooooooooooooo.pdfSistema de controlooooooooooooooooooooooooooooooooooooooooooooooooo.pdf
Sistema de controlooooooooooooooooooooooooooooooooooooooooooooooooo.pdfIvan Castro Arteaga
 
Mecanismo de 3 barras
Mecanismo de 3 barrasMecanismo de 3 barras
Mecanismo de 3 barrasLaura Acero
 
Mecanismo de 3 barras
Mecanismo de 3 barrasMecanismo de 3 barras
Mecanismo de 3 barrasatypinilla23
 
463941896-1-4-Diseno-de-compensador-adelanto-atraso-y-controlador-PID-pptx (1...
463941896-1-4-Diseno-de-compensador-adelanto-atraso-y-controlador-PID-pptx (1...463941896-1-4-Diseno-de-compensador-adelanto-atraso-y-controlador-PID-pptx (1...
463941896-1-4-Diseno-de-compensador-adelanto-atraso-y-controlador-PID-pptx (1...David Mora Cusicuna
 

Ähnlich wie 10 Instrucciones de Transferencia (20)

11 Instrucciones de Salto de los Atmega
11  Instrucciones de Salto  de los Atmega11  Instrucciones de Salto  de los Atmega
11 Instrucciones de Salto de los Atmega
 
Electrónica digital: sistemas secuenciales maquina de estado
Electrónica digital: sistemas secuenciales maquina de estadoElectrónica digital: sistemas secuenciales maquina de estado
Electrónica digital: sistemas secuenciales maquina de estado
 
Sistemas electronicos digitales
Sistemas electronicos digitalesSistemas electronicos digitales
Sistemas electronicos digitales
 
13 Instrucciones de manejo de bits
13  Instrucciones de manejo de bits13  Instrucciones de manejo de bits
13 Instrucciones de manejo de bits
 
Ejercicio 01 Llenar
Ejercicio 01 LlenarEjercicio 01 Llenar
Ejercicio 01 Llenar
 
PDF ing. sumoso 2015 Etc2 0304 cs1
PDF ing. sumoso 2015 Etc2 0304 cs1PDF ing. sumoso 2015 Etc2 0304 cs1
PDF ing. sumoso 2015 Etc2 0304 cs1
 
Modos de direccionamiento
Modos de direccionamientoModos de direccionamiento
Modos de direccionamiento
 
U2 FUNCION DE TRANSFERENCIA.pdf
U2 FUNCION DE TRANSFERENCIA.pdfU2 FUNCION DE TRANSFERENCIA.pdf
U2 FUNCION DE TRANSFERENCIA.pdf
 
⭐⭐⭐⭐⭐ SISTEMAS DIGITALES 1, SOLUCIÓN LECCIÓN 2do PARCIAL (2017 1er Término)
⭐⭐⭐⭐⭐ SISTEMAS DIGITALES 1, SOLUCIÓN LECCIÓN 2do PARCIAL (2017 1er Término)⭐⭐⭐⭐⭐ SISTEMAS DIGITALES 1, SOLUCIÓN LECCIÓN 2do PARCIAL (2017 1er Término)
⭐⭐⭐⭐⭐ SISTEMAS DIGITALES 1, SOLUCIÓN LECCIÓN 2do PARCIAL (2017 1er Término)
 
CCNA I-II-III Exploration v4
CCNA I-II-III Exploration v4CCNA I-II-III Exploration v4
CCNA I-II-III Exploration v4
 
Lenguajes máquina y ensamblador
Lenguajes máquina y ensambladorLenguajes máquina y ensamblador
Lenguajes máquina y ensamblador
 
Matlab2
Matlab2Matlab2
Matlab2
 
Matlab2
Matlab2Matlab2
Matlab2
 
Aplicación reduce
Aplicación reduceAplicación reduce
Aplicación reduce
 
Lecture 11 precodificación y ecualización
Lecture 11 precodificación y ecualizaciónLecture 11 precodificación y ecualización
Lecture 11 precodificación y ecualización
 
Sistema de controlooooooooooooooooooooooooooooooooooooooooooooooooo.pdf
Sistema de controlooooooooooooooooooooooooooooooooooooooooooooooooo.pdfSistema de controlooooooooooooooooooooooooooooooooooooooooooooooooo.pdf
Sistema de controlooooooooooooooooooooooooooooooooooooooooooooooooo.pdf
 
Mecanismo de 3 barras
Mecanismo de 3 barrasMecanismo de 3 barras
Mecanismo de 3 barras
 
Mecanismo de 3 barras
Mecanismo de 3 barrasMecanismo de 3 barras
Mecanismo de 3 barras
 
463941896-1-4-Diseno-de-compensador-adelanto-atraso-y-controlador-PID-pptx (1...
463941896-1-4-Diseno-de-compensador-adelanto-atraso-y-controlador-PID-pptx (1...463941896-1-4-Diseno-de-compensador-adelanto-atraso-y-controlador-PID-pptx (1...
463941896-1-4-Diseno-de-compensador-adelanto-atraso-y-controlador-PID-pptx (1...
 
Ejercicio 09 Serie
Ejercicio 09 SerieEjercicio 09 Serie
Ejercicio 09 Serie
 

Mehr von Jaime E. Velarde

Mehr von Jaime E. Velarde (19)

Ejercicios 06 subrutinas con LCD continuación
Ejercicios 06 subrutinas con LCD continuaciónEjercicios 06 subrutinas con LCD continuación
Ejercicios 06 subrutinas con LCD continuación
 
Display de cristal líquido grágico GLCD
Display de cristal líquido grágico GLCDDisplay de cristal líquido grágico GLCD
Display de cristal líquido grágico GLCD
 
Ejercicios 06 subrutinas con LCD
Ejercicios 06 subrutinas con LCDEjercicios 06 subrutinas con LCD
Ejercicios 06 subrutinas con LCD
 
Funcionamiento del USART
Funcionamiento del USARTFuncionamiento del USART
Funcionamiento del USART
 
Ejercicio 08 CAD
Ejercicio 08 CADEjercicio 08 CAD
Ejercicio 08 CAD
 
Ejercicio 07 Timers
Ejercicio 07 TimersEjercicio 07 Timers
Ejercicio 07 Timers
 
Funcionamiento del Timer 0
Funcionamiento del Timer 0Funcionamiento del Timer 0
Funcionamiento del Timer 0
 
18 Timers
18 Timers18 Timers
18 Timers
 
Funcionamiento del CAD
Funcionamiento del CADFuncionamiento del CAD
Funcionamiento del CAD
 
Ejercicio 07 adicionales de Interrupciones
Ejercicio 07 adicionales de InterrupcionesEjercicio 07 adicionales de Interrupciones
Ejercicio 07 adicionales de Interrupciones
 
19 Conversor A/D
19 Conversor A/D19 Conversor A/D
19 Conversor A/D
 
17 Interrupciones
17 Interrupciones17 Interrupciones
17 Interrupciones
 
Ejercicio 05 Subrutinas
Ejercicio 05 SubrutinasEjercicio 05 Subrutinas
Ejercicio 05 Subrutinas
 
Ejercicio 04 Calculos
Ejercicio 04 CalculosEjercicio 04 Calculos
Ejercicio 04 Calculos
 
Ejercicio 03 Porticos
Ejercicio 03 PorticosEjercicio 03 Porticos
Ejercicio 03 Porticos
 
14 Fusibles Programables
14 Fusibles Programables14 Fusibles Programables
14 Fusibles Programables
 
Ejercicio 02 Tablas
Ejercicio 02 TablasEjercicio 02 Tablas
Ejercicio 02 Tablas
 
08 Memoria de los Atmega164P
08 Memoria de los Atmega164P08 Memoria de los Atmega164P
08 Memoria de los Atmega164P
 
07 Familia Atmega
07 Familia Atmega07 Familia Atmega
07 Familia Atmega
 

10 Instrucciones de Transferencia

  • 1. jaime.velarde@epn.edu.ec 1 SISTEMAS MICROPROCESADOS INSTRUCCIONES DE TRANSFERENCIA DE LOS MICROCONTOLADORESATmega Elaborado por: Ing. Jaime E. Velarde
  • 2. jaime.velarde@epn.edu.ec 2 RESUMEN DE LAS INSTRUCCIONES DE TRANSFERENCIA
  • 3. jaime.velarde@epn.edu.ec 3 INFORMACIÓN DE LAS INSTRUCCIONES EL FABRICANTE PROPORCIONA LA SIGUIENTE INFORMACIÓN SOBRE LAS INSTRUCCIONES: EL MNEMÓNICO Y LOS OPERANDOS para la elaboración de los programas LA DESCRIPCIÓN en palabras LA OPERACIÓN simbólica que explica la acción o acciones que realiza EL CÓDIGO DE MÁQUINA en formato binario LAS BANDERAS que se afectan EL NUMERO DE CICLOS de reloj que se demora en la ejecución
  • 4. jaime.velarde@epn.edu.ec 4 COPIAR REGISTROS COPIA DE REGISTROS (R0 … R31) MNEMÓNICO: MOVRd,Rr[1] OPERACIÓN: Rd←Rr CÓDIGO: 0010 11rd ddddrrrr COPIA DE PAREJAS DE REGISTROS (SE ESPECIFICAN SOLO REGISTROS PARES R0, R2 … R28, R30 ) MNEMÓNICO: MOVWRd,Rr[1] OPERACIÓN: Rd←Rr Rd+1 ← Rr+1 CÓDIGO: 0000 0001 ddddrrrr
  • 5. jaime.velarde@epn.edu.ec 5 EJEMPLOS PARA COPIAR REGISTROS MOVR5,R20; R5 ←R20 0010 1110 01010100 = 0x2E54 MOV R31,R0 ; R31 ← R0 0010 1101 11110000 = 0x2DF0 MOV R8,R8 ; R8 ← R8 0010 1100 10001000 = 0x2C88 MOVW R30,R0; R30 ←R0 R31 ←R1 0000 0001 11110000 = 0x01F0 MOVW R8,R18; R8 ← R18 R9 ← R19 0000 0001 01001001 = 0x0149 MOVW R11,R22; R11 ← R22 R12 ← R23 0000 0001 dddd1011 = 0x01?B Error..!! No es un registro válido
  • 6. jaime.velarde@epn.edu.ec 6 CARGAR A UN REGISTRO CON UN VALOR EN UN REGISTRO (R16 … R31) SE CARGA UN VALOR DE 8 BITS (0 … 255) MNEMÓNICO: LDIRd,K[1] OPERACIÓN: Rd← K CÓDIGO: 1110 KKKKddddKKKK
  • 7. jaime.velarde@epn.edu.ec 7 EJEMPLOS PARA CARGAR UN REGISTROS LDIR18,0x30; R18 ←0x30 1110 0011 00100000 = 0xE320 LDI R19,30 ; R19 ← 30 1110 0001 00111110 = 0xE13E LDI R10,0xA6 ; R10 ← 0xA6 1110 1010dddd0110 = 0xEA?6 LDI R20,300 ; R20 ← 300 1110 KKKK 0100KKKK = 0xE?4? LDI R16,-100 ; R18 ← -100 1110 1001 00001100 = 0xE90C Error..!! No es un registro válido Error..!! Operando fuera de rango
  • 8. jaime.velarde@epn.edu.ec 8 CARGAR DESDE LA SRAMCON DIRECCIONAMIENTO DIRECTO EN UN REGISTRO (R0 … R31) SE CARGA EL CONTENIDO DE UNA LOCALIDAD CON DIRECCIÓN k (0 … 65535), UTILIZANDO DIRECCIONAMIENTO DIRECTO MNEMÓNICO: LDSRd,k[2] OPERACIÓN: Rd← (k) CÓDIGO: 1001 000d dddd 0000 kkkkkkkkkkkkkkkk
  • 9. jaime.velarde@epn.edu.ec 9 EJEMPLOS PARA CARGAR DESDE LA SRAM CON DIRECCIONAMIENTO DIRECTO LDSR18,0x13A ; R18 ←(0x13A) 0x9120 0x013A LDS R19,0x13B ; R19 ← (0x13B) 0x9130 0x013B LDS R6,0x2CF ; R6 ← (0x2CF) 0x9060 0x02CF LDS R3,0x300 ; R3 ← (0x300) 0x9030 0x0300 LDS R25,0x800 ; R25 ← (0x800) 0x9190 0x0800 Atención..!! Dirección fuera de rango
  • 10. jaime.velarde@epn.edu.ec 10 CARGAR DESDE LA SRAM CON DIRECCIONAMIENTO INDIRECTO EN UN REGISTRO (R0 … R31) SE CARGA DESDE UNA LOCALIDAD (0 … 65535), UTILIZANDO DIRECCIONAMIENTO INDIRECTO MNEMÓNICO: LDRd,X[2] OPERACIÓN: Rd← (X) CÓDIGO: 1001 000d dddd1100 MNEMÓNICO: LDRd,Y[2] OPERACIÓN: Rd← (Y) CÓDIGO: 1000 000d dddd 1000 MNEMÓNICO: LDRd,Z[2] OPERACIÓN: Rd← (Z) CÓDIGO: 1000 000d dddd 0000
  • 11. jaime.velarde@epn.edu.ec 11 EJEMPLOS PARA CARGAR DESDE LA SRAM CON DIRECCIONAMIENTO INDIRECTO LDI R27,0x01 ; R27 ← 0x01 1110 0000 10110001 = 0xE0B1 LDI R26,0x3A ; R26 ← 0x3A 1110 0011 10101010 = 0xE3AA LD R18,X ; R18 ← (X)  R18 ← (0x013A) 1001 0001 0010 1100 = 0x912C Inicialización del Puntero X LDI R29,0x01 ; R27 ← 0x01 1110 0000 11010001 = 0xE0D1 LDI R28,0x3B ; R26 ← 0x3A 1110 0011 11001011 = 0xE3CB LD R19,Y ; R19 ← (Y)  R19 ← (0x013B) 1000 0001 0011 1000 = 0x8138 Inicialización del Puntero Y
  • 12. jaime.velarde@epn.edu.ec 12 CARGAR DESDE LA SRAM CON DIRECCIONAMIENTO INDIRECTO Y CON POST INCREMENTO EN UN REGISTRO (R0 … R31) SE CARGA DESDE UNA LOCALIDAD (0 … 65535), UTILIZANDO DIRECCIONAMIENTO INDIRECTO Y EL PUNTERO SE INCREMENTA POSTERIORMENTE MNEMÓNICO: LDRd,X+[2] OPERACIÓN: Rd← (X) X ← X+1 CÓDIGO: 1001 000d dddd 1101 MNEMÓNICO: LDRd,Y+[2] OPERACIÓN: Rd← (Y) Y ← Y+1 CÓDIGO: 1001 000d dddd 1001 MNEMÓNICO: LDRd,Z+[2] OPERACIÓN: Rd← (Z) Z ← Z+1 CÓDIGO: 1001 000d dddd 0001
  • 13. jaime.velarde@epn.edu.ec 13 EJEMPLOS PARA CARGAR DESDE LA SRAM CON POST INCREMENTO LDI R27,0x01 ; R27 ← 0x01 1110 0000 10110001 = 0xE0B1 LDI R26,0x3A ; R26 ← 0x3A 1110 0011 10101010 = 0xE3AA LD R18,X+ ; R18 ← (X)  R18 ← (0x013A) X ← X+1 1001 0001 0010 1101 = 0x912D LD R19,X+ ; R19 ← (X)  R19 ← (0x013B) X ← X+1 1001 0001 0011 1101 = 0x913D Inicializa-ción del Puntero X
  • 14. jaime.velarde@epn.edu.ec 14 CARGAR DESDE LA SRAM CON DIRECCIONAMIENTO INDIRECTO Y CON PRE DISMINUCIÓN EN UN REGISTRO (R0 … R31) SE CARGA DESDE UNA LOCALIDAD (0 … 65535), UTILIZANDO DIRECCIONAMIENTO INDIRECTO EN EL QUE EL PUNTERO PREVIAMENTE SE HA DISMINUIDO MNEMÓNICO: LDRd,-X[2] OPERACIÓN: X ← X-1Rd← (X) CÓDIGO: 1001 000d dddd 1110 MNEMÓNICO: LDRd,-Y[2] OPERACIÓN: Y ← Y-1Rd← (Y) CÓDIGO: 1001 000d dddd 1010 MNEMÓNICO: LDRd,-Z[2] OPERACIÓN: Z ← Z-1 Rd← (Z) CÓDIGO: 1001 000d dddd 0010
  • 15. jaime.velarde@epn.edu.ec 15 EJEMPLOS PARA CARGAR DESDE LA SRAM CON PRE DISMINUCIÓN LDI R29,0x01 ; R27 ← 0x01 1110 0000 11010001 = 0xE0D1 LDI R28,0x3C ; R26 ← 0x3C 1110 0011 11001100 = 0xE3CC LD R19,-Y ; Y ← Y-1 R19 ← (Y)  R19 ← (0x013B) 1001 0001 0011 1010 = 0x913A LD R18,-Y ; Y ← Y-1 R18 ← (Y)  R18 ← (0x013A) 1001 0001 0010 1010 = 0x912A Inicializa-ción del Puntero Y
  • 16. jaime.velarde@epn.edu.ec 16 CARGAR DESDE LA SRAM CON DIRECCIONAMIENTO INDIRECTO Y CON DESPLAZAMIENTO EN UN REGISTRO (R0 … R31) SE CARGA DESDE UNA LOCALIDAD (0 … 65535), UTILIZANDO DIRECCIONAMIENTO INDIRECTO AL QUE SE SUMA EL DESPLAZAMIENTO (0 … 63) MNEMÓNICO: LDDRd,Y+q[2] OPERACIÓN: Rd← (Y+q) CÓDIGO: 10q0 qq0d dddd 1qqq MNEMÓNICO: LDDRd,Z+q[2] OPERACIÓN: Rd← (Z+q) CÓDIGO: 10q0 qq0d dddd 0qqq
  • 17. jaime.velarde@epn.edu.ec 17 EJEMPLOS PARA CARGAR DESDE LA SRAM CON DESPLAZAMIENTO LDI R31,0x01 ; R31 ← 0x01 1110 0000 11110001 = 0xE0F1 LDI R30,0x3A ; R30 ← 0x3A 1110 0011 11101010 = 0xE3EA LDD R19,Z+10 ; R19 ← (Z+10)  R19 ← (0x0144) 1000 0101 0011 0010 = 0x8532 LDD R18,Z+20 ; R18 ← (Z+20)  R18 ← (0x014E) 1000 1001 0010 0100 = 0x8924 LDD R1,Z+64 ; R1 ← (Z+64)  R1 ← (0x017A) 10q0 qq00 0001 0qqq Inicializa-ción del Puntero Z Error..!! Desplazamiento fuera de rango
  • 18. jaime.velarde@epn.edu.ec 18 ALMACENAR EN LA SRAMCON DIRECCIONAMIENTO DIRECTO EN UNA LOCALIDAD CON DIRECCIÓN k (0 … 65535) UTILIZANDO DIRECCIONAMIENTO DIRECTO, SE ALMACENA EL CONTENIDO DE UN REGISTRO (R0 … R31) MNEMÓNICO: STSk,Rr[2] OPERACIÓN: (k) ←Rr CÓDIGO: 1001 001r rrrr 0000 kkkkkkkkkkkkkkkk
  • 19. jaime.velarde@epn.edu.ec 19 EJEMPLOS PARA ALMACENAR EN LA SRAMCON DIRECCIONAMIENTO DIRECTO STS0x13A, R18 ; (0x13A) ← R18 0x9320 0x013A STS 0x13B,R19 ; (0x13B) ← R19 0x9330 0x013B STS 0x2CF,R6 ; (0x2CF) ← R6 0x9260 0x02CF STS 0x300,R3 ; (0x300) ← R3 0x9230 0x0300 STS 0x800,R25 ; (0x800) ← R25 0x9390 0x0800 Atención..!! Dirección fuera de rango
  • 20. jaime.velarde@epn.edu.ec 20 ALMACENAR EN LA SRAMCON DIRECCIONAMIENTO INDIRECTO EN UNA LOCALIDAD (0 … 65535) UTILIZANDO DIRECCIONAMIENTO INDIRECTO, SE ALMACENA UN REGISTRO (R0 … R31) MNEMÓNICO: STX,Rr[2] OPERACIÓN: (X) ←Rr CÓDIGO: 1001 001r rrrr 1100 MNEMÓNICO: STY,Rr[2] OPERACIÓN: (Y) ←Rr CÓDIGO: 1000 001r rrrr 1000 MNEMÓNICO: STZ,Rr[2] OPERACIÓN: (Z) ←Rr CÓDIGO: 1000 001r rrrr 0000
  • 21. jaime.velarde@epn.edu.ec 21 EJEMPLOS PARA ALMACENAR EN LA SRAMCON DIRECCIONAMIENTO INDIRECTO LDI R27,0x01 ; R27 ← 0x01 1110 0000 10110001 = 0xE0B1 LDI R26,0x3A ; R26 ← 0x3A 1110 0011 10101010 = 0xE3AA ST X,R18 ; (X) ← R18  (0x013A) ← R18 1001 0011 0010 1100 = 0x932C Inicialización del Puntero X LDI R29,0x01 ; R27 ← 0x01 1110 0000 11010001 = 0xE0D1 LDI R28,0x3B ; R26 ← 0x3A 1110 0011 11001011 = 0xE3CB ST Y,R19 ; (Y) ← R19  (0x013B) ← R19 1000 0011 0011 1000 = 0x8338 Inicialización del Puntero Y
  • 22. jaime.velarde@epn.edu.ec 22 ALMACENAR EN LA SRAMCON DIRECCIONAMIENTO INDIRECTO Y CON POST INCREMENTO EN UNA LOCALIDAD (0 … 65535) UTILIZANDO DIRECCIONAMIENTO INDIRECTO, SE ALMACENA UN REGISTRO (R0 … R31) Y EL PUNTERO SE INCREMENTA POSTERIORMENTE MNEMÓNICO: STX+,Rr[2] OPERACIÓN: (X) ←Rr X ← X+1 CÓDIGO: 1001 001r rrrr 1101 MNEMÓNICO: STY+,Rr[2] OPERACIÓN: (Y) ←Rr Y ← Y+1 CÓDIGO: 1001 001r rrrr1001 MNEMÓNICO: STZ+,Rr[2] OPERACIÓN: (Z) ←Rr Z ← Z+1 CÓDIGO: 1001 001r rrrr 0001
  • 23. jaime.velarde@epn.edu.ec 23 EJEMPLOS PARA ALMACENAR EN LA SRAMCON POST INCREMENTO LDI R27,0x01 ; R27 ← 0x01 1110 0000 10110001 = 0xE0B1 LDI R26,0x3A ; R26 ← 0x3A 1110 0011 10101010 = 0xE3AA ST X+,R18 ; (X) ← R18  (0x013A) ← R18 X ← X+1 1001 0011 0010 1101 = 0x932D ST X+,R19 ; (X) ← R19  (0x013B) ← R19 X ← X+1 1001 0011 0011 1101 = 0x933D Inicializa-ción del Puntero X
  • 24. jaime.velarde@epn.edu.ec 24 ALMACENAR EN LA SRAMCON DIRECCIONAMIENTO INDIRECTO Y CON PRE DISMINUCIÓN EN UNA LOCALIDAD (0 … 65535) UTILIZANDO DIRECCIONAMIENTO INDIRECTO EN EL QUE PREVIAMENTE SE HA DISMINUIDO EL PUNTERO, SE ALMACENA UN REGISTRO (R0 … R31) MNEMÓNICO: ST-X,Rr[2] OPERACIÓN: X ← X-1 (X) ←Rr CÓDIGO: 1001 001r rrrr 1110 MNEMÓNICO: ST-Y,Rr[2] OPERACIÓN: Y ← Y-1 (Y) ←Rr CÓDIGO: 1001 001r rrrr 1010 MNEMÓNICO: ST-Z,Rr[2] OPERACIÓN: Z ← Z-1 (Z) ←Rr CÓDIGO: 1001 001r rrrr 0010
  • 25. jaime.velarde@epn.edu.ec 25 EJEMPLOS PARA ALMACENAR EN LA SRAMCON PRE DISMINUCIÓN LDI R29,0x01 ; R27 ← 0x01 1110 0000 11010001 = 0xE0D1 LDI R28,0x3C ; R26 ← 0x3C 1110 0011 11001100 = 0xE3CC ST -Y,R19 ; Y ← Y-1 (Y) ← R19  (0x013B) ← R19 1001 0011 0011 1010 = 0x933A ST -Y,R18 ; Y ← Y-1 (Y) ← R18  (0x013A) ← R18 1001 0011 0010 1010 = 0x932A Inicializa-ción del Puntero Y
  • 26. jaime.velarde@epn.edu.ec 26 ALMACENAR EN LA SRAMCON DIRECCIONAMIENTO INDIRECTO Y CON DESPLAZMIENTO EN UNA LOCALIDAD (0 … 65535) UTILIZANDO DIRECCIONAMIENTO INDIRECTO AL QUE SE SUMA EL DESPLAZAMIENTO (0 … 63), SE ALMACENA UN REGISTRO (R0 … R31) MNEMÓNICO: STDY+q,Rr[2] OPERACIÓN: (Y+q) ←Rr CÓDIGO: 10q0 qq1r rrrr 1qqq MNEMÓNICO: STDZ+q,Rr[2] OPERACIÓN: (Z+q) ←Rr CÓDIGO: 10q0 qq1r rrrr 0qqq
  • 27. jaime.velarde@epn.edu.ec 27 EJEMPLOS PARA ALMACENAR EN LA SRAMCON DESPLAZAMIENTO LDI R31,0x01 ; R31 ← 0x01 1110 0000 11110001 = 0xE0F1 LDI R30,0x3A ; R30 ← 0x3A 1110 0011 11101010 = 0xE3EA STD Z+10,R19 ; (Z+10) ← R19  (0x0144) ← R19 1000 0111 0011 0010 = 0x8732 STD Z+20,R18 ; (Z+20) ← R18  (0x014E) ← R18 1000 1011 0010 0100 = 0x8B24 STD Z+64,R1 ; (Z+64) ← R1  (0x017A) ← R1 10q0 qq10 0001 0qqq Inicializa-ción del Puntero Z Error..!! Desplazamiento fuera de rango
  • 28. jaime.velarde@epn.edu.ec 28 CARGAR UN REGISTRO DESDE LA FLASH EN UN REGISTRO SE CARGA DESDE UNA LOCALIDAD DE LA MEMORIA DEL PROGRAMA, UTILIZANDO DIRECCIONAMIENTO INDIRECTO MNEMÓNICO: LPM[3] OPERACIÓN: R0 ← (Z) CÓDIGO: 1001 0101 1100 1000 MNEMÓNICO: LPMRd,Z[3] OPERACIÓN: Rd← (Z) CÓDIGO: 1001 000d dddd 0100 MNEMÓNICO: LPMRd,Z+[3] OPERACIÓN: Rd← (Z) Z ← Z+1 CÓDIGO: 1001 000d dddd 0101
  • 29. jaime.velarde@epn.edu.ec 29 EJEMPLOS PARA CARGAR DESDE LA FLASH LDI R31,0x03 ; R31 ← 0x01 1110 0000 11110011 = 0xE0F3 LDI R30,0x3A ; R30 ← 0x3A 1110 0001 11100000 = 0xE1E0 LPM ; R0 ← (Z)FLASH R0 ← (0x0310)FLASH 1001 0101 1100 1000 = 0x95C8 LPM R7,Z ; R7 ← (Z)FLASH R7 ← (0x0310)FLASH 1001 0000 0111 0100 = 0x9074 LPM R17,Z+ ; R17 ← (Z)FLASH R17 ← (0x0310)FLASH ; Z ← Z+1 1001 0001 0001 0101 = 0x9115 Inicializa-ción del Puntero Z
  • 30. jaime.velarde@epn.edu.ec 30 TRANSFERIR ENTRE REGISTRO Y PÓRTICO ENTRADA A UN REGISTRO (R0 … R31) DESDE UN PÓRTICO DE DIRECCIÓN A (0 … 63) MNEMÓNICO: IN Rd,A[1] OPERACIÓN: Rd← I/O A CÓDIGO: 1011 0AAd ddddAAAA SALIDA HACIA UN PÓRTICO (0 … 63) DESDE UN REGISTROS (R0 … R31) MNEMÓNICO: OUTA,Rr[1] OPERACIÓN: I/O A ←Rr CÓDIGO: 1011 1AAr rrrrAAAA
  • 31. jaime.velarde@epn.edu.ec 31 EJEMPLOS DE TRANSFERENCIAS CON PÓRTICOS IN R16,0x00 ; R16 ← PÓRTICO 0x00 1011 0001 00000000 = 0xB100 IN R12,0x20 ; R12 ← PÓRTICO 0x20 1011 0010 11000100 = 0xB2C4 OUT 0x02,R18 ; PÓRTICO 0x02 ← R18 1011 1001 00100010 = 0xB922 OUT 0x1F,R9 ; PÓRTICO 0x1F ← R9 1011 1010 10011111 = 0xBA9F OUT 0x50,R10 ; PÓRTICO 0x50 ← R10 1011 1AA0 1010AAAA = 0xB?A? Error..!! Pórtico fuera de rango
  • 32. jaime.velarde@epn.edu.ec 32 EJERCICIO QUE UTILIZA INSTRUCCIONES DE TRANSFERENCIA Desarrollar un programa para el microcontrolador ATmega164P, para llenar las dieciséis primeras localidades de la memoria de datos, con los códigos ASCII del signo $, del número 1, de la letra F mayúscula y del número 4 en forma alternada, tal como se muestra en la siguiente lámina.
  • 33. GRÁFICO DEL EJERCICIO jaime.velarde@epn.edu.ec 33 0x24 es el ASCII del signo $, 0x31 es el ASCII del 1, 0x46 es el ASCII de la F y 0x34 es el ASCII del 4.