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

 
 
 
Reply to this topicStart new topic
> Command Counter
ILYAUL
сообщение Oct 7 2011, 17:06
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Всем привет!
Как можно его "вытащить" и запомнить (EEPROM SRAM) из основной программы. Т.е в определённый момент запомнить ( не важно какой) , задачу отложить , и вернутся к ней при необходимости. И это не подпрограммы и прерывания.


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 7 2011, 17:09
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Program Counter, надо полагать? Выполнить call или вызвать прерывание и достать из стека.
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Oct 7 2011, 17:23
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



QUOTE (aaarrr @ Oct 7 2011, 21:09) *
Program Counter, надо полагать? Выполнить call или вызвать прерывание и достать из стека.

Да, его . Мне тоже в голову приходило , выполнить "пустышку" rcall , думал может ещё есть способ. СПАСИБО!!


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Oct 8 2011, 12:28
Сообщение #4


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(ILYAUL @ Oct 7 2011, 21:23) *
...выполнить "пустышку" rcall , думал может ещё есть способ..


этот подход самый оптимальный похоже. по крайней мере он входил в "класические" методы работы вирусов ышо аж под досом и иже.. вызываете метку, идущей сразу за коллом. потом два попа, в нужную ячейку сохраняете ну и относитеьно этого смещения и плюсуете все дефайн константы(до нужных данных или кода) относительно этой метки.

удачи вам
(круглый)
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Oct 13 2011, 20:46
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



QUOTE (kolobok0 @ Oct 8 2011, 16:28) *
этот подход самый оптимальный похоже. по крайней мере он входил в "класические" методы работы вирусов ышо аж под досом и иже.. вызываете метку, идущей сразу за коллом. потом два попа, в нужную ячейку сохраняете ну и относитеьно этого смещения и плюсуете все дефайн константы(до нужных данных или кода) относительно этой метки.

удачи вам
(круглый)

Нет попы в таком случае не нужны, как пример - запустил таймер и что бы не ждать (долго 20mc) ушёл из программы по прерыванию вернулся
CODE
;**************************************************
;*     ;;/Initialization TIMER1;;*             *
;**************************************************
        outi    OCR1AH,    high(5760)
        outi    OCR1AL,low(5760)
        ldi        temp,1<<OCIE1A|0<<OCIE1B|0<<TOIE1
        outr    TIMSK1,temp
        ldi        temp,1<<CS11|1<<CS10
        outr    TCCR1B,temp
        rcall    ZERO  Уходим из этой программы
MAIN:
        cli
        ldi        temp,1<<OCIE1A|1<<OCIE1B|1<<TOIE1
        outr    TIMSK1,temp
check:    rjmp    check
TIM1_OVF:
        nop
        reti
TIM1_COMPA:
        ldwi    X,RAMEND-2        Возвращаемся обратно
        out        SPL,XL
        out        SPH,XH
        reti

ZERO:
        ldwi    X,(RAMEND-0x1FF)
        out        SPL,XL
        out        SPH,XH
        sei
MAIN1:    rjmp    MAIN1
adc ......
ldi  .......
mov .......
rcall ........


Но принцип я понял.


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Oct 13 2011, 23:32
Сообщение #6


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(ILYAUL @ Oct 14 2011, 00:46) *
Нет попы в таком случае не нужны...



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

удачи вам
(круглый)
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Oct 14 2011, 06:47
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



QUOTE (kolobok0 @ Oct 14 2011, 03:32) *
имелось ввиду узнавание адреса, если прошивка грузится не по статик адесу...
ваш способ в этом случае не проканает...

удачи вам
(круглый)

Это я узнаю , там попы нужны. Это я так , когда не нужны


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 16th June 2025 - 23:18
Рейтинг@Mail.ru


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