Open Monti7475 opened 1 year ago
Hola @Monti7475 !
Efectivamente la ROM tiene 36 bits, pero al momento de trabajar en python, se espera que lo que se pase a bytearray
sea una lista con elementos tipo int
. Estos pueden ser expresados en base16 como el siguiente ejemplo:
rom_programmer.write(0, bytearray([0x0, 0x00, 0x30, 0x16, 0x01]))
Lo que es equivalente a usar base decimal como muestro a continuación:
rom_programmer.write(0, bytearray([0, 0, 48, 22, 1]))
Por tanto lo importante es que los bits más significativos sean representados como un valor entero. Aunque no sean de 8 bits como el resto de elementos su valor decimal será el mismo.
Ahora si tu programa hasta el momento como esta escrito requiere que todos tengan el mismo largo, recuerda que siempre puedes concatenar ceros a la izquierda y el valor será el mismo. Es decir si tienes algo del estilo:
111111111111111111111111111111111111 # Tiene 36 bits
0000111111111111111111111111111111111111 # Tiene 40 bits
Espero que eso aclare tu duda, de no ser así favor dejar un comentario en esta misma issue.
Saludos!
Como funciona el bytearray en el assembler? entiendo que los bytes van de 8 en 8, pero las instrucciones de la ROM tienen 36 bits, no 32/40 se trunca? O tiene que ver con la manera en que se construye en el ejemplo??