Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: IEN mit HighTec gnu166 Kategorie: Progr. Assembler, TaskingTools, OS (von norbert r - 10.12.2002 20:47)
Als Antwort auf Re: IEN mit HighTec gnu166 von hannes - 10.12.2002 17:51

hallo,

> wow, das war leicht.
> danke!
>
> welchen sinn hatte der initalisierungscode in crt0_167.s dann?

weis ich auch nicht genau. das war die standard-library vom gnu-compiler,
nur leicht verändert.ich hatte auch erst gedacht dass man den code braucht,
aber nach zahlreichen versuchen stellte ich fest, dass man den einfach weglassen
kann, damit alles funktioniert. die VM übernimmt diese initialisierungen wahrscheinlich.

>
> oh und weiÃ? jemand, ob eric an der cc2 implemntierung noch weiterarbeitet

weis ich nicht

> dh(aus dem archiv):
> >>- Add interrupt support,
> >>- rewrite all C2 library functions to C,
> >>- floating point routines (if needed),
> >>- Adapt (replace) the OS to use more (all) segments for c-code.
>
> danke nochmal
> hannes
>
>

also interrupts lassen sich genauso einfach integrieren. man macht einfach noch
eine weitere Sprungmarke in der crt0_167.s. die beiden pop-befehle müssen nicht
dort stehen.

so sieht das dann aus:

.text
start:        @einsprung für die normale mit call aufgerufende routine
pop r1
pop r1
jmps SEG:_main,SOF:_main

interrupt:     @für die mit hook eingehängte interruptroutine
jmps SEG:_interrupt1,SOF_interrupt1


das wars
die c-funktion muss hier natürlich interrupt1() hei�en
dauf diese weise lassen sich beliebig viele routinen erstellen
die adressse lässt sich ja aus der .lst-datei entnehmen
(in diesem fall also 0x08 für die interruptroutine)

im c2-programm muss dann natürlich noch der
hook-befehl mit verweis auf die adresse stehen .

norbert


    Antwort schreiben


Antworten: