Autor Thema: Far JMP mit Gcc  (Gelesen 4189 mal)

MNemo

  • Beiträge: 547
    • Profil anzeigen
Gespeichert
« am: 18. February 2007, 05:20 »
hallo


wie mache ich eien far jmp im C inline ASM (intel syntax)

...
asm("jmp 0x0008:.a \n"
    ".a:");
...
führt zu
error: junk '.a' after expression

ich finde nur sachen für at&t  syntax und den intel syntax wollte ich eigentlich beibehalten

kann mir jemand helfen?

(oder brauch ich nach dem neuladen der gdt mit lgdt kein far jmp?)
„Wichtig ist nicht, besser zu sein als alle anderen. Wichtig ist, besser zu sein als du gestern warst!“

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #1 am: 18. February 2007, 10:01 »
ich finde nur sachen für at&t  syntax und den intel syntax wollte ich eigentlich beibehalten
Liegt vllt. daran, dass GCC Standardmäßig AT&T Syntax nimmt :wink:
Man kanns aber über
asm(".intel_syntax noprefix\n");umstellen. Könnte aber sein, dass du danach wieder auf at&t Syntax umstellen musst, da bin ich mir nicht sicher...

Zitat
(oder brauch ich nach dem neuladen der gdt mit lgdt kein far jmp?)
Doch auf jeden Fall, iirc um die Pipeline zu leeren.
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 18. February 2007, 11:23 »
Ansonsten sollte es ljmpl $0x08, .a tun.
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #3 am: 18. February 2007, 11:54 »
Die ganzen Probleme mit GRUB (ich verstehe meinen eigenen OS-Loader und weiß genau was ich machen muss) und gcc bzw. einer Hochsprache habe ich nicht. *duck* Bereite mich schon auf einen Gegenangriff vor. :-P

bitmaster
In the Future everyone will need OS-64!!!

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #4 am: 18. February 2007, 12:19 »
wirklich sehr hilfreich und va. Ontopic :wink: Aber klasse, daß [sic!] immer einer hier im Forum wieder anfängt damit. :rolleyes:
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 18. February 2007, 13:14 »
Die ganzen Probleme mit GRUB
GRUB? Thema verfehlt.

Zitat
(ich verstehe meinen eigenen OS-Loader und weiß genau was ich machen muss)
Und der hat im ersten Anlauf funktioniert, du mußtest nie nachbessern? Glückwunsch.

Zitat
und gcc bzw. einer Hochsprache habe ich nicht. *duck*
Hochsprache? Nochmal Thema verfehlt. Hier geht es offensichtlich um Assembler.

@M.Nemo: Ist deine Frage beantwortet? Wenn ja, sperre ich mal zu.
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

MNemo

  • Beiträge: 547
    • Profil anzeigen
Gespeichert
« Antwort #6 am: 19. February 2007, 12:33 »
@M.Nemo: Ist deine Frage beantwortet? Wenn ja, sperre ich mal zu.
Nein nicht ganz.

Also ich hatte schon auf Intel-Syntax umgestellt und es kam zu diesem fehler.

Aber wenn ich das richtig verstanden hab, kann ich auch mitten drin wider auf AT&T syntax umstellen, Wie geht das? Wenn das mit dem intel-syntax nicht klappt, muss ich es wohl oder übel im AT&T syntax machen.
„Wichtig ist nicht, besser zu sein als alle anderen. Wichtig ist, besser zu sein als du gestern warst!“

 

Einloggen