Код: Выделить всё
org 0
data0 equ 0x20
lenght equ strend-string
main: mov R0, #data0
mov R1, #string
mov R7, #lenght
loop: clr A
mov A, R1
movc A, @A+PC
mov @R0, A
inc R0
inc R1
djnz R7, loop
sjmp $
string: db 'Hello World'
strend:
endЯ нашел два плохих решения - посмотреть в листинге что там натранслировалось, и откорректировать часть адреса которая в A, второе - заставить ассемблер считать "коэффициент коррекции": Добавлена метка после MOVC, а в регистр R1 кладется результат выражения, составленного из меток. Так заработало.
Код: Выделить всё
org 0
data0 equ 0x20
lenght equ strend-string
main: mov R0, #data0
mov R1, #string-movc_a-main
mov R7, #lenght
loop: clr A
mov A, R1
movc A, @A+PC
movc_a: mov @R0, A
inc R0
inc R1
djnz R7, loop
sjmp $
string: db 'Hello World'
strend:
end