Size: a a a

Ассемблер

2020 January 31

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮ in Ассемблер
если эт на Fasm то мож идею какую и подскажу (с AVR незнаком)
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮ in Ассемблер
Alexander Stulov
Кто на AVR 8535 прогал? Возник вопрос по задаче массива.
и каков вопрос?
источник

AS

Alexander Stulov in Ассемблер
Да задаю макрос на AVR 8535, в AVR studio
источник

AS

Alexander Stulov in Ассемблер
;-----macros-------------------------—
.macro setSFR
ldi Acc0, @1
out @0, Acc0
.endm
источник

AS

Alexander Stulov in Ассемблер
Выдаёт ошибку, ломаю голову с чем связано
источник

ST

Saenro T in Ассемблер
Alexander Stulov
;-----macros-------------------------—
.macro setSFR
ldi Acc0, @1
out @0, Acc0
.endm
Вместо ldi не пробовал ld?
источник

AS

Alexander Stulov in Ассемблер
Тут нужны команды для  мк avr))
Потому  LDI
источник

AS

Alexander Stulov in Ассемблер
.include "m8535def.inc"
;-----definitions--------------------—
.def Acc0 = r16
.def Acc1 = r17
;-----macros-------------------------—
.macro setSFR
ldi Acc0, @1
out @0, Acc0
.endm
;------------------------------------—
.cseg
.org 0
rjmp Reset
.org 0x0B
rjmp UART_receive_int
.org 0x15
Reset:
sts counter, Acc0
lds
setSFR SPH, HIGH(RAMEND)
setSFR SPL, LOW(RAMEND)
rcall Init_ports
rcall Init_UART
rcall Send_string
rcall Init_7seg
sei
Loop:
rjmp Loop
;------------------------------------—
Init_UART:
setSFR UCSRA, (1«U2X)
setSFR UCSRB, (1«TXEN)|(1«RXEN)|(1«RXCIE)
setSFR UBRRL, 12
ret
;------------------------------------—
Send_UART:
out UDR, Acc0
UART_transmit_loop:
sbis UCSRA, UDRE
rjmp UART_transmit_loop
cbi UCSRA, UDRE
ret
;------------------------------------—
Send_string:
ldi ZH, HIGH(Text*2)
ldi ZL, LOW(Text*2)
Send_string_loop:
lpm Acc0, Z+
cpi Acc0, 0
breq End_send
rcall Send_UART
rjmp Send_string_loop
End_send:
ret
;--------------------------------------1444
UART_receive_int:
in Acc0, UDR
subi Acc0, 0x30
cpi Acc0, 10
brlo Add_address
reti
Add_address:
ldi ZH, HIGH(Indicator_symbols*2)
ldi ZL, LOW(Indicator_symbols*2)
add ZL, Acc0
brcc Send_symbol
inc ZH
Send_symbol:
lpm Acc0, Z
rcall Indicator
reti
;------------------------------------—
Indicator:
cbi PORTC,0
cbi PORTC,1
clr Acc1
Send_loop:
lsl Acc0
brcs Send1
rjmp Send0
Send1:
sbi PORTC,1
rjmp Strobe
Send0:
cbi PORTC,1
Strobe:
sbi PORTC,0
cbi PORTC,0
inc Acc1
cpi Acc1, 8
brne Send_loop
ret
;------------------------------------—
Init_ports:
setSFR DDRC, 0b00000011
ret
;------------------------------------—
Init_7seg:
ldi Acc0, 255
rcall Indicator
ldi Acc0, 255
rcall Indicator
ldi Acc0, 255
rcall Indicator
ldi Acc0, 255
rcall Indicator
ret
;------------------------------------—
Text:
.db "Hello, world!", 0
Indicator_symbols:
.db 0b11000000, 0b11111001, 0b10100100, 0b10110000, 0b10011001, 0b10010010, 0b10000010, 0b11111000, 0b10000000, 0b10010000
;------------------------------------—
.dseg
.org 0x00060
counter: .byte 1
array: .byte 100
источник

AS

Alexander Stulov in Ассемблер
Такая вот прога.
Уж думаю отказаться использовать макросы...
источник

AS

Alexander Stulov in Ассемблер
Выдает ошибку unexpected '\n'? типа перенос не в том месте
источник

AS

Alexander Stulov in Ассемблер
После того как задаю название макроса
источник

AS

Alexander Stulov in Ассемблер
Пишу в Avrstudio
источник

AS

Alexander Stulov in Ассемблер
И да, это старый, не поддерживаемый дляотладки avr 8535...
а не Atmega 8
источник

ST

Saenro T in Ассемблер
Если .endmacro
вместо .endm
источник

ST

Saenro T in Ассемблер
lds может ещё попробовать вместо ld / ldi?
источник

AS

Alexander Stulov in Ассемблер
Saenro T
Если .endmacro
вместо .endm
Saenro, не воспринимается .endmacro ))
источник

AS

Alexander Stulov in Ассемблер
Сменю hello world на имя того кто поможет довести до ума в итоговой )
источник

AS

Alexander Stulov in Ассемблер
Эх, чую что, придётся избавляться от макросов
источник

ST

Saenro T in Ассемблер
Вроде как макрос не закрыт
источник

ST

Saenro T in Ассемблер
Паранойя: чувствителен к регистру?
.MACRO setSFR
.ENDMACRO
источник