Inicio /
Wikis /
Apuntes /
Mini-Prácticas de programación ensamblador y en C para microcontroladores - Sumando en ensamblador con microcontroladores
1. Sumando en ensamblador con microcontroladores
programa 1
Citar; Este programa suma el contenido de las posiciones 0x0c y 0x0d
; de memoria y almacena el resultado en la posicion 0e.
LIST p= 16c84 ;Indica el modelo de PIC que se usa
;Es una directiva del ensamblador.
;
;Zona para etiquetas.
OPERANDO1 EQU 0x0c ;Define la posici¢n del operando1
OPERANDO2 EQU 0x0d ;Define la posici¢n del operando2
RESULTADO EQU 0x0e ;Define la posici¢n del resultado
;
ORG 0 ;Comando que indica al Ensamblador
;la direcci¢n de la memoria de programa
;donde situar la siguiente instrucci¢n
;
movlw 05 ; 5 -> W (Primera instrucci¢n)
movwf OPERANDO1 ; W -> OPERANDO1
movlw 02 ; 2 -> W
movwf OPERANDO2 ; W -> OPERANDO2
movfw OPERANDO1 ; OPERANDO1 -> W
addwf OPERANDO2,0 ; W + OPERANDO2 -> W
movwf RESULTADO ; W -> RESULTADO
END ; Directiva de fin de programa
programa 2
Citar; Optimizacion del primer programa que calcula la suma de 2
;posiciones de memoria y deja el resultado en una tercera.
;Estas posiciones son 0x0c para operando1, 0x0d para operando2 y 0x0e para
;el resultado.
;La optimizaci¢n consiste en ahorrar una instrucci¢n al aprovechar el hecho
;de que la suma es una operaci¢n conmutativa.De esta manera tras cargar en W
;el operando 2 se puede realizar directamente la suma.
LIST p= 16c84 ;Indica el modelo de PIC que se usa
;Es una directiva del ensamblador.
;
;Zona para etiquetas.
OPERANDO1 EQU 0x0c ;Define la posici¢n del operando1
OPERANDO2 EQU 0x0d ;Define la posici¢n del operando2
RESULTADO EQU 0x0e ;Define la posici¢n del resultado
;
ORG 0 ;Comando que indica al Ensamblador
;la direcci¢n de la memoria de programa
;donde situar la siguiente instrucci¢n
;
movlw 05 ;5 --> W (primera instrucci¢n)
movwf OPERANDO1 ;W --> Operando1
movlw 02 ;2 --> W
movwf OPERANDO2 ;W --> Operando2
addwf OPERANDO1,0 ;W + operando1 --> W
movwf RESULTADO ;W --> resultado
END ;directiva de fin del programa
programa 3
Citar; Este programa suma el contenido de las posiciones 0c y 0d de memoria y
; almacena el resultado en la misma posici¢n 0d.
LIST p= 16C84 ; Para PIC 16C84
;
OPERANDO1 EQU 0x0C ; Define la posici¢n del operando 1
OPERANDO2 EQU 0x0D ; Define la posici¢n del operando 2
; y del resultado
;
ORG 0 ; Direcci¢n de inicio del programa
;
movlw 02 ; 2 -> W
movwf OPERANDO2 ; W -> OPERANDO2
movlw 05 ; 5 -> W
movwf OPERANDO1 ; W -> OPERANDO1 ( Operando1 est en W y en 0x0C)
addwf OPERANDO2,1 ; OPERANDO2 + W -> Operando2
END ; Directiva de fin de programa
sumando en C
Citar/* Programa que suma el contenido de dos variables en memoria y almacena */
/* el resultado en una tercera variable de resultado. */
#include <16c84.h>
void main( void )
{
int operando1 = 5, operando2 = 2, resultado;
resultado = operando1 + operando2;
}
Autor y licencia de 'Mini-Prácticas de programación ensamblador y en C para microcontroladores - Sumando en ensamblador con microcontroladores'
BADBYTE-K Extraído de: http://foro.elhacker.net/index.php/topic,43897.0.html
Esta obra está bajo una licencia de Creative Commons.
|
|
|
|
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
|
|
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.
|
|
Wikis relacionados con 'Mini-Prácticas de programación ensamblador y en C para microcontroladores - Sumando en ensamblador con microcontroladores'
Con este humilde artículo espero facilitar la comprensión del Inline Assembly en Gcc. Si bien...
Más »
Las investigaciones históricas han comprobado que el petróleo, o aceite mineral (petrae = piedra y...
Más »
Según Philip Kotler, la relación comercial puede ser de diferentes tipos. Con la terminología de...
Más »
A partir de tres tesis que se enmarcarían de la siguiente forma: a) la omnipresencia...
Más »
Ken Thompson y Dennis Ritchie decidieron esbozar un sistema operativo que supliera las necesidades de...
Más »
¿Estás seguro de que deseas eliminar este capítulo?