Вот например прерывание по SPI:
Код: Выделить всё
_spi_isr:
тект программы ...
return
Раз написано _spi_isr: значит должно быть написано где то выше
Код: Выделить всё
.org 0x18
rjmp _spi_isrно вот что то такого не видать.
Код: Выделить всё
_spi_isr:
тект программы ...
return
Код: Выделить всё
.org 0x18
rjmp _spi_isrКод: Выделить всё
;INTERRUPT VECTORS
RJMP __RESET
RJMP 0x00
RJMP 0x00
RJMP 0x00
RJMP 0x00
RJMP 0x00
RJMP 0x00
RJMP 0x00
RJMP 0x00
RJMP 0x00
RJMP 0x00
RJMP 0x00
RJMP 0x00
RJMP 0x00
RJMP _adc_isr
RJMP 0x00
RJMP 0x00
RJMP 0x00
RJMP 0x00
RJMP 0x00
RJMP 0x00MegaRazoR писал(а):... все равно не понятно могу ли я использовать любой регистр и следующий за ним в качестве операнда этой команды.
ошибаетесь. в MOVW можно использовать любые четные регистры в качестве указателя базы операндов.tych писал(а):наверно любой из 32-ух РОН
я использую AVR Studio, в комплекте с которой идет отличный справочный файл по ассемблеру. по-моему, самый лучший из всех виденных мною.MegaRazoR писал(а):откуда вы это знаете ? поделитесь секретом где это написано.
MegaRazoR писал(а):а для 16 битных то же самое ?
мне надо сбросить такой то регистр если в регистре Z (16 бит) заданное число.
Zanzib писал(а): ведь простите, это обучалка для начинающих, и такая небрежность настораживает.
tych писал(а):Zanzib писал(а): ведь простите, это обучалка для начинающих, и такая небрежность настораживает.
Да уж 1.5 года примерно пишем тут про ошибки и не меняют ни фига.
Код: Выделить всё
C:\AVR\tavrasm\tavrasm.exe -i code.asm -e output\listfile.lst -o output\hexfile.hex
pause=null Код: Выделить всё
.include "C:\AVR\avrasm\APPNOTES\2313def.inc" ;В данном случае, мы пишем для
;AT90s2313. Соответственно, и файл – 2313.
ldi R16,5 ;загрузка констант в регистры
ldi R17,7
and R16,R17 ;логическое «И» двух регистров
nop
;**********************************************************
; Всё прекрасно компилится и hex файл сбрасывается в папочку
; C:\AVR\AVR-Projects\tutorial\outputКод: Выделить всё
start:
cmp R17,0
breq qwe
out PortB,0b0000001
out PortB,0b0000000
dec R17
cmp R17,0
brec qwe
out PortB,0b0000001
out PortB,0b0000000
rjmp start
qwe:
cmp R16,0
breq konec
out PortB,0b0000001
out PortB,0b0000000
dec R16
rjmp qwe
konec:
.............