реклама на сайте
подробности

 
 
> Warning[18]:, END of program while in include file C:\
Fynjy86
сообщение Apr 3 2008, 10:23
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 24-03-08
Пользователь №: 36 192



Есть такая программка:
NAME slave
PUBLIC slave

slave:
RSEG CODE
MEM0: MOV.W #1100h, R12
MOV.W #0000h, R11
MOV.W #2100h, R13
MEMZERO: MOV.W @R11, 0(R12)
INCD.W R12
CMP R13,R12
JL MEMZERO
nop
RETI
END
она лежит в отдельном файлике и вызывается командой CALL из главной программы.
Вроде должно работать, но выдаётся ошибка:
Warning[18]: END of program while in include file C:\Document\..\mem0.s43
и
Error[e6]: Program module slave redeclared in file C:\Document\..\mem0.s43
Где и что нужно поправить?? maniac.gif
Go to the top of the page
 
+Quote Post
2 страниц V  < 1 2  
Start new topic
Ответов (15 - 19)
Fynjy86
сообщение Apr 3 2008, 12:08
Сообщение #16


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 24-03-08
Пользователь №: 36 192



Цитата(gotty @ Apr 3 2008, 15:00) *
А где же адрес 0x403C ? и как туда переходит программа?
P.S. останавливать WDT лучше в самом начале программы

по адресу 403Сh 0000 а как прога туда попадает предстаить не могу 07.gif
если отказаться от идеи использовать вызов подпрограммы, то всё работает...
но вопрос-то не решен...
Go to the top of the page
 
+Quote Post
msalov
сообщение Apr 3 2008, 12:11
Сообщение #17


Знающий
****

Группа: Свой
Сообщений: 526
Регистрация: 24-08-07
Из: Беларусь, Минск
Пользователь №: 30 045



Цитата(Fynjy86 @ Apr 3 2008, 15:08) *
по адресу 403Сh 0000 а как прога туда попадает предстаить не могу 07.gif
если отказаться от идеи использовать вызов подпрограммы, то всё работает...
но вопрос-то не решен...

lol.gif
Ваша программа берёт из стека адрес возврата из подпрограммы, а всю оперативную память вы только что очистили a14.gif
Go to the top of the page
 
+Quote Post
Fynjy86
сообщение Apr 3 2008, 12:39
Сообщение #18


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 24-03-08
Пользователь №: 36 192



07.gif а программа отчистки даже не начинается wink.gif выдовая ошибку на команде CALL
но косяк с отчисткой стека я уже убрал, не отчищая последние 10 байт оперативы(они под стек оставленны)

Решил обмануть сделал:
; call MEM0
MOV PC, SP
jmp 2190h (адрес подпрограммы)
всё чистит нормально...
баян
таже ошибка, только адрес чуть меньше...
останавливается на этой строчке
INCD.W R12

Сообщение отредактировал Fynjy86 - Apr 3 2008, 12:31
Go to the top of the page
 
+Quote Post
msalov
сообщение Apr 3 2008, 13:13
Сообщение #19


Знающий
****

Группа: Свой
Сообщений: 526
Регистрация: 24-08-07
Из: Беларусь, Минск
Пользователь №: 30 045



Цитата(Fynjy86 @ Apr 3 2008, 14:52) *
call MEM0
002154 1290 003A call MEM0

Мне кажется вам тут надо использовать другой способ адресации.
а именно
Код
call #MEM0


Цитата(Fynjy86 @ Apr 3 2008, 15:39) *
jmp 2190h (адрес подпрограммы)
И тут тоже
Код
jmp #2190h (адрес подпрограммы)
Go to the top of the page
 
+Quote Post
Fynjy86
сообщение Apr 3 2008, 13:26
Сообщение #20


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 24-03-08
Пользователь №: 36 192



Цитата(gotty @ Apr 3 2008, 16:13) *
Мне кажется вам тут надо использовать другой способ адресации.
а именно
Код
call #MEM0


И тут тоже
Код
jmp #2190h (адрес подпрограммы)

beer.gif
jmp #2190h - ерунда....
а #MEM0 работает!!!! огромное спасибо!!! a14.gif a14.gif a14.gif


значёк # не пропечатан в книге, тоько если знаешь, что он там есть, можно догадаться... блин, столько времени убил...

Сообщение отредактировал Fynjy86 - Apr 3 2008, 13:21
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 06:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.01378 секунд с 7
ELECTRONIX ©2004-2016