logical

Top Page  |  Lists  |  User Login

logical
  • Andrei Gheorghe, 38
  • Bucureşti, România
  • Work: Infineon Technologies
  • School: Fac. de Electronică şi Telecomunicaţii

 

Total Page Views

202,750

RECENT COMMENTS

November 25, 2022 - 20:20

Adi

Cine mai explică acum că dacă nu egalau ecuadorienii, "olandejii" conduceau in c...

posted on “dacă nu egalau englezii, danezii ar fi condus în continuare”


June 20, 2022 - 20:18

Cătălina

Nişte angajaţi ai Urban Serv sunt foarte mândri de ei şi în ziua de astăzi pentr...

posted on mud


May 24, 2022 - 14:33

logical

există şi nişte bonus pack-uri în joc, dacă faci nişte achievementuri primeşti u...

posted on mai rapid ca rapidu


May 24, 2022 - 14:31

logical

regula de cinci secunde a devenit mult mai periculoasă de când cu pandemia... nu...

posted on curcubeie pe asfalt


May 24, 2022 - 14:27

logical

şi ca fun fact, nici măcar nu este primul chirurg din echipa Rapidului... am avu...

posted on te apără de goluri şi cardiace


May 24, 2022 - 14:25

logical

eu merg aproape sigur pe varianta b. pentru că e destul de uşor să verifici că a...

posted on achtung: se fură motoare maro cu jojă neagră


May 23, 2022 - 21:17

Specter

Am văzut şi eu trailerul mai demult. Chiar mă întrebam dacă au plătit redevenţă ...

posted on mai rapid ca rapidu


May 23, 2022 - 21:12

Specter

Toate ca toate, dar eu fără cartofi prăjiţi nu-mi fac transplant!

posted on 1+1 gratuit: Organe


May 23, 2022 - 21:09

Specter

Eh, când cei mai tineri fani ai Rapidului se apropie de 40 de ani, or fi zis şi ...

posted on te apără de goluri şi cardiace


May 23, 2022 - 21:05

Specter

Sunt două variante aici: a. Ei nici nu s-au gândit dacă o să meargă maşina aia ...

posted on achtung: se fură motoare maro cu jojă neagră


May 23, 2022 - 20:54

Specter

Oare regula de cinci secunde se aplică şi la compresor?

posted on curcubeie pe asfalt


April 2, 2022 - 13:48

logical

pare că nu...

posted on de la student la senior staff engineer


April 1, 2022 - 10:30

Adi

La multi ani? Mai primeşti ceva anul ăsta?

posted on de la student la senior staff engineer


February 22, 2022 - 12:18

Specter

Măcar nu au fost 18...

posted on i-a luminat farul


February 10, 2022 - 11:54

Specter

Scrie chiar de două ori! Oare a uitat că a scris prima oară, sau chiar l-a mai c...

posted on certitudinea marilor împliniri

   "Burn Bucharest, Burn You Fucking Maniacs" [Lake Of Tears, 11 Martie 2006]

savage assembler
savage assembler

ziceam aici că mă apuc să fac un asamblor pentru procesor... l-am făcut... :D

am lucrat cu cea mai mare plăcere la el în fiecare seară săptămâna asta... nu-mi vine să cred că totul a mers perfect... mă aşteptam la multe probleme logistice, cu noul visual c++ and all, dar nu... 70% din program este parsing şi error handling deci numai lucru cu string-uri... şi clasa string din visual c++ ăsta e perfectă... adio căcaturi de funcţii ca strcmp() sau strcpy()... vai cât mi-au mâncat zilele string-urile în c-urile vechi...

anyway, în total s-au strâns 1633 de linii de cod :D.... prezint chiar codul, că sunt prea mândru de el... şi e chiar educativ pentru altcineva care vrea să facă un asamblor pentru o altă arhitectură de microprocesor...

so... what does the bastard do ?

  • identifică linii care încep sau conţin “//” şi ignoră ce e după ele (adică comentarii) ... dacă e ceva înainte lor pe linie nu o şterge cu totul)
  • are definită o directivă “alias” prin care poţi să atribui orice nume unei componente interne sau să defineşti constante numerice (foarte util)
  • verifică dacă ai definit două alias-uri identice
  • elimină liniile goale sau care conţin doar spaţii sau tab-uri... de asemenea elimină orice caracter ilegal
  • instrucţiunile şi operanzii pot fi despărţiţi prin spaţii, tab-uri, virgule sau orice combinaţie între astea trei, fiecare în orice cantitate
  • permite folosirea unui mnemonic pentru o instrucţiune cu acelaşi rol dar cu operanzi de tipuri diferite (un fel de supraîncărcare)
  • caută toate etichetele de salt din program şi calculează adresele de salt corespunzătoare (dacă stăteam eu să fac asta manual mă dădeam cu capu de pereţi... dacă adăugam o linie mai sus trebuia să incrementez toate adresele de mai jos...)
  • verifică dacă nu există două etichete de salt definite de două ori (foarte util când iei cod cu copy-paste şi uiţi să modifici etichetele de salt... procesorul o ia razna rău de tot şi habar n-ai de ce)
  • te anunţă dacă detectează o instrucţiune necunoscută
  • verifică sintaxa pentru fiecare tip de instrucţiune în parte şi generează o eroare când sunt prea mulţi operanzi, prea puţini, când pui un registru în loc de un port sau invers, când data numerică depăşeşte 16 biţi etc
  • identifică automat dacă datele numerice sunt în zecimal sau în hex
  • la fiecare eroare îţi spune exact la ce linie este eroarea (la ce linie în fişierul original, cu spaţii şi linii goale ca să poţi să o urmăreşti în editor)
  • după ce verifică dacă toate instrucţiunile sunt valide te anunţă câte instrucţiuni a asamblat
  • apoi deschide portul COM1 pentru programare
  • trimite tot codul maşină rezultat pe RS232 către modulul de scriere în memoria de program a microprocesorului
  • descarcă memoria de date înapoi prin RS232 şi o scrie în fişierul .log (memory dump – incredibil de util)
  • notează orice pas într-un fişier log care va conţine alias-urile extrase, etichetele, instrucţiunile procesate (eventual codul de eroare) şi dump-ul de memorie...
  • makes me happy :)

deja m-am apucat de un proiect serios în care o să-l folosesc... detalii despre proiect peste câteva săptămâni când va fi gata... deocamdată prezint un fişier .asm pe care l-am asamblat şi testat şi funcţionează ireproşabil... minunat...

fişierul .asm (vai ce urât îl formatează firefox-ul... într-un editor bun se vede mai aranjat)
fişierul .log

i’m so happy right now... :D acum procesorul chiar e pus la punct... i-ar mai trebui un compilator care să transforme cod C în assembler pentru el... dar asta deja e SF... sunt multe microprocesoare serioase pe piaţă care s-au vândut mult şi bine şi n-au avut compilatoare... we’ll see... poate îi dau cuiva să facă proiect de dizertaţie la automatică un compilator... ar fi ceva...

Tags: , ,

Friday November 20, 2009 - 23:49pm (EET)

Comments

(2 total) Post a Comment
anca

Prea multi parametri, nu Prea multi parametrii :p

Saturday November 21, 2009 - 10:02am (EET) Comment Link

Specter

Asta ca sa fie mai multi...

Saturday November 21, 2009 - 10:12am (EET) Comment Link

Compose a comment for this post

Limit 65535 characters.No HTML, please.

Notify me of followup comments via e-mail

SEARCH
ARCHIVE

Valid HTML 4.01 Transitional