Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Assembler -> Protected Mode ! Hilfe !
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Profi-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Paul
aka ICC, HV-Freak


Anmeldungsdatum: 11.09.2004
Beiträge: 588
Wohnort: Uelzen

BeitragVerfasst am: 17.11.2004, 14:38    Titel: Assembler -> Protected Mode ! Hilfe ! Antworten mit Zitat

Moin !
Ich weiß, eigentlich gehört diese Frage in ein Assemblerforum .. aber andere Foren können halt nicht mit www.qb-forum.de mithalten grinsen

Nur eine kleine Frage:

Wer kennt sich hier mit Assembler aus, besser gesagt mit Protected mode ?

Vielleicht hat ja jemand von euch schon mal was mit PMODE gemacht und könnte es mit erklären (braucht ja nicht unbedingt in diesem Thread sein)
Ich brauch den PMODE für ein kleines Betriebssystem. Mit ASM komme ich sehr gut klar, das OS läuft auch schon...bloß eben nur im Realmode !

Dankeschön..
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 17.11.2004, 15:10    Titel: Frage Antworten mit Zitat

Hallo.

Handelt es sich dabei um dein ICC-LaOS? lächeln

Viele Grüße!
Sebastian
_________________

Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Paul
aka ICC, HV-Freak


Anmeldungsdatum: 11.09.2004
Beiträge: 588
Wohnort: Uelzen

BeitragVerfasst am: 17.11.2004, 15:19    Titel: Antworten mit Zitat

Ne, leider nicht...aber das wäre auch noch ne idee grinsen
Also wenns mit dem Protected Mode klappen sollte, bin ich bereit alles noch mehr zu erweitern mit nem eigenen Dateisystem und vielleicht auch eine GUI...dann kann ich ja nen QB-Interpreter in ASM coden und ICC Laos ausführen zwinkern
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
marzec



Anmeldungsdatum: 13.10.2004
Beiträge: 267

BeitragVerfasst am: 17.11.2004, 19:39    Titel: Antworten mit Zitat

ich hoffe dir ist klar das das mit dem pm nicht so leicht ist. bist du erst einmal im pm gibts keine bios interrupts mehr (oder sagen wir deren benutzung würde einen switch in den realmode bedeuten) d.h. du müsstest dir sämtliche device treiber auch die für die festplatte selbst schreiben.

eine andere möglichkeit wäre diesen flatmode zu verwenden, da bist du im realmode kannst aber trotzdem durch einen trick den gesamten ram verweden. einziger wehrmutstropfen die addressregister sind weiterhing auf 16 bit beschränkt d.h. 64kb pro segment

wenn du links brauchst, könnt ich was raussuchen... hab jetzt grad keine zeit
_________________
Yagl - yet another gameprogramming library
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Paul
aka ICC, HV-Freak


Anmeldungsdatum: 11.09.2004
Beiträge: 588
Wohnort: Uelzen

BeitragVerfasst am: 17.11.2004, 20:21    Titel: Antworten mit Zitat

ja das mit den interrupts weiß ich..

vom flatmode hab ich auch schon gehört, aber wie bitteschön soll ich mit einem 16er segmentzeiger den ganzen möglichen ram von 4gb ansprechen können ? verwundert

naja ich google mal, aber weiterhin wäre über antworten in diesem thread dankbar
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
marzec



Anmeldungsdatum: 13.10.2004
Beiträge: 267

BeitragVerfasst am: 17.11.2004, 20:29    Titel: Antworten mit Zitat

mich jetzt nicht falsch verstehen, aber das is ein qbasic forum ich glaub kaum das du hier brauchbare antworten erhalten wirst. googl einfach nach os developement etc. das bringt dich um einiges weiter.

würd mich sehr interessieren wie weit du kommst, hab das vor laaanger zeit auch einmal gemacht aber nur im realmode
_________________
Yagl - yet another gameprogramming library
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Paul
aka ICC, HV-Freak


Anmeldungsdatum: 11.09.2004
Beiträge: 588
Wohnort: Uelzen

BeitragVerfasst am: 17.11.2004, 20:36    Titel: Antworten mit Zitat

Ich sag jetzt mal in Anführungsstrichen: "Ein OS im realmode ist simpel." - Bloß hat es Speichermäßig eine miese Performance.
Naja ich werd sehen obs geht oder nicht, erstmal ist Copy&Paste angesagt grinsen
Ich sag dir bescheid wenn mein OS fertig ist durchgeknallt
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Quark48



Anmeldungsdatum: 16.10.2004
Beiträge: 559
Wohnort: Saltendorf a.d. Naab bzw. Teublitz i.d. Oberpfalz / Bayern

BeitragVerfasst am: 25.11.2004, 20:03    Titel: Antworten mit Zitat

Hallihallo!

Ich würde dir vom Protected Mode abraten. Ich würde den V86er-Mode (Wie von EMM386) nehmen, das ist eine Mischung aus 60% Real Mode und 39% Protected Mode und 1% Absturzgefahr.

MfG Quark48
_________________
Grüßle, Stefan lächeln
***
Wenn ein Programm auf nem alten Rechner gut läuft, dann läuft´s auf nem neuen erst recht! happy
Ich habe/hatte keine feste Spange und auch keine Schwester. Der Rest stimmt. Es tut mir leid... :-/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Paul
aka ICC, HV-Freak


Anmeldungsdatum: 11.09.2004
Beiträge: 588
Wohnort: Uelzen

BeitragVerfasst am: 25.11.2004, 20:41    Titel: Antworten mit Zitat

Nee, soll ja kein kack-DOS werden
wenn schon denn schon...ich werde weiter suchen... grinsen
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2507
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 25.11.2004, 20:47    Titel: Antworten mit Zitat

Mit Linux und FreeBSD gibt es ja zwei schöne Open Source-Betriebssysteme, bei welchen es sich durchaus lohnt, einen Blick in den Quellcode des Kernels zu werfen, denn beides läuft voll 32-Bit! Tipp: Ich hätte sonst noch ein altes 4.4er-SuSE-Linux zu Hause, wo der Kernel-Sourcecode noch nicht den Umfang von heute aufweist. Bei Interesse kann ich davon ein .ISO auf meinen Webserver stellen. Man kann beim Studium der dortigen Quelltexte übrigens extrem viel lernen!
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Paul
aka ICC, HV-Freak


Anmeldungsdatum: 11.09.2004
Beiträge: 588
Wohnort: Uelzen

BeitragVerfasst am: 25.11.2004, 20:56    Titel: Antworten mit Zitat

Danke für deine Hilfe, aber ich schätze mal, dass Linux nicht nur in ASM, sondern auch C(++) geschrieben ist...
Ich will einfach nur in den PMODE schalten und dort meinen Kram machen können. grinsen
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2507
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 25.11.2004, 21:01    Titel: Antworten mit Zitat

ICC hat Folgendes geschrieben:
aber ich schätze mal, dass Linux nicht nur in ASM, sondern auch C(++) geschrieben ist...

Der grösste Teil des Quellcodes ist C, wie von Dir korrekt erkannt. Gewisse Lowlevel-Routinen und Funktionalitäten sind in Assembler geschrieben - einfach all dies, was sich mit einer Hochsprache nicht vernünftig oder überhaupt nicht lösen lässt.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 23.01.2005, 18:58    Titel: Antworten mit Zitat

Hi Leute!

ganz im gegenteil, auch in diesem Forum gibts abhilfe für so was *g*

Ich hab irgendwann mal im Netz den Code hier gefunden:
Ich hab ihn mir bis jetzt noch nicht ganz durchgelesen, teils, weil ich schon ziemlich schnell aussteig, teils, weil mir momentan pmode gar ned so viel bringt. bis jetz bin ich immer noch mit den guten alten 640kb ausgekommen *g*

Naja, auf jeden fall sollte dir das hier weiter helfen.

Code:

.MODEL SMALL,C
.286                            ; Befehle der 80286-CPU zulassen
.STACK

    GDT_SIZE        =  9        ; Anzahl der Deskriptoren in der GDT
    IDT_SIZE        = 14        ; Anzahl der Deskriptoren in der IDT
    CODE_DESCRIPT   = 48        ; Deskriptor-Index f?r Codesegment
    SCREEN          = 64        ; Deskriptor-Index f?r Screensegment

IDT_DESCRIPT    MACRO   LIMIT,BASE_LOW,BASE_HIGH,ACCESS
      DW      LIMIT
      DW      BASE_LOW
      DB      BASE_HIGH
      DB      ACCESS
      DW      0
      ENDM

.DATA
   MASK1_8259A DB ?
   MASK2_8259A DB ?

   GDT_ADR LABEL WORD
