Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

01/04/2011 #1


Ayuda con programa en mplab
osea que entre las direcciones 10H y 1FH hay una tabla de datos de 8 bits sin signo. quiero escribir un programa que “le de la vuelta a la tabla”, es decir, que invierta su orden. El primer valor será ahora el ultimo, el segundo el penúltimo y así sucesivamente. La tabla invertida quedará en las mismas localidades de memoria.

soy nuevo en mplab y me gustaria que codigos utilizar para hacer ese racomodo.
01/04/2011 #2

Avatar de EINNER C

HOLA

primero, tienes que indicar en que lenguaje deseas hacerlo, asembler, c ?

saludos,,,,,
03/04/2011 #3


es lenguaje ensamblador
estos son los codigos que debo de utlizar

04/04/2011 #4

Avatar de gzaloprgm

En pseudocódigo:

for i = 0 to largo/2
swap(tabla[i], tabla[largo-i-1])
next i
04/04/2011 #5

Avatar de Basalto

gzaloprgm dijo: Ver Mensaje
En pseudocódigo:

for i = 0 to largo/2
swap(tabla[i], tabla[largo-i-1])
next i
No sabia que el ensambrador cambiara tanto!!!!!
04/04/2011 #6

Avatar de gzaloprgm

Basalto dijo: Ver Mensaje
No sabia que el ensambrador cambiara tanto!!!!!
1ero: El OP no dijo ensamblador de qué plataforma (dijo MPLAB pero cada familia de PICs tiene distintas instrucciones)
2do: Lo escribí bien claro,
EN PSEUDOCÓDIGO:
. Un buen programador debería poder entender un algoritmo esté en el lenguaje que esté.
3ro: Usando macros se puede "programar assembler" como si fuese basic
05/04/2011 #7


ESTE PROGRAMA ES USANDO MNEMONICOS, EJEMPLOO:

ADDWD F,D
ANDWF F,D
CLRF F
CLRW
COMF F,D
DECF F,D
DECFSZ F,D
INCF F,D
...

Y LOS DEMAS NNEMONICOS

ES PARA PROGRAMAR PIC DE LA FAMILIA 16

UNA IDEA QUE TENGO DE HACER ESTE PROGRAMA

a1 equ ox10 ;lo que estoy haciendo aki es poniendole un
a2 equ 0x11 ; nombre al valor que hay en la direccion 0x10 ( a1 =0x10)
a3 equ 0x12
a3 equ 0x13
a4 equ 0x14
a5 equ 0x15
a6 equ 0x16
a7 equ 0x17
a8 equ 0x18
a9 equ 0x19
a11equ 0x1A
a12 equ 0x1B
a13 equ 0x1C
a14 equ 0x1D
a15 equ 0x1E
a16 equ 0x1F

b1 equ 0x20 ; poniendole nombres a esas direcciones! de la localidad 20h al la localidad 2Fh
.
.
.
.
r16 equ 0x2F


; ahora lo que se haria es copiar los contenidos de a1 al a16 al b1 al b16 pero de forma que la tabla del a1 al a16 quede inversa al b1 al b16

w equ 0; pooniendo W el valor de cero!

movf a1,w ; copia el contenido de a1 y lo pone en w
movwf b16; copia el contenido de W y lo pone en b16

y asi se haria sucesivamente!

esta es una ideaaa, otro que tenga otra idea de como invetir la tabla de valoress???


saludoss! y gracias a todos aquellos que tratan de ayudarme.
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.