|
Виж темите без отговор | Виж активните теми
Дата и час: Пон Юли 27, 2026 7:17 pm
Интерпретатор за асемблер ???
| Автор |
Съобщение |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30686 Местоположение: София
|
Егати писанията.
Защо просто не си създаеш един проект тест, за F877 да речем и всичкокодове които икаш да пробваш не ги пускаш вътре му, и след това да ползваш MPLAB-а? MPLAB прави точно това, симулира. Рлано той не компилира нищо, както и други казаха ASM не се компилира, защото няма към какво.
Процеса на компилация е сложено, в него компилатора решава как да изпълни команда от високо ниво на ниско ниво, като тук се взема под внимание предпроцесорни команди, логиката заложна в самия компилатор а и самият код. В твоя случай няма нищо такова. MPLAB прави един прост превод без да се влага никаква логика, и реално пишейки на asm пишеш на машинен език който контролера разбира, асм просто е човешкия вид на машинния език. Да речем addwf абсолютно винаги се превежда като опкод 00 0111 dfff ffff, където съответно d ти е параметър fff ffff също тие параметър който пишеш в асм. Т.е. MPLAB не компилира нищо,ти му пишеш командите дирктно на машинен език.
Както ти казах за това което искаш, си правиш един тестов проет и в него си пробваш всички кодове, явно целта е да избегнеш инициализацията на конторлера и всички свързани с него команди.
|
| Нед Мар 18, 2007 11:38 am |
|
 |
|
ji4ka
Ранг: Форумен бог
Регистриран на: Чет Фев 01, 2007 4:04 am Мнения: 1539
|
То стана малко като кръгова отбрана, но няма да се дам лесно
ToHu, това което предлагаш съм си го направил. Но това не е решаване ,а заобикаляне на проблема. А за MPLAB-a си в грешка - той прави компилация преди всяка симулация, като крайния резултат е hex-файла. Хекса- е "истинския" машинен код. Пробвай - направи промяна в асм-а и пусни пак симулация но без да прекомпилираш - MPLAB-а няма да вземе в предвид промяната защото продължава да си работи със старата компилация. MPLAB-а му вика на това "build" но там се включва и компилацията.
Асемблера не е машинен език, а е "машинно ориентиран език", има разлика. Както например ФОРТРАН-а е "математически ориентиран" и т.н.
А компилацията винаги се прави към "изходен файл". Така,че израза "няма към какво" е малко странен. Компилатора за асемблера на пиковете е програмата MPASM.
Всеки код ,който може да се компилира, може и да се интерпретира. Това са просто двата начина на изпълнение на компютърни програми. Припомнете си първите уроци по информатика.
Програмата на Асемблер също си е компютърна програма, както и тази на C, Java, Pascal, BASIC и т.н. Просто набора й от команди е функционално по-ограничен и е "натъкмен" да съвпада 1:1 с машинните инструкции на точно определен процесор. Това не значи ,че друг процесор не може да ги изпълни - просто ще му е нужен преводач, сиреч Интерпретатор или Компилатор.
|
| Нед Мар 18, 2007 3:17 pm |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
ji4ka - всяка команда на асемблер си има опкод - я ми кажи кой език от високо ниво има опкод на командите. ADDLW е къде, къде по-лесно да се запомни от колкото опкода и - затова е измислен асемблера - за да не програмираш с таблица в ръка. Асемблера нито се компилира, нито се интерпретира, няма оптимизации, няма нищо - всеки път едни и същи команди се транслират към едни и същи опкодове. Това, че неможеш да намериш готова програма за това, за което говориш трябва да ти говори много, или си мислиш, че ти си единствения човек на планетата земя, който се е сетил за тоя "интерпретатор"  . Вземи се в ръце най-накрая  .
|
| Пон Мар 19, 2007 3:25 am |
|
 |
|
ji4ka
Ранг: Форумен бог
Регистриран на: Чет Фев 01, 2007 4:04 am Мнения: 1539
|
Dimitar, точно превода на addlw в опкод се нарича компилиране (или асемблиране) и се извършва от компилатора. Няма асемблер без компилатор , просто в новите програми тия неща са покрити, но си ги има. Какво е според тебе MPASM?
Инерпретаторите вършат същата работа като компилаторите ,но в друга поредност - при тях резултата от компилирането не се запазва, а веднага се изпълнява. А това ,че друг не се е сетил, ме съмнява , но дори и да е така за мене не е аргумент - 99.9999% от хората си нямат и понятие за това което си говорим тука, така че ако някой от нас не се сети, няма кой друг.
По-долу пускам малко инфо - хардуера е поостарял, но принципите са си същите.
|
| Пон Мар 19, 2007 1:29 pm |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30686 Местоположение: София
|
Ако погледнем на самата дума компилация, която значи събирам, съставям, съставям речник то може да приемем че това което прави MPLAB е компилация. Но реално е прието компилация да се нарича създаването на асм файл и последващия го hex файл от друг файл който е от език на високо ниво. Не можеш да делиш машинен еик от асемблер, те са едно и също. Тов акоето си сканирал до някъде е ОК, но до някъде. Значи да пишеш на асемблер е като да пишеш на български но със съкращения, т.е. ти не пишеш на друг език, и това кеото пишеш 100% разбираемо от процесора, но за да е по лесно на пишещия са въведени някои съкращения. MPASM не рави нищо друго освен да вземе командите които вувеждаш като асм и да ги превърне в опкодове, освен това за да улесни писещия самия асемблер позволява дифениране на променли и др подобни, които се разчитат от "компилатора" и след това също се заместват.
Това което говориш не може да съществува, към какво искаш да интерпретира. Интерпретатора работи на процесора на който е пуснат, т.е. когато работиш на РС би следвало да интерпретира асм командите към РС команди, което е безсмилено. Това което прави MPLAB когато симулираш е точно това, а естетсвено е д иаш ралзика в hex кода, тъй като той е файл подготвен за запиш в процесора, и ако не го генерираш наново няма да има промяна. Генерирането на този файл става с build.
Не напразно бутона който прави файла се нарича assemble а не compile, както е във всички компилатори. Също така ако се загледаш ще видиш че изходният файл може да е в различни формати. Изходният файл на всеки компилатор е лист, който съдържа asm кодовете, от него като вториен се създава hex файла, според нуждите.
И в крйана сметка щом правиш това с мплаб не разбирам какув е проблема, мурзите да натискаш build ????
|
| Пон Мар 19, 2007 8:28 pm |
|
 |
|
ji4ka
Ранг: Форумен бог
Регистриран на: Чет Фев 01, 2007 4:04 am Мнения: 1539
|
ToHu, това което описваш си е точно процес на компилиране, затова няма нужда "компилатор" да е в кавички. Вярно е ,че при Асемблерите компилирането е по-просто, но това не променя същността му.
Както и да е. Зададох конкретен въпрос и отговора беше "Категорично НЕ" . Все пак и НЕ-то си е отговор. Предлагам да спрем да обсъждаме въпроса защото стана твърде "Академичен".
Благодаря на всички за мненията!
|
| Вто Мар 20, 2007 1:56 pm |
|
 |
|
Sonic
Ранг: Новодошъл
Регистриран на: Пон Дек 25, 2006 4:38 am Мнения: 114
|
ji4ka - дори и аз немога да схвана идеята , но ако искаш пробваи CCS в комбинация с Proteus.
Мисля че по-добър тандем нема
CCS се учи буквално за 1 ден, а щом ти е и ясен асемблера добре - ще скочиш доста напред с него много бързо ...
незнам все пак ... дано не давам лош съвет ...
|
| Чет Мар 22, 2007 11:24 pm |
|
 |
|
ДедоБоре
Ранг: Форумен бог
Регистриран на: Нед Ное 21, 2004 11:31 pm Мнения: 10088
|
аз бих искал да поправя жичката в траспозицията:
няма компилатор без асемблер (аксиома)
обратното просто не е вярно (че няма асемблер без компилатор)
асемблерите (в контекста на програмиране) са софтуери, които превеждат мнемоничен код в опкодове. п опроста таблица, без никаква мисъл. може да имат и някой допълнителни функции, като работа с етикети, макроси и др. подобни, но те не са задължителни.
ако асемблера е от по-висок клас, може да прави обектен файл, който после свързващия редактор (linker) навръзва в изпълним код.
но това далеч не е задължително.
темата за интерпретатор на асемблер във вида, в който го искаш, е безсмислена.
|
| Пет Мар 23, 2007 12:00 am |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
Сигурен ли си? 
|
| Пет Мар 23, 2007 1:25 am |
|
 |
|
MYXATA
Ранг: Форумен бог
Регистриран на: Пон Юни 05, 2006 1:48 pm Мнения: 4906 Местоположение: където небето среща земята, ракията е Jameson, а бирата Guinness
|
 |  |  |  | ji4ka написа: Dimitar, точно превода на addlw в опкод се нарича компилиране (или асемблиране) и се извършва от компилатора. Няма асемблер без компилатор , просто в новите програми тия неща са покрити, но си ги има. Какво е според тебе MPASM? Инерпретаторите вършат същата работа като компилаторите ,но в друга поредност - при тях резултата от компилирането не се запазва, а веднага се изпълнява. А това ,че друг не се е сетил, ме съмнява , но дори и да е така за мене не е аргумент - 99.9999% от хората си нямат и понятие за това което си говорим тука, така че ако някой от нас не се сети, няма кой друг. По-долу пускам малко инфо - хардуера е поостарял, но принципите са си същите. |  |  |  |  |
eeeee ji4ka, ji4ka,
как ме радваш че съм от оня 0.0001% дето са чували за машинен код,opcode, asm, компилатори, интерпретатори и други сложни думи дето с тях може да блеснеш в компания на випускници на трактористки техникум дори и без да ги разбираш по смисъл и предназначение:)
и друго-> всеки може да си стопли вода, но това не значи че той е откривателя и 
_________________ ... ако трети ден не ти се работи... това означава, че е сряда !
|
| Пет Мар 23, 2007 2:14 pm |
|
 |
|
Sonic
Ранг: Новодошъл
Регистриран на: Пон Дек 25, 2006 4:38 am Мнения: 114
|
ааа - за по-гоелмите батковци в ПИК-овете и АВР-ите съм на 100% сигурен че въртят други шмекерии,
ама за начинаещи тестери като мене - тандема си е добре 
|
| Съб Мар 24, 2007 8:28 pm |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30686 Местоположение: София
|
Самия протеус не е лош, не знам да има негов заместител, полезен е дотолкова че можеш да тестваш части от код. Никога не съм го позлвал за тестване на цялостенпроект, т.е само веднъж, за един генератор на ток с PWM , не поврвах че го изсимулира. А за компилатор, там е въпрос на вкус, едва ли CCS е с нещо по добър или по лош от останалите, вски си има предимста и недостатъци.
|
| Съб Мар 24, 2007 8:58 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 6 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|