Отговори на тема  [ 9 мнения ] 
Стек при 8051 (F310-Silab)? 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Яну 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
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Юли 31, 2007 2:55 pm
Мнения: 1792
Местоположение: София
Мнение Re: Стек при 8051 (F310-Silab)?
mitko_el написа:
Та питанката е : мога ли да задам SP на адрес "80H до FFH "

Да, то там му е мястото ако '51-то има 256 байта вътрешна RAM.


Нед Яну 16, 2011 3:08 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Яну 24, 2006 6:34 pm
Мнения: 1753
Местоположение: Варна
Мнение Re: Стек при 8051 (F310-Silab)?
woody написа:
Да, то там му е мястото ако '51-то има 256 байта вътрешна RAM.

Мерси :) . Не ща да разпалвам страсти, ама има ли друго животно(освен 51) , дето да може да пише от клетка в клетка на Ram-ta(128 клетки са де,без да ползва посредници-регистри, амумулатор)

_________________
За пари сичко праим,даже и работим...


Нед Яну 16, 2011 10:46 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение 
PIC 18fxxxx - movff 0xHHHH 0xHHHH


Пон Яну 17, 2011 9:03 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Юни 01, 2008 9:54 pm
Мнения: 1503
Местоположение: Пловдив
Мнение 
Cekins написа:
PIC 18fxxxx - movff 0xHHHH 0xHHHH

Уверен ли си? От времето когато пишех нещо за пик ми се върти, че отнемаше два цикъла, т.е. реално мести другаде, и после в дестинацията. Без да броим, че беше ограничена в адресното пространство. Нещо такова беше... иначе да, пишеш го така, но то май не се изпълнява така.


Пон Яну 17, 2011 11:29 am
Профил WWW
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Чет Окт 02, 2008 10:24 pm
Мнения: 105
Мнение 
компилатора винаги след MOVFF , слага "nop"
http://www.microchip.com/forums/m267911.aspx
тук е обяснено защо ,
но тази инструкциям като я гледам си е директно регистър в регистър


Пон Яну 17, 2011 12:17 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение 
Няма как да не отнеме два цикъла, тъй като инструкцията е 32 битова (2 програмни думи), като първата съдържа опкода и адрес1, а втората NOP и адрес 2. Нопа е с цел ако имаш някаква команда от сорта BTFSS непосредствено преди това да не направи гювеч. Не забравяй за архитектурата на ПИК-а - той все пак една команда я изпълнява за 4 цикъла :) . И напрактика минава през буфер, но той не е физически регистър. Работи в цялото адресно пространство без 4 SFR-a.


Пон Яну 17, 2011 6:36 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Юни 01, 2008 9:54 pm
Мнения: 1503
Местоположение: Пловдив
Мнение 
Cekins, дай да изясним терминологията - 1 цикъл = 4 такта май е по-правилно.
Да, минава през някакъв регистър, та ок - ноп-а с това обяснение минава. Но ми се струва, че има-няма ноп втория цикъл си му трябва реално за прехвърлянето. w/e казах и преди - спомените ми за пик-ове са доста избледнели.

Имам спомени, че упорито избягвах да я ползвам в прекъсвания, пишеше нещо в ератата, та останах с впечатление, че "невидимия" регистър в ранните варианти на 18-ките беше някой от тия регистри, които се ползват за backup при прекъсване с FAST. Ама си беше отдавна...


Вто Яну 18, 2011 10:31 am
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение 
Мне, той нопа е 0xF000 , а в тази инструкция младшите се запълват с втория адрес. Идеята е ако попадне случайно на този адрес да не направи нищо, щото той все пак е втората част от инструкцията. Не ползва никакъв регистър - той нали си има някакъв акумулатор дето си е вътрешен на алу-то. А втория цикъл му трябва за да извлече втория адрес.

Има го описано в дейташиитовете. Не съм забелязал някакви издънки с тази команда.


Вто Яну 18, 2011 11:23 am
Профил ICQ
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 9 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 3 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни