Tengo el siguiente programa, en ensamblaje AVR:
.DEF WR = R16
.ORG 0
SER WR
OUT 0x24, WR
Cuando llamo avr-as beeep.s
, donde beeep.s contiene el código anterior, aparece un mensaje de error:
beeep.s: Assembler messages:
beeep.s:1: Error: unknown pseudo-op: `.def'
beeep.s:5: Error: constant value required
beeep.s:5: Error: register number above 15 required
beeep.s:6: Error: constant value required
No puedo encontrar el origen de mi error... ¿Qué hice mal?
Cambiar .DEF
con .EQU
:
.EQU WR, R16
.ORG 0
SER WR
OUT 0x24, WR
Como se describe en http://www.nongnu.org/avr-libc/user-manual/assembler.html , uno NO debe usar avr-as directamente, sino usar avr-gcc en su lugar.
Por ejemplo: avr-gcc -mmcu=atmega8 -x ensamblador-con-cpp ejemplo.s
Consulte la Nota [2] del programa de ejemplo en la página para ver cómo asignar un nombre simbólico al registro.
Eugenio Sh.
avrasm
con GNUas
, que parece tener directivas diferentes (que no son instrucciones de máquina sino "pseudo-ops").espirina
Eugenio Sh.
espirina
.dev
está en este conjunto de instrucciones, y aparece el mismo mensaje de error cuando lo reemplazo.DEV
con.dev
...Eugenio Sh.
espirina
Eugenio Sh.
espirina
Eugenio Sh.
espirina