Español
Stammtisch & Café

Ayuda en Compiler Erstellung

 

GDL
Hallöle Comunidad,

como Yo mich en el Moment en 2 Projekte konzentriere, möchte Yo el RVK Basic por qué Eigenes sustituir.

Was Yo ya:
- el genauen Befehlsumfang de los Microcontrolern
- una funcionamiento RVK Compiler (y somit una Presentación qué de el individual Basic-Befehlen en Ensamblador voluntad se)

Wovon Yo überhaupt no Plan habe
- como löst uno al Besten verschachtelte Befehle oder Schleifenroutinen en
- como va uno generell al Besten antes, como zeilenweises 1 a 1 Übersetzen no va.

Tal vez kann me alguien Schützenhilfe geben.

Das Ganze Aunque una äußerst harter Brocken para mich, pero yo voluntad no por lo tanto herumkommen.

Grüßle
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
16.02.2015  
 



Usted musst sólo después de ASM auflösen.

So se z.B. de uno Variable una (en el Fall más feste) SpeicherAdresse, z.B. una Adresse en el Stack.

Also var a=0
Yo brauche una variable a, also push 0 y Stackadresse merken en el
Kompilierer. Und si irgendwo a=22 es, entonces algo como como (ahora veces
angenommen 32Bit)

push eax //eax en stack sichern
push ebx //ebx en stack sichern
mov eax,AdresseVonAImStack
mov ebx,22
mov [eax],22
pop ebx
pop eax

el puede ser natürlich kürzer, debería bloß una Bild voluntad.

Welche ASM dieser Microkontroller unterstützt weiß Yo no.

Yo schätze Schleifen y ifs son más Su Cuestión.

Also si un Puse por xpse después de assembler en sinnbildlich así:

if 10=20
//imprimir
más
//exit
endif

se a

push eax
push ebx
mov eax,10
mov ebx,20
cmp eax,ebx
pop eax
pop ebx
jne marke001más
//imprimir
jmp marke001end
marke001más:
//exit
marke001end:
weiterimtext...

el wäre entonces si un.

Schleifen son auch sólo si un.

mientras que 1<10
//imprimir
wend

es sí auch sólo

marke002bucle:
push eax
push ebx
mov eax,1
mov ebx,10
cmp eax,ebx
pop eax
pop ebx
JGE marke002end
//imprimir
jmp marke002bucle

Tal vez hilft lo Usted Yo con xpse erzeuge, simplemente veces el asm anschauen.

Danach kannst Usted el ASM después de Opcodes auflösen. Schwieriger se
el no como después de ASM aber como musst Usted en el Jumps eben auch
el Sprungweiten beachten el je después de CPU/ OS Grenzen haben.
 
16.02.2015  
 




GDL
Hi,

soweit kapier Yo el schonmal.
Mir gehts aber a allererst veces en el Reconocer y Auswerten el Presentación.

Extremfall:
If (((a+7)/2)-5)+(14/c) > algo

gibts como irgendeinen algorythmus oder algo en el correcto a erkennen y luego después de punkt antes strich bajo Beachtung el Klammern aufzulösen.

oder stur el Klammern de innen después de aussen abarbeiten?
 
XProfan X3
Windows7 Xprofan 8,9,10 [...]  [...] 
16.02.2015  
 



Es auch bien, escribir para el Anfang una Función
parseArg(ument) - así wandelt auch xpse "Profan"-Argumente después de ASM:

Ejemplo:

a=(10+20)+30

se a:

tmp1=10+20 //Klammer vorne+hinten kann siempre weggeworfen voluntad si einzige Klammern
a=tmp+30

se a

tmp1=10
add tmp1,20
a=tmp
add a,30

ergo finde Klammerauf y nimm todos Signo a a korrespondierenden
Klammerzu. Einfach Zeichenweise parsen y en cada neu geöffneten
Klammer simplemente una Zähler hochzählen y en uno Klammerzu el Zähler
runtersetzen sodass auch wirklich el korrespondierende Klammer gefunden se.

So se de
((10+20)*(30+40))
dies:
(10+20)*(30+40)

porque el Außenklammern simplemente otra vez weggeworfen voluntad puede porque
ellos korrespondieren.

So Usted necesita una Klammernauflöser
y mehrere Operatorenauflöser angewandt en el Reihenfolge Punkt, Strich

Das todo nenne Me gusta falso Argumenteauflöser.

Nochmal:

a=((10+20)*(30+40))
se a dies:
a=(10+20)*(30+40)

porque el Außenklammern simplemente otra vez weggeworfen voluntad puede porque
ellos korrespondieren.

Dann findet el Klammernauflöser otra vez una klammer, bastante vorne el.

Dann liesst él a a korrespondierenden Klammer alles una, findet also 10+20,
merke 10+20 y 10+20 se ersetzt en tmpX (X es una Zahlenwert el simplemente hochzählt, also tmp1, tmp2...)

Ergo

a=(10+20)*(30+40)

se a

tmp1=10+20
a=tmp1*(30+40)

entonces: ni Klammer en el Argument? Sí, ergo findet el Klammernauflöser
(30+40) y ersetzt lo en (diesmal) tmp2 y merkt 30+40

Ergo:

tmp1=10+20
tmp2=30+40
a=tmp1*tmp2

Noch una Klammer en el Argument? Nein, also de para Operatorenauflöser para
Punktrechnung.

Ein Malzeichen en a=tmp1*tmp2? Sí, ergo linkes Argument parsen = tmp1, rechtes
Argument tmp2.

Ergo:

tmp1=10+20
tmp2=30+40
tmp3=tmp1
mul tmp3,tmp2
a=tmp3

Noch una Punktrechnungsoperator? Nein, ergo más para Operatorenauflöser para
Strichrechnung (arbeitet genau como el Punktrechnungsoperatorenauflöser):

Ein Plus gefunden? Sí, z.B. en tmp1=10+20. Wieder linkes y rechtes Argument
encontrar, ergibt links 10 y rechts 20.

ergo, de:
tmp1=10+20

se

tmp4=10
add tmp4,20
tmp1=tmp4

Nächste Línea es tmp2=30+40, otra vez una Strichrechner gefunden, ergo auflösen:

Aus:
tmp2=30+40

se

tmp5=30
add tmp5,40
tmp2=tmp5

Dann se nirgends mehr una Operator gefunden, ergo kommt heraus:

tmp4=10
add tmp4,20
tmp1=tmp4
tmp5=30
add tmp5,40
tmp2=tmp5
tmp3=tmp1
mul tmp3,tmp2
a=tmp3

Das kann ligeramente después de ASM gebracht voluntad, beispiels 32bit asm:

aber el hatten wir sí oben ya.

Ist mist a erklären, sorry.
 
16.02.2015  
 




GDL
Hallöle,

erstmqal vielen Dank para deine Ausarbeitung.
Schön langsam komme Yo detrás de él qué en RVK Singlepass1 y Singlepass2 a ..4 es.


Ist mist a erklären, sorry


Yo weiß, tu mich auch schwer el richtigen Fragen a stellen.
Aber Yo beiß mich como ahora por.

Grüßle
Georg
 
XProfan X3
Windows7 Xprofan 8,9,10 [...]  [...] 
17.02.2015  
 




GDL
Hallöle David,

komme vorwärts. Variables de Code herausfiltern va ya y el Vektortabellen para el verschiedenen Devices bajo Berücksichtigung el Interrupts a redactar funzt auch ya.
Bin nun a el "Befehlerkennung" y deren Umsetzung en el Arbeitsregister.
Mühsam ernährt se el Eichhörnchen.

Grüßle
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
26.02.2015  
 




GDL
Hi,

@David: Gracias para el Tips al Tele.

Erste lauffähige Codes hay ya.
 
XProfan X3
Windows7 Xprofan 8,9,10 [...]  [...] 
14.03.2015  
 



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

7.079 Views

Untitledvor 0 min.
Sven Bader21.03.2023
Ju24.02.2017
iF30.12.2015
Anfänger30.12.2015
Más...

Themeninformationen

Dieses Thema ha 2 subscriber:

GDL (5x)
iF (2x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie