| Автор |
Съобщение |
|
mitko_el
Ранг: Форумен бог
Регистриран на: Вто Яну 24, 2006 6:34 pm Мнения: 1753 Местоположение: Варна
|
 Стек при 8051 (F310-Silab)?
Значи Ram-a го разделям на 3 дяла(има и още ама не са интересни за случая). Та от 00-7FH си е един дял (в който досега си указвам от кой адрес да заредя SP). От 80H до FFH има спИциални регистри достъпни само с директна адресация. Пак от 80H до FFH има Ram достъпен обаче само с индексна адресация.Та питанката е : мога ли да задам SP на адрес "80H до FFH ".Подозирам ,че като пише и чете в стека използва индексна адресация и ще мине номера,ама нямам контролер под ръка "око да види, ръка да пипне" 
_________________ За пари сичко праим,даже и работим...
|
| Съб Яну 15, 2011 9:40 pm |
|
 |
|
woody
Ранг: Форумен бог
Регистриран на: Вто Юли 31, 2007 2:55 pm Мнения: 1792 Местоположение: София
|
 Re: Стек при 8051 (F310-Silab)?
Да, то там му е мястото ако '51-то има 256 байта вътрешна RAM.
|
| Нед Яну 16, 2011 3:08 pm |
|
 |
|
mitko_el
Ранг: Форумен бог
Регистриран на: Вто Яну 24, 2006 6:34 pm Мнения: 1753 Местоположение: Варна
|
 Re: Стек при 8051 (F310-Silab)?
Мерси  . Не ща да разпалвам страсти, ама има ли друго животно(освен 51) , дето да може да пише от клетка в клетка на Ram-ta(128 клетки са де,без да ползва посредници-регистри, амумулатор)
_________________ За пари сичко праим,даже и работим...
|
| Нед Яну 16, 2011 10:46 pm |
|
 |
|
Cekins
Ранг: Форумен бог
Регистриран на: Сря Апр 20, 2005 12:02 pm Мнения: 9119 Местоположение: Разград
|
PIC 18fxxxx - movff 0xHHHH 0xHHHH
|
| Пон Яну 17, 2011 9:03 am |
|
 |
|
head_up
Ранг: Форумен бог
Регистриран на: Нед Юни 01, 2008 9:54 pm Мнения: 1503 Местоположение: Пловдив
|
Уверен ли си? От времето когато пишех нещо за пик ми се върти, че отнемаше два цикъла, т.е. реално мести другаде, и после в дестинацията. Без да броим, че беше ограничена в адресното пространство. Нещо такова беше... иначе да, пишеш го така, но то май не се изпълнява така.
|
| Пон Яну 17, 2011 11:29 am |
|
 |
|
Cino
Ранг: Новодошъл
Регистриран на: Чет Окт 02, 2008 10:24 pm Мнения: 105
|
компилатора винаги след MOVFF , слага "nop"
http://www.microchip.com/forums/m267911.aspx
тук е обяснено защо ,
но тази инструкциям като я гледам си е директно регистър в регистър
|
| Пон Яну 17, 2011 12:17 pm |
|
 |
|
Cekins
Ранг: Форумен бог
Регистриран на: Сря Апр 20, 2005 12:02 pm Мнения: 9119 Местоположение: Разград
|
Няма как да не отнеме два цикъла, тъй като инструкцията е 32 битова (2 програмни думи), като първата съдържа опкода и адрес1, а втората NOP и адрес 2. Нопа е с цел ако имаш някаква команда от сорта BTFSS непосредствено преди това да не направи гювеч. Не забравяй за архитектурата на ПИК-а - той все пак една команда я изпълнява за 4 цикъла  . И напрактика минава през буфер, но той не е физически регистър. Работи в цялото адресно пространство без 4 SFR-a.
|
| Пон Яну 17, 2011 6:36 pm |
|
 |
|
head_up
Ранг: Форумен бог
Регистриран на: Нед Юни 01, 2008 9:54 pm Мнения: 1503 Местоположение: Пловдив
|
Cekins, дай да изясним терминологията - 1 цикъл = 4 такта май е по-правилно.
Да, минава през някакъв регистър, та ок - ноп-а с това обяснение минава. Но ми се струва, че има-няма ноп втория цикъл си му трябва реално за прехвърлянето. w/e казах и преди - спомените ми за пик-ове са доста избледнели.
Имам спомени, че упорито избягвах да я ползвам в прекъсвания, пишеше нещо в ератата, та останах с впечатление, че "невидимия" регистър в ранните варианти на 18-ките беше някой от тия регистри, които се ползват за backup при прекъсване с FAST. Ама си беше отдавна...
|
| Вто Яну 18, 2011 10:31 am |
|
 |
|
Cekins
Ранг: Форумен бог
Регистриран на: Сря Апр 20, 2005 12:02 pm Мнения: 9119 Местоположение: Разград
|
Мне, той нопа е 0xF000 , а в тази инструкция младшите се запълват с втория адрес. Идеята е ако попадне случайно на този адрес да не направи нищо, щото той все пак е втората част от инструкцията. Не ползва никакъв регистър - той нали си има някакъв акумулатор дето си е вътрешен на алу-то. А втория цикъл му трябва за да извлече втория адрес.
Има го описано в дейташиитовете. Не съм забелязал някакви издънки с тази команда.
|
| Вто Яну 18, 2011 11:23 am |
|
|