;
; Deskriptor Nr. 0  - Dummy-Deskriptor
;
      DW 0
      DW 0
      DB 0
      DB 0
      DW 0
;
; Deskriptor Nr. 1 - Deskriptor f?r GDT
;
      DW GDT_SIZE * 8
      DW ?
      DB ?
      DB 092h
      DW 0
;
; Deskriptor Nr. 2 - Deskriptor f?r IDT
;
      DW IDT_SIZE * 8
      DW ?
      DB ?
      DB 092h
      DW 0
;
; Deskriptor Nr. 3 - Deskriptor f?r Datensegment
;
      DW 0FFFFh
      DW ?
      DB ?
      DB 092h
      DW 0
;
; Deskriptor Nr. 4 - Deskriptor f?r Extrasegment
;
      DW 0FFFFh
      DW ?
      DB ?
      DB 092h
      DW 0
;
; Deskriptor Nr. 5 - Deskriptor f?r Stacksegment
;
      DW 0FFFFh
      DW ?
      DB ?
      DB 092h
      DW 0
;
; Deskriptor Nr. 6 - Deskriptor auf das Programmcodesegment
;
      DW 0FFFFh
      DW ?
      DB ?
      DB 09Ah
      DW 0
;
; Deskriptor Nr. 7 - Deskriptor f?r BIOS-Segment
;
      DW 0
      DW 0
      DB 0
      DB 0
      DW 0

;
; Deskriptor Nr. 8 - Deskriptor f?r BIOS-Segment
;
      DW 2000h
      DW 0
      DB 0
      DB 92h
      DW 0

; ---------------------------------------------------------
; Vierzehn Interrupt Deskriptoren definieren
; ---------------------------------------------------------

   IDT_ADR LABEL WORD
   IDT_DESCRIPT FAULT00,CODE_DESCRIPT,0,86h
   IDT_DESCRIPT FAULT01,CODE_DESCRIPT,0,86h
   IDT_DESCRIPT FAULT02,CODE_DESCRIPT,0,86h
   IDT_DESCRIPT FAULT03,CODE_DESCRIPT,0,86h
   IDT_DESCRIPT FAULT04,CODE_DESCRIPT,0,86h
   IDT_DESCRIPT FAULT05,CODE_DESCRIPT,0,86h
   IDT_DESCRIPT FAULT06,CODE_DESCRIPT,0,86h
   IDT_DESCRIPT FAULT07,CODE_DESCRIPT,0,86h
   IDT_DESCRIPT FAULT08,CODE_DESCRIPT,0,86h
   IDT_DESCRIPT FAULT09,CODE_DESCRIPT,0,86h
   IDT_DESCRIPT FAULT10,CODE_DESCRIPT,0,86h
   IDT_DESCRIPT FAULT11,CODE_DESCRIPT,0,86h
   IDT_DESCRIPT FAULT12,CODE_DESCRIPT,0,86h
   IDT_DESCRIPT FAULT13,CODE_DESCRIPT,0,86h

.CODE
   DS_SAVE    DW ?
   ES_SAVE    DW ?
   SS_SAVE    DW ?

   STRING      DB 'ICH BIN IM PROTECTED-MODUS!'
   STRING_LEN  = $ - STRING

BEEP    PROC  FREQUENZ:WORD
   MOV DI,FREQUENZ          ; Frequenz des Tones
   MOV BX,10                ; Dauer des Tones in 0.2 Sek.
   MOV AL,182               ; Timer initialisieren
   OUT 43H,AL
   MOV DX,12H               ; Zeitschleife festlegen
   MOV AX,34DCh             ; Frequenz umrechnen
   DIV DI
   OUT 42H,AL               ; Umgerechnete Frequenz an den
   MOV AL,AH                ; Timer schicken
   OUT 42H,AL
   IN  AL,61H               ; Inhalt des Ports 61h retten
   MOV AH,AL
   OR  AL,3                 ; Lautsprecher einschalten
   OUT 61H,AL
WARTE:
   MOV CX,0DAD4h             ; Zeitschleife ca. 200 Millisekunden
l1:
   LOOP l1
   DEC BX                   ; Z„hler erniedrigen
   JNZ WARTE                ; Ausschalten ?
   MOV AL,AH                ; Port 61h wieder herstellen
   OUT 61H,AL               ; das heiát Lautsprecher aus
   RET
BEEP    ENDP

; ---------------------------------------------------------
; Rechnet eine Segment:Offset-Adresse in eine 24-Bit-Adresse
; um, die in der GDT abgelegt wird.
; ---------------------------------------------------------

SET_GDT_BASE    PROC BASE_OFF:WORD,BASE_SEG:WORD,GDT_NR:WORD

      PUSH AX
      PUSH CX
      PUSH DX
      PUSH DI

      MOV AX,BASE_SEG
      MOV DX,16
      MUL DX
      ADD AX,BASE_OFF
      ADC DL,0

      MOV DI,GDT_NR
      MOV CL,3
      SHL DI,CL
      ADD DI,2
      MOV GDT_ADR[DI],AX
      ADD DI,2
      MOV BYTE PTR GDT_ADR[DI],DL

      POP DI
      POP DX
      POP CX
      POP AX

      RET

SET_GDT_BASE    ENDP

; ---------------------------------------------------------
; Hier beginnen die Interrupt-Routinen 1-14
; ---------------------------------------------------------

FAULT13:
      PUSH 1000
      CALL BEEP
      MOV CX,0FFFFh
l2:
      LOOP l2
FAULT12:
      PUSH 1000
      CALL BEEP
      MOV CX,0FFFFh
l3:
      LOOP l3
FAULT11:
      PUSH 1000
      CALL BEEP
      MOV CX,0FFFFh
l4:
      NOP
      NOP
      NOP
      LOOP l4
FAULT10:
      PUSH 1000
      CALL BEEP
      MOV CX,0FFFFh
l5:
      NOP
      NOP
      NOP
      LOOP l5
FAULT09:
      PUSH 1000
      CALL BEEP
      MOV CX,0FFFFh
l6:
      NOP
      NOP
      NOP
      LOOP l6
FAULT08:
      PUSH 1000
      CALL BEEP
      MOV CX,0FFFFh
l7:
      NOP
      NOP
      NOP
      LOOP l7
FAULT07:
      PUSH 1000
      CALL BEEP
      MOV CX,0FFFFh
l8:
      NOP
      NOP
      NOP
      LOOP l8
FAULT06:
      PUSH 1000
      CALL BEEP
      MOV CX,0FFFFh
l9:
      NOP
      NOP
      NOP
      LOOP l9
FAULT05:
      PUSH 1000
      CALL BEEP
      MOV CX,0FFFFh
l10:
      NOP
      NOP
      NOP
      LOOP l10
FAULT04:
      PUSH 1000
      CALL BEEP
      MOV CX,0FFFFh
l11:
      NOP
      NOP
      NOP
      LOOP l11
FAULT03:
      PUSH 1000
      CALL BEEP
      MOV CX,0FFFFh
l12:
      NOP
      NOP
      NOP
      LOOP l12
FAULT02:
      PUSH 1000
      CALL BEEP
      MOV CX,0FFFFh
l13:
      NOP
      NOP
      NOP
      LOOP l13
FAULT01:
      PUSH 1000
      CALL BEEP
      MOV CX,0FFFFh
l14:
      NOP
      NOP
      NOP
      LOOP l14
FAULT00:
      PUSH 1000
      CALL BEEP
      MOV CX,0FFFFh
l15:
      NOP
      NOP
      NOP
      LOOP l15

      POP BX
      POP BX
      POP BX
      POP BX

; ---------------------------------------------------------
; Durchf?hren eines Reset
; ---------------------------------------------------------

      MOV AL,0FEh
      OUT 64h,AL
      HLT

; ---------------------------------------------------------
; Hier nach einem Reset der Real-Modus wieder eingeleitet.
; ---------------------------------------------------------

PROC_MODE_EXIT:
      MOV AX,CS:DS_SAVE
      MOV DS,AX
      MOV AX,CS:ES_SAVE
      MOV ES,AX
      MOV AX,CS:SS_SAVE
      MOV SS,AX

      MOV AL,MASK1_8259A
      OUT 021h,AL
      MOV AL,MASK2_8259A
      OUT 0A1h,AL


      JMP ENDE

; ---------------------------------------------------------
; Gibt die Zeichenkette STRING an einer festen Position auf
; dem Bildschirm aus.
; ---------------------------------------------------------

DISP            PROC

      MOV DX,SCREEN           ; Deskriptor f?r Screen laden
      MOV ES,DX

      MOV DI,5                ; Reihe
      MOV CL,4
      SHL DI,CL
      MOV AX,DI
      SHL DI,1
      SHL DI,1
      ADD DI,AX
      ADD DI,20               ; Spalte
      SHL DI,1
      LEA SI,STRING
      MOV CX,STRING_LEN
l16:
      MOV AL,CS:[SI]
      MOV ES:[DI],AL
      ADD DI,2
      INC SI
      LOOP l16
      RET
DISP            ENDP

; ---------------------------------------------------------
; Hier beginnt das Programm
; ---------------------------------------------------------

START:

; ---------------------------------------------------------
; Initialisierung
; ---------------------------------------------------------

      MOV DX,@DATA
      MOV DS,DX

; ---------------------------------------------------------
; Die Basisadresse f?r die globalen Deskriptoren definieren
; ---------------------------------------------------------

      PUSH 1
      PUSH DS
      PUSH OFFSET GDT_ADR
      CALL SET_GDT_BASE
      ADD SP,6

      PUSH 2
      PUSH DS
      PUSH OFFSET IDT_ADR
      CALL SET_GDT_BASE
      ADD SP,6

      PUSH 3
      PUSH DS
      PUSH 0
      CALL SET_GDT_BASE
      ADD SP,6

      PUSH 4
      PUSH DS
      PUSH 0
      CALL SET_GDT_BASE
      ADD SP,6

      PUSH 5
      PUSH SS
      PUSH 0
      CALL SET_GDT_BASE
      ADD SP,6

      PUSH 6
      PUSH CS
      PUSH 0
      CALL SET_GDT_BASE
      ADD SP,6

; ---------------------------------------------------------
; Deskriptor 8 ist f?r das Screen-Segment zust„ndig, falls ein
; Monochromadapter verwendet wird, muá 0B000h eingesetzt werden.
; ---------------------------------------------------------

      PUSH 8
      PUSH 0B800h
      PUSH 0
      CALL SET_GDT_BASE
      ADD SP,6

; ---------------------------------------------------------
; Segmentregister f?r den Real-Modus retten
; ---------------------------------------------------------

      MOV AX,DS
      MOV CS:DS_SAVE,AX
      MOV AX,ES
      MOV CS:ES_SAVE,AX
      MOV AX,SS
      MOV CS:SS_SAVE,AX

; ---------------------------------------------------------
; 8259A-Register retten
; ---------------------------------------------------------

      IN AL,021h
      MOV MASK1_8259A,AL
      IN AL,0A1h
      MOV MASK2_8259A,AL

; ---------------------------------------------------------
; CMOS f?r Neustart markieren, damit kein Warmstart erfolgt
; ---------------------------------------------------------

      MOV AL,0Fh
      OUT 70h,AL
      MOV AL,05h
      OUT 71h,AL

; ---------------------------------------------------------
; Sprungvektor f?r Neustart setzen
; ---------------------------------------------------------

      PUSH DS
      MOV DX,0040h
      MOV DS,DX
      MOV DI,067h
      MOV DX,OFFSET PROC_MODE_EXIT
      MOV [DI],DX
      ADD DI,2
      MOV DX,CS
      MOV [DI],DX
      POP DS

; ---------------------------------------------------------
; In den Protected-Modus schalten
; ---------------------------------------------------------

      MOV DX,DS
      MOV ES,DX
      LEA SI,GDT_ADR
      MOV BH,00
      MOV BL,08
      MOV AH,89h
      MOV CX,0FFFFh           ; Zeitschleife
ZEIT:

      LOOP ZEIT
      INT 15h

      PUSH 440
      CALL BEEP

      CALL DISP              ; Textausgabe

      MOV AL,0FEh            ; Reset durchf?hren
      OUT 064h,AL
      HLT
ENDE:
      MOV AH,01              ; Warten auf Tastendruck
      INT 21h

      MOV AH,4Ch             ; Zur?ck zu DOS
      INT 21h

END START

_________________
fully biological degradable

Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Paul
aka ICC, HV-Freak


Anmeldungsdatum: 11.09.2004
Beiträge: 588
Wohnort: Uelzen

BeitragVerfasst am: 23.01.2005, 20:40    Titel: Antworten mit Zitat

Puh..da waren die anderen Tutorials aber noch leichter durchgeknallt lachen

Naja egal, trotzdem danke. Mal sehen, aber ich glaub ich bekomme es in NASM nicht zum laufen. (Alles andere ist eh Schrott, NASM RULEZ ! durchgeknallt )
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 24.01.2005, 16:55    Titel: Antworten mit Zitat

TASM, NASM, MASM, PASM... Wie viele ASSEMBLER gibts denn noch?
Und wo sind die unterschiede?
Ich bin eigentlich ein ziemlicher Neuling in ASM, wie gesagt, den Code hab ich irgendwann mal gefunden...

Und vor allem, woher bekommt man die alle?

Ich schreibe zurzeit nur mit dem TASM 4.1 von Borland. Der soll ganz gut sein. Was hälst du von dem?
_________________
fully biological degradable

Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Paul
aka ICC, HV-Freak


Anmeldungsdatum: 11.09.2004
Beiträge: 588
Wohnort: Uelzen

BeitragVerfasst am: 24.01.2005, 17:03    Titel: Antworten mit Zitat

Also NASM gibts auch auf meiner HP durchgeknallt www.icc-software.de/asmdown.htm

Also TASM ist nicht so mein Favorit, MASM sowieso nicht. MASM ist von MICRO$CHROTT und total umständlich
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
marzec



Anmeldungsdatum: 13.10.2004
Beiträge: 267

BeitragVerfasst am: 24.01.2005, 23:49    Titel: Antworten mit Zitat

seh ich nicht so, nasm is recht lustig, aber masm bietet über all di makro geschichten, "funkionsdeklarationen" etc. etc eine äußerst angenehme umgebung zum entwickeln, wo nasm total abstinkt...
_________________
Yagl - yet another gameprogramming library
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Quark48



Anmeldungsdatum: 16.10.2004
Beiträge: 559
Wohnort: Saltendorf a.d. Naab bzw. Teublitz i.d. Oberpfalz / Bayern

BeitragVerfasst am: 15.02.2005, 06:51    Titel: Antworten mit Zitat

Hallo!

Nur so als "Beispiel"...

Ich kenne da wieder mal ein kleines BAS-Programm...
Zu finden in der ABC-Sammlung in der Kategorie "Protected Mode".
Dort wird unter QB direkt in den PM geschaltet und dann ein Text auf den Bildschirm geschrieben.


MfG das Spangengesicht happy
_________________
Grüßle, Stefan lächeln
***
Wenn ein Programm auf nem alten Rechner gut läuft, dann läuft´s auf nem neuen erst recht! happy
Ich habe/hatte keine feste Spange und auch keine Schwester. Der Rest stimmt. Es tut mir leid... :-/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Paul
aka ICC, HV-Freak


Anmeldungsdatum: 11.09.2004
Beiträge: 588
Wohnort: Uelzen

BeitragVerfasst am: 15.02.2005, 07:09    Titel: Antworten mit Zitat

durchgeknallt Hm, aber es geht ja grad darum das ganze in Assembler zu machen
Und außerdem blick ich durch diesen ganzen Kram mit LDT und GDT usw. nich durch
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Quark48



Anmeldungsdatum: 16.10.2004
Beiträge: 559
Wohnort: Saltendorf a.d. Naab bzw. Teublitz i.d. Oberpfalz / Bayern

BeitragVerfasst am: 15.02.2005, 13:38    Titel: Antworten mit Zitat

Hallo!

Ich werde aus diesem erst ein bisserl später mit dem Protected Mode anfangen.

Außerdem ist noch ein 32-Bit-DOS-Extender abundzu (Wenn nicht sogar dringend) erforderlich, dass man in den Protected Mode kommt. Ich habe daheim DJGPP (Ein Compiler für C/C++ unter DOS) und der braucht für "seine" kompilierten Programmchen auch einen DOS-Extender, damit sie laufen. (Ja wo laufen sie denn hin grinsen )
Der Extender heißt (Meine ich zu 99%) CWSDPMI

CWS - Name von dem Programmieren
DPMI - Bereitstellung von dem Protected Mode unter DOS (DosProtectedModeI???)

MfG das Spangengesicht happy
_________________
Grüßle, Stefan lächeln
***
Wenn ein Programm auf nem alten Rechner gut läuft, dann läuft´s auf nem neuen erst recht! happy
Ich habe/hatte keine feste Spange und auch keine Schwester. Der Rest stimmt. Es tut mir leid... :-/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Profi-Forum Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz