Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   ASM y Microcontroladores (https://www.clubdelphi.com/foros/forumdisplay.php?f=44)
-   -   Desamblar código *.hex (https://www.clubdelphi.com/foros/showthread.php?t=58278)

REHome 15-07-2008 04:40:57

Desamblar código *.hex
 
Hola:

Aquí tengo un código que hice muy pequeño.
He intentado desamblar alguno pero grande y no soy capaz de saber que PIC usa, ni configuración, sólo las instrucciones.

Los dejo aquí el código que hice muy pequeño a ver si alguien sabe desamblarlo y hacerlo funcionar en el MPLAB, lo he probado con v8.14. Al menos saber que hace este programa que hice.
Código:

:020000040000FA
:1000000083168601FF308500831286018501051C59
:0E0010000C28061386170728061786130728E4
:02400E00F13F80
:00000001FF

Saludos.

JoseFco 15-07-2008 11:41:56

Cita:

Empezado por REHome (Mensaje 300523)
Hola:

Aquí tengo un código que hice muy pequeño.
He intentado desamblar alguno pero grande y no soy capaz de saber que PIC usa, ni configuración, sólo las instrucciones.

Los dejo aquí el código que hice muy pequeño a ver si alguien sabe desamblarlo y hacerlo funcionar en el MPLAB, lo he probado con v8.14. Al menos saber que hace este programa que hice.
Código:

:020000040000FA
:1000000083168601FF308500831286018501051C59
:0E0010000C28061386170728061786130728E4
:02400E00F13F80
:00000001FF

Saludos.

Hola ReHome, no estoy en mi computador y no te puedo decir exactamente que hace ese codigo pero te dire que contiene.
En la primera linea tenamos dos bytes de data:

:02 address 0000 04 extended linear address y 00 00 son los dos bytes de data en BCI51 esto es hacer nada. 00 hacer nada. ????

:10 aqui nos dice que tenemos 16 bytes de data y que comenzara a estar localizada en el address 0000 algo raro pues esa address en la linea anterior esta ocupada ?? 00 esto es data record a partir del address (0000) esta es la data > 83 16 86 01 FF 30 85 00 83 12 86 01 85 01 05 1C estos son los 16 bytes de data validos es la segunda linea.

A la tarde cuando llegue a la casa terminare de explicarte que veo en ese codigo y que hace en realidad eso.

Un Saludo.

REHome 15-07-2008 16:43:39

Ok, esperaré, lo que no se es como sabes lo que dices por la cara.

JoseFco 15-07-2008 16:50:40

Cita:

Empezado por REHome (Mensaje 300583)
Ok, esperaré, lo que no se es como sabes lo que dices por la cara.

Hola REHome un intelhex file no es dificil de interpretar si conoces su formato.Dejame te paso una url que lo explica y luego cuando este en la casa lo paso a asm y te digo que hace exactamente.

Un Saludo.

JoseFco 15-07-2008 16:54:56

Dale una miradita a este link:Intelhex.

Un Saludo.

JoseFco 15-07-2008 22:25:31

Hola REHome, Esto es lo que contiene ese intelhex en data a programar:

:020000040000FA
:1000000083168601FF308500831286018501051C59
:0E0010000C28061386170728061786130728E4
:02400E00F13F80
:00000001FF

Primera Linea:

Address 0000 Data 00
0001 00 // a esto no le veo sentido:confused:

Segunda Linea:
Address 0000 Data 83
0001 16
0002 86
0003 01
0004 FF
0005 30
0006 85
0007 00
0008 83
0009 12
000A 86
000B 01
000C 85
000D 01
000E 05
000F 1C

Tercera Linea:
Address 0010 Data 0C
0011 28
0012 06
0013 13
0014 86
0015 17
0016 07
0017 28
0018 06
0019 17
001A 86
001B 13
001C 07
001D 28

Cuarta Linea:
Address 400E Data F1
400F 3F
La ultima linea es "End of line", no tiene valor en data a programar.

Para que tipo de uC fue creado este file, no tengo idea.Pero puedes estar seguro que no es BCI-51. Por lo cual no te puedo ayudar en eso.Solo trabajo la familia 8051 y sus parientes.;)

Si me dices como generastes este file, a lo mejor te puedo ayudar un poco mas.

Un Saludo.

REHome 16-07-2008 01:17:51

Lo generé del PIC 16F84A con el MPLAB v8.14

JoseFco 16-07-2008 01:25:42

Cita:

Empezado por REHome (Mensaje 300717)
Lo generé del PIC 16F84A con el MPLAB v8.14

Por eso no entiendo esos instruction opcodes. Yo de PIC se lo mismo que de astronomia= 0 :D

Pero no esta complicado, ya que segun tengo entendido ese chip solo trae 35 instruciones.Es cosa de obtener el instruction set para ese chip.

Un Saludo.

PD: El intelhex formato es igual para todos los chips, es unica su metrica.pero a la hora de interpretarla un chip, pues tiene que estar escrita para el.

JoseFco 16-07-2008 01:48:35

OK aqui tienes la informacion para poder interpretar ese opcode.
PIC 16F84A. En la pagina #36 de ese documento estan las 35 instruciones de ese chip. Si te fijas el 16F84A es un chip que funciona con 14 bits de instruciones.Yo la verdad es la primera vez que miro la informacion de este PIC y se me hace curioso.;)
No se porque quieres ir por la forma mas dificil de interpretar ese code, tienen que existir descompilador para ese chip.de todas formas el codigo no es muy grande y se puede hacer byte por byte.


PD: a ver si entra algun amigo que trabaje estos PIC y te hecha una mano con ese codigo.


Un Saludo.

REHome 17-07-2008 05:35:54

Hola amigo, la verdad que busqué algo para descompilarno sin comlicarte la vida y salió esto.

Código:

bsf status,rp0        ; switch to bank 1
        clrf trisb
        movlw FF        ; d'255' b'11111111' a''
        movwf trisa
        bcf status,rp0        ; switch to bank 0
        clrf portb
        clrf porta
lbl_2        btfss porta,0
        goto lbl_1        ; lbl_1 = 0xC
        bcf portb,6
        bsf portb,7
        goto lbl_2        ; lbl_2 = 0x7
lbl_1        bsf portb,6
        bcf portb,7
        goto lbl_2
ORG 0x2007
        addlw F1        ; d'241' b'11110001' a''

Lo que estaba buscando está aquí.

http://www.geocities.com/dinceraydin...sm/djdasm.html

Para que lo sepan.

¿Entiendes este asm? Seguro que algo si. con esto controla cualquier periférico.
Saludos.

JoseFco 17-07-2008 08:10:27

Hola REHome, El codigo para los PIC es completamente diferente a los uC que yo trabajo y si algo puedo entender en este codigo.El otro dia estube dandole una miradita a las instruciones del 16F84A y a pesar de solo usar 35 instruciones es algo engorroza la configuracion de los mismos.
Aqui estan los instruction codes del 8051 para que tengas una idea lo diferente que son y a pesar de que son 256 instruciones, estan configuradas en forma tal que no es dificil trabajarlas y entenderlas.

Un Saludo.

REHome 17-07-2008 22:54:53

Hola mi muy distinguido amigo:

Gracias por el Links http://www.win.tue.nl/~aeb/comp/8051/set8051.html

Dices que los pobres sólos 35 instrucciones son engorrosas y ese enlace veo que es más engorroso. Este PIC de de gama media de 8 Bits, las de Gama alta son de 77 + (hasta 84 con instrucciones especiales para cada PIC), los la serie 18F, las de 32 Bits mejor ni nombrarlas, las instrucciones son diferentes hasta los nombres y forma de programar.

Voy echar un vistazo ese enlace.

Saludos.

JoseFco 17-07-2008 23:05:32

Hola REHome, usando ese programita del link que proporcionas y tu intelhex:

Cita:

0 1683 bsf status,rp0 ; switch to bank 1
1 186 clrf trisb
2 30FF movlw FF ; d'255' b'11111111' a''
3 85 movwf trisa
4 1283 bcf status,rp0 ; switch to bank 0
5 186 clrf portb
6 185 clrf porta
7 1C05 lbl_2 btfss porta,0
8 280C goto lbl_1 ; lbl_1 = 0xC
9 1306 bcf portb,6
A 1786 bsf portb,7
B 2807 goto lbl_2 ; lbl_2 = 0x7
C 1706 lbl_1 bsf portb,6
D 1386 bcf portb,7
E 2807 goto lbl_2
ORG 0x2007
2007 3FF1 addlw F1 ; d'241' b'11110001' a''
Si te fijas estan los bytes de data que te dije anteriormente, solo que en el PIC como se programa modo serie de dos bytes en dos bytes (por aquello de las instruciones de 14 bits) pues entran primero el menos significante byte en el caso de los dos primeros bytes del codigo en la segunda linea 83 16 el resultado final es 16 83.;)
Lo que decia de la primera line que no le encontraba sentido, se pierde ( no deja rastro en el codigo final);)

Esta buena esa web y pues una herramienta muy util a los 16F84A.

Un Saludo.

JoseFco 18-07-2008 00:01:30

Cita:

Empezado por REHome (Mensaje 301187)
Hola mi muy distinguido amigo:

Gracias por el Links http://www.win.tue.nl/~aeb/comp/8051/set8051.html

Dices que los pobres sólos 35 instrucciones son engorrosas y ese enlace veo que es más engorroso. Este PIC de de gama media de 8 Bits, las de Gama alta son de 77 + (hasta 84 con instrucciones especiales para cada PIC), los la serie 18F, las de 32 Bits mejor ni nombrarlas, las instrucciones son diferentes hasta los nombres y forma de programar.

Voy echar un vistazo ese enlace.

Saludos.

Engorrosas para tratar de crear el ASM sin ayuda de un programa, a mano o a cara como te refieres.(con un papel ,un lapiz,tus ojos y usando tu mente)El codigo para un PIC 16F84A es una locura y un reto para cualguier experimentado.Alguien que lea este post dira y que sentido tiene tratar de hacer algo que un programita lo hace en unos segundos? mucha razon en eso.Pero existen algunos locos y me incluyo en esa lista que nos gustan estas cosas.Yo aprendi uC metiendo codigo hex dentro de ellos a mano 30 89 FD asi, el primer copilador fue uno de Systronic en Basico y ya para ese entonces era un experimentado en los 8051.
Los instruction codes para el 8051 tu los vez mas engorrosos y es lo que me pasa si trato de leer algo escrito en Chino(como es el caso de los PIC, no quiere decir que porque yo no entienda ese idioma es feo o no es bueno, simplemente que no puedo entender lo que no se.)Pero el codigo del 8051 a pesar de ser 256 funciones diferentes ,unas de ellas de 8 bits, 16 bits y 24 bits.Estan escritas en forma directa y usas todos los bits de un byte de instrucion.esto no pasa en el caso del 16F84A que no todos los bits de una instrucion son usados.Yo puedo ver un intelhex file escrito para un 8051 y sin la ayuda de un programa, pasarlo a ASM sin mucho problema.Esto como decia no es una practica comun, pero tiene sus ventajas tu poder leer el idioma que finalmente interpretan los uC y es que mirando un HEX te puedes dar cuenta de algun error.
Si algun dia incurcionas en los 8051 y sus parientes como lo son los Atmel 89xx te daras cuenta de lo que digo.;)

Un Saludo.

REHome 18-07-2008 03:09:05

Los AVR de Atmel, PIC de Microchip, Motorola ahora Freescale, la verdad todos microcontroladores de diferentes tecnologías que pueden hacer lo mismo si lo deseas. Aunque hay unos mejores que otros.

El 16F84A es ya anticuado, si caso es mejor el 16F88 o 16F876 o 16F876 de gama media, los de gama alta 18F2550, 18F4550 están muy bien y preparados para lenguajes como el C.

Los PIC se programa con un editor oficial gratuito, ahora ya por la v8.14, ahí puedes analizar el código paso por paso.

Ah, la primera vez lo vi engorroso y nunca pensaba que iba a manejar los PIC porque me parecían verdaderamente complicados, pero estudiando con un buen libro www.pic16F84a.com entenderás que puedes hacer mil cosas, eso si, el 8051 es mejor, el 16F84 es para aprender a entender, después eliges lo que quieras.

MPLAB por si siente curiosidad.

REHome 18-07-2008 03:11:31

Para que sepa como lo programé y d qué va.

Cita:


;************************************** PIC16F84A.asm ************************************
;Si el puerto A está activo o a 1, se desactiva el PORTB,6 y se activa PORTB,7
;Si el puerto o PORTA,0 está a 0, ocurre lo contrario.
; ZONA DE DATOS **********************************************************************

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC ; Configuración para el
; grabador.
LIST P=16F84A ; Procesador.
INCLUDE <P16F84A.INC> ; Definición de los operandos utilizados.

; ZONA DE CÓDIGOS ********************************************************************

ORG 0 ; El programa comienza en la dirección 0 de memoria de
Inicio ; programa.
bsf STATUS,RP0 ; Pone a 1 el bit 5 del STATUS. Acceso al Banco 1.
clrf PORTB ; Las líneas del Puerto B se configuran como salidas.
movlw b'11111111'
movwf PORTA ; Las líneas del Puerto A se configuran como entradas.
bcf STATUS,RP0 ; Pone a 0 el bit 5 de STATUS. Acceso al Banco 0.
clrf PORTB
clrf PORTA

Principal
btfss PORTA,0 ; ¿Bit 0 del PORTA es "1"?
goto hola
bcf PORTB,6 ; Desactiva el bit 6 del PORTB
bsf PORTB,7 ; activa el bit 7 del PORTB
goto Principal
hola
bsf PORTB,6 ; activa el bit 6 del PORTB
goto Principal
bcf PORTB,7
goto Principal ; Crea un bucle cerrado.
END ; Fin del programa.

donald shimoda 18-07-2008 04:35:41

Cita:

Empezado por REHome (Mensaje 301241)
El 16F84A es ya anticuado, si caso es mejor el 16F88 o 16F876 o 16F876 de gama media, los de gama alta 18F2550, 18F4550 están muy bien y preparados para lenguajes como el C.

Para pics tienes un potente compilador pascal mikropascal, muy recomendable. Para programas de hasta 2K en flash es gratuito.

En cuanto a que los 8051 son mejores, depende.Toda la línea de productos de mi emprea se maneja con PICS desde gama baja a alta y la calidad es excelente. Nunca tuvimos que reemplazar un pic a pesar de tener mas de 500 placas en la calle.

Saludos.

JoseFco 18-07-2008 05:56:51

Cita:

Empezado por REHome (Mensaje 301242)
Para que sepa como lo programé y d qué va.

Aqui en estas dos lineas de tu codigo:


Código PHP:

movlw b'11111111'
movwf PORTA Las líneas del Puerto A se configuran como entradas

movlw b'11111111' // aqui cargas el w (acumulador con el binario 11111111 todos los bits a 1

movwf PORTA // aqui mueves el contenido del acumulador (w) al puerto A, como dices pones el puerto A como entrada, al hacerle pullup interno al mismo.

En un codigo para 8051 esto seria:

MOV A, FFh o si lo deceas MOV A, b'11111111' es lo mismo pero en bin.

MOV P0, A // aqui movemos el contenido del acumulador (A) al puerto 0

Ya te digo yo creo mis programas en asm y solo uso un copilador para generar mi file intelhex. La mayoria de las veces solo uso un notepad y salvo mi file en .asm luego al copilarlo genero el .hex

Puede ser muy dificil para algunos y mirarce impocible para otros, es cuestion de practica.Yo creo una rutina en mi mente y la ruedo en ella, como si estubiera en un micro y si en mi mente funcionar, ten la seguridad de que en el micro rueda.;)


Un Saludo.

donald shimoda 18-07-2008 06:08:55

Cita:

Empezado por JoseFco (Mensaje 301253)
Aqui en estas dos lineas de tu codigo:
Código PHP:

movlw b'11111111'
movwf PORTA Las l&#237;neas del Puerto A se configuran como entradas. 

movlw b'11111111' // aqui cargas el w (acumulador con el binario 11111111 todos los bits a 1

movwf PORTA // aqui mueves el contenido del acumulador (w) al puerto A, como dices pones el puerto A como entrada, al hacerle pullup interno al mismo.

En realidad no. En los pics existe un registro de dirección (para el caso del puerto A seria TRISA) y un registro del puerto en sí (en este caso PORTA).

Ambos estan en la misma posición del banco 0 y 1, entonces como bien muestra el código para modificar el registro de dirección de las líneas (si serán de entrada o salida) lo que haces es acceder al banco 1.
Código:

bsf        STATUS,RP0 ; Pone a 1 el bit 5 del STATUS. Acceso al Banco 1.
Luego el código dice PORTA porque en realidad es el mismo valor (desplazado al banco 1) , pero el registro en realidad es el TRISA.

Nada tiene que ver el pullup interno.

Saludos.

JoseFco 18-07-2008 06:26:02

Cita:

Empezado por donald shimoda (Mensaje 301255)
En realidad no. En los pics existe un registro de dirección (para el caso del puerto A seria TRISA) y un registro del puerto en sí (en este caso PORTA).

Ambos estan en la misma posición del banco 0 y 1, entonces como bien muestra el código para modificar el registro de dirección de las líneas (si serán de entrada o salida) lo que haces es acceder al banco 1.
Código:

bsf    STATUS,RP0 ; Pone a 1 el bit 5 del STATUS. Acceso al Banco 1.
Luego el código dice PORTA porque en realidad es el mismo valor (desplazado al banco 1) , pero el registro en realidad es el TRISA.

Nada tiene que ver el pullup interno.

Saludos.

jajajajajaja TRISA es lo que tienes en los dedos cada vez que escribes algo compadre. Yo de PIC se lo mismo que de astronomia lo comente en un post anterior pero en el caso del 16F84 W es el registro acumulador y en esta instrucion( movlw b'11111111') esta cargando el acumulador con el valor FF hex o 11111111 bin para posteriormente cargar el porta con el valor del acumulador.(movwf PORTA )

eso mismo en codigo para un 8051 seria asi:

MOV A, #FFh
MOV PORT0, A

Te podre una tareita si la contesta seguimos hablando de micros:

Tarea: Usando instruciones para el 8051 creame el siguiente asm:

00110000 10001001 11111101 tienes tres bytes aqui con eso dime que asm se crearia en instruction opcode para un 8051?

Si me contestas eso seguimos hablando de micros.

Un Saludo.



donald shimoda 18-07-2008 06:38:40

Cita:

Empezado por JoseFco (Mensaje 301256)
jajajajajaja TRISA es lo que tienes en los dedos cada vez que escribes algo compadre.

:confused: Bueno, bueno, quedamos así.
Cita:

Empezado por JoseFco (Mensaje 301256)
Yo de PIC se lo mismo que de astronomia

Si se nota, por eso le estoy comentando al amigo como es el tema.
Cita:

Empezado por JoseFco (Mensaje 301256)
Te podre una tareita si la contesta seguimos hablando de micros:
[..]
Si me contestas eso seguimos hablando de micros.

No gracias. No se nada de 8051 ni me interesa saber. Imagínese conocer no uno sino toda una línea de microncontroladores y periféricos como la que provee Microchip , para que aprender algo de la prehistoria?
Igual gracias por la oferta.

De todas maneras, mi idea fue corregir algo que estaba mal planteado para no seguir mareando al amigo que pregunto y es básico para comprender el funcionamiento de un puerto en un PIC le estaba explicando al amigo como se configura la dirección de las líneas.
De eso si se como para hablar un rato. ;)

Saludos

JoseFco 18-07-2008 06:56:30

Cita:

Empezado por donald shimoda (Mensaje 301257)
:confused: Bueno, bueno, quedamos así.

Si se nota, por eso le estoy comentando al amigo como es el tema.


No gracias. No se nada de 8051 ni me interesa saber. Imagínese conocer no uno sino toda una línea de microncontroladores y periféricos como la que provee Microchip , para que aprender algo de la prehistoria?
Igual gracias por la oferta.

De todas maneras, mi idea fue corregir algo que estaba mal planteado para no seguir mareando al amigo que pregunto y es básico para comprender el funcionamiento de un puerto en un PIC le estaba explicando al amigo como se configura la dirección de las líneas.
De eso si se como para hablar un rato. ;)

Saludos


Lee el post #19 de este hilo y dime a quien le escribistes? Pence que se podia hablar contigo, despues de la breve charla de esta noche.Veo que lo que en realidad es de la prehistoria es esa fijacion que tienes de creerte "Tarzan cuando en realidad no llegas ni a la mona Chita." :D:D:D

Llegaras lejos aqui en este foro y no soy brujo.;)


PD:Te veo mas comemierda esta noche que ayer.;) y te dejo que estoy trabajando.

Un Saludito.

donald shimoda 18-07-2008 07:02:54

Cita:

Empezado por JoseFco (Mensaje 301258)
Lee el post #19 de este hilo y dime a quien le escribistes? Pence que se podia hablar contigo, despues de la breve charla de esta noche.Veo que lo que en realidad es de la prehistoria es esa fijacion que tienes de creerte "Tarzan cuando en realidad no llegas ni a la mona Chita." :D:D:D

Pero hermano es que usted el único lenguaje que conoce es el de la agresión. Respete hágame el favor, un hombre de 52 años y parece un mocoso de 12 por lo irrespetuoso.

Me pone condiciones para probar si se de algo o no y que si lo se hablamos, que risa por favor, ubíquese hombre que si eso no es creerse Tarzán entonces no se que es.. por favor.. aprenda a respetar.

Ya ni se si vale la pena contestar para otra vez aburrir a la gente. Que la persona que pregunto tome la parte técnica que le pase si le sirve. Del resto no entiendo que problema tiene este señor que cuando lo corrigen al estar equivocado en algo se ofusca.

JoseFco 18-07-2008 11:19:55

Cita:

Empezado por donald shimoda (Mensaje 301259)
Pero hermano es que usted el único lenguaje que conoce es el de la agresión. Respete hágame el favor, un hombre de 52 años y parece un mocoso de 12 por lo irrespetuoso.

Me pone condiciones para probar si se de algo o no y que si lo se hablamos, que risa por favor, ubíquese hombre que si eso no es creerse Tarzán entonces no se que es.. por favor.. aprenda a respetar.

Ya ni se si vale la pena contestar para otra vez aburrir a la gente. Que la persona que pregunto tome la parte técnica que le pase si le sirve. Del resto no entiendo que problema tiene este señor que cuando lo corrigen al estar equivocado en algo se ofusca.


Eres un fenomeno digno de estudiar.No se si podre hacer ajustes en mi agenda para hacerlo.:cool:

JoseFco 18-07-2008 11:53:26

Cita:

movlw b'11111111'
movwf PORTA ; Las líneas del Puerto A se configuran como entradas
.



MOVLW Description: The eight-bit literal 'k' is loaded into W register.

MOVWF Description: Move data from W register to register 'F'.

W = Working register (accumulator)



donald shimoda 18-07-2008 15:09:16

Cita:

Empezado por JoseFco (Mensaje 301283)
Eres un fenomeno digno de estudiar.No se si podre hacer ajustes en mi agenda para hacerlo.:cool:

Tienes toda la razón, como siempre. Por lo pronto antes de seguir jodiendo a la gente si tienes algo que decirme porque no usas el privado? Ya te envíe un mensaje que no has respondido. Es mas de caballeros.

REHome 18-07-2008 15:18:16

Tranquis...

JoseFco 18-07-2008 15:35:42

Cita:

Empezado por donald shimoda (Mensaje 301327)
Tienes toda la razón, como siempre. Por lo pronto antes de seguir jodiendo a la gente si tienes algo que decirme porque no usas el privado? Ya te envíe un mensaje que no has respondido. Es mas de caballeros.

Me estas empesando a caer bien.Pero "la gente"? creo que eso esta fuera del caldero.No soy caballero, mi titulo nobiliario es Conde.Lo que he tenido que decirte an sido cosas relacionadas con un post y pues nada mejor que el mismo lugar donde es necesaria una respuesta.Olvida eso de que tengo algo en tu contra, o algo que reclamarte.Solo he contestado algun que otro post en el que estoy de por medio.No pretendas que vea en ti mas importancia de la que en realidad tienes.;)

PD:Ahora te dejo que tengo que destapar un fosil con unos 8051 pre-historicos a ver si resuelvo algo.

Un Saludo.

donald shimoda 18-07-2008 15:45:30

Cita:

Empezado por REHome (Mensaje 301328)
Tranquis...

Lo mas importante es saber si te sirvió lo que te he comentado.

No se si recién comienzas con pics, si es así te dejo revisa este libro excelente de la empresa mikroe.

Saludos.

JoseFco 21-07-2008 00:43:58

Cita:

Te podre una tareita si la contesta seguimos hablando de micros:

Tarea: Usando instruciones para el 8051 creame el siguiente asm:


00110000 10001001 11111101 tienes tres bytes aqui con eso dime que asm se crearia en instruction opcode para un 8051?

Si me contestas eso seguimos hablando de micros.

Un Saludo.


Como no me gusta dejar algo sin terminar(pues hacemos la tareita)

0011 0000 =30 1000 1001 =89 1111 1101 =FD

tenemos 30 89 FD 30=JNB Function: Jump if Bit Not set.
89 es el bit RI este bit nos deja saber cuando un byte a sido recibido en el serial port. Set by hardware (1) clear by software (0).

entonces tenemos.

30 89 FD JNB RI,FD donde FD es la distancia a donde mandamos el "JUMP IF NOT SET"

Este byte es ignorado por los programadores, pues se supone que es la tarea del copilador.Pero cuando se programa sin ayuda de un copilador (entrando hex directo en las address de un uC se tiene que conocer esta metrica.)

XX XX XX 30 89 FD
FC FD FE FF En el lugar que se encuentre si nos desplazamos a la izquierda decimos que estamos en FF y si nos desplazamos a la derecha entonces decimos que estamos en 00

30 89 FD --->01 02 03 04 05 etc.

FA FB FC FD FE FF <--------

FD en la practica se remplaza por el nombre de una rutina:

GetChar:
JNB RI,GetChar


Tareita terminada.;)

Un Saludo.






REHome 17-08-2008 22:37:23

Me ha servido las ayudas. Veo que maneja mucho el 8051, está bien para aprender a manejar otros micros.


La franja horaria es GMT +2. Ahora son las 13:09:45.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi