Re: Speicherzugriff, Code im Segment 8 Kategorie: Progr. Assembler, TaskingTools, OS (von André H. - 5.11.2004 8:33) | ||
Als Antwort auf Re: Speicherzugriff, Code im Segment 8 von Hansi - 1.11.2004 13:32 | ||
| ||
Hallo Hansi, > der Vergleichbefehl war/ist schon korrekt geschrieben, dass die 1 in Worten eins wie ein > l ( el ) aussieht liegt am Zeichensatz. Naja. Das mu� ich jetzt einmal glauben. ;-) (Obwohl: 1 I ) > Das Problem bleib allerdings bestehen, im Segment 8 läuft das Programm nicht, Im Segment 3 schon. > Wie ich das Programm in Segment 8 gekriegt habe? > Wie im Buch MSR mit C-Control II beschrieben, Hexcode in ein Integerarray geschrieben. > Low und Highbyte selbstverständlich getauscht und vor dem Programmcode jede Menge Nops. > Deshalb auch die Hohe Speicheradresse von dezimal 2000. Gut. Du hast also ins "Blaue" geschrieben. ;-) Das Buch ist leider nicht mehr Up to Date. Es gibt folgende Möglichkeit, wie das ganze funzen mu�: Du legst ein Byte-Array an und legst Dort die Routine ab. Dann rufst Du die Funktion mem.getMemAddrByte(byte data[]) auf. Als Rückgabewert erhälst Du die Startadresse des Arrays. Diese mu� gerade sein. (Wenn nicht, vorher einfach noch eine Byte-Var definieren.) Die Startadresse wäre nun gleichzeitig Deine Einsprungadresse. Die Adresse zum speichern für Daten übergibst Du am besten über den Stack.(zweites Array) In C2 sieht das dann so aus: inline function xy(byte data[], byte segment, byte code[]) {// data ist das Datenarray // segment mu� 8 sein // code wäre das Bytearray mit den ASM-Code inline vmcodes.VM_SYSCALL; } ... byte asm[1024]; byte Daten[48000]; ... xy(Daten,8,asm); .. In den ASM-Routinen kannst Du nun auf das Daten-Array zugreifen, indem Du Dir die Startadresse vo Stack holst: OSsegment EQU 0 POP_R4 EQU 0765AH PUSH_R12 EQU 075D6H ... getxy proc far CALLS OSsegment,POP_R4 ;hole Array-Adresse vom Stack MOV R2, R4 Loop1: MOV R4, P1H AND R4, #080h SHR R4, #7 ADD R4, #030h EXTS #8. #1 MOVB [R2], RL4 CMPI1 R2, #48000 JMPR cc_NE, Loop1 POP R1 POP R1 RETS getxy endp MfG André H. Antworten bitte nur ins Forum! Fragen per EMail auf Forum-Postings werden nicht beantwortet! Das macht meine Heizung gerade | ||
Antwort schreiben Antworten: Re: Speicherzugriff, Code im Segment 8 (von Hansi - 5.11.2004 13:21) Re: Speicherzugriff, Code im Segment 8 (von André H. - 8.11.2004 13:10) Re: Speicherzugriff, Code im Segment 8 (von Hansi - 11.11.2004 10:28) Re: Speicherzugriff, Code im Segment 8 (von André H. - 11.11.2004 21:52) Re: Speicherzugriff, Code im Segment 8 (von Hansi - 11.11.2004 22:37) Re: Speicherzugriff, Code im Segment 8 (von André H. - 11.11.2004 23:23) Re: Speicherzugriff, Code im Segment 8 (von Hansi - 12.11.2004 7:31) Re: Speicherzugriff, Code im Segment 8 (von André H. - 19.11.2004 12:05) |