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:

Programm aus Assembler starten?

 
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
REZK



Anmeldungsdatum: 28.10.2004
Beiträge: 109
Wohnort: Stuttgart

BeitragVerfasst am: 31.07.2006, 10:07    Titel: Programm aus Assembler starten? Antworten mit Zitat

Hallo,

ich hätte zwei Fragen:

- Wie starte ich ein (DOS) Programm aus Assembler heraus (mein Programm soll dabei gleichzeitig beendet werden)?
D.H quasi etwas adäquates zu "run programmname" unter QBasic.
Oder gibt es gar keine Interrupt Funktion dafür?

Ich habe die 4bh gefunden, weiss jemand, ob das die Funktion ist, nach der ich suche? Und wie funktioniert das genau mit dem "Parameterblock"?

- Weiss jemand zufällig einen Interrupt zur Veränderung der Dateiattribute einer Datei?

Vielen Dank im voraus,

MfG,
rezk
_________________
Meine sämtlichen QB Projekte findet ihr hier
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
raph ael



Anmeldungsdatum: 12.04.2006
Beiträge: 472

BeitragVerfasst am: 31.07.2006, 11:55    Titel: Antworten mit Zitat

Zu
REZK hat Folgendes geschrieben:
Wie starte ich ein (DOS) Programm aus Assembler heraus

K.A.

Zu
REZK hat Folgendes geschrieben:
mein Programm soll dabei gleichzeitig beendet werden

Das geht glaube ich nur manuell mit
Code:

mov ah,4Ch
int 21h

oder mit
Code:

int 20h

nach dem Programmaufruf.

Zu
REZK hat Folgendes geschrieben:
Weiss jemand zufällig einen Interrupt zur Veränderung der Dateiattribute einer Datei?


Verwende das DOS- Programm "attrib".

MfG Raphael
_________________
Zitat:
1000 Yottabytes sind absurd. 640 Yottabytes sollten genug für jeden sein.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
REZK



Anmeldungsdatum: 28.10.2004
Beiträge: 109
Wohnort: Stuttgart

BeitragVerfasst am: 31.07.2006, 13:20    Titel: Antworten mit Zitat

@ raphael: danke!


so hab jetzt zu Problem Nr. 1 folgendes gefunden:


Code:
:int 21,4b:exec function
^INT 21,4B - EXEC/Load and Execute Program

   AH = 4B
   AL = 00  to load and execute program
      = 01  (Undocumented)  create program segment prefix and load
       program, but don't execute.  The CS:IP and SS:SP of the
       program is placed in parameter block.   Used by debuggers
      = 03  load program only
      = 04  called by MSC spawn() when P_NOWAIT is specified
   DS:DX = pointer to an ASCIIZ filename
   ES:BX = pointer to a parameter block


   on return:
   AX = error code if CF set  (see ~DOS ERROR CODES~)
   ES:BX = when AL=1, pointer to parameter block similar to:

%   Offset Size          Description

     00   word   when AL=1, segment of env. or zero if using parents env.
          word   when AL=3, segment of load point for overlay
     02   dword  when AL=1, pointer to cmd line at PSP 80h
          word   when AL=3, relocation factor for EXE overlay
     06   dword  pointer to default ~FCB~ passed at ~PSP~ 5Ch
     0A   dword  pointer to default FCB passes at PSP 6Ch
     0E   dword  value of program SS:SP
     12   dword  value of program CS:IP


   - allows execution of an external program as well as overlay
     management from within an application
   - all registers except CS and IP are destroyed
   - SS and SP should be preserved in code segment before call
     since a bug in DOS version 2.x destroys these
   - return code can be retrieved if child process exits via ~INT 21,4C~
   - calling process must assure presence of enough unallocated memory
   - subfunction 4 returns with an error under DOS 4.x+
   - calls ~INT 21,55~

   - see also  ~INT 21,26~

[Quelle: HelpPC2.1, David Jurgens

Aber das mit dem Parameterblock verstehe ich immer noch nicht ganz. Wie kommt z.B. der name der Kommandozeile nach 80h? Reich da ein 80h an Stelle 02 des Parameterblocks?



Außerdem soll es noch eine undokumentierte 2eh Funktion des 21 geben. Weiss da jemand Bescheid?


Ich hoffe, jemand weiss weiter...


MfG,

baser
_________________
Meine sämtlichen QB Projekte findet ihr hier
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 31.07.2006, 13:28    Titel: Antworten mit Zitat

Hi.
Leider kann ich bei deinem jetzigen Problem nicht helfen. traurig

Funktion 0x2E (2Eh) des Int 0x21 ist folgendes:
Verify Flag setzen/zurücksetzen
AL: Verifystatus (0=kein Verify)

Register werden keine verändert, Flags werden auch nicht gesetzt. Ich weiß (noch) nicht, was das Verify Flag ist. neutral

Greets,
Mao
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Elvis



Anmeldungsdatum: 01.06.2006
Beiträge: 818
Wohnort: Deutschland, BW

BeitragVerfasst am: 31.07.2006, 14:52    Titel: Antworten mit Zitat

raph ael hat Folgendes geschrieben:

Code:

mov ah,4Ch
int 21h



Hättest nicht du das geschrieben, sondern ein anderer, dann wäre die Ehre deiner Website aber im Eimer gewesen... happy lachen zwinkern


Grüße, Elvis
_________________
Geforce 7300GT (256MB GDDR3, Gainward) -- 2x 512MB (DDR2 800, MDT) -- AMD Athlon64 X2 EE 3800+ -- Asrock ALiveNF5-eSATA2+
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Georgp24



Anmeldungsdatum: 30.06.2006
Beiträge: 81
Wohnort: Ahlen

BeitragVerfasst am: 01.08.2006, 17:42    Titel: Antworten mit Zitat

Die Fragen werden auch in diesem Buch von Günter Born beanwortet:

http://www.borncity.de/Library/DOSProgHB.PDF

Das Buch hat 800 Seiten und behandelt alle DOS-Interrupts.

Georg
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
REZK



Anmeldungsdatum: 28.10.2004
Beiträge: 109
Wohnort: Stuttgart

BeitragVerfasst am: 02.08.2006, 12:48    Titel: Antworten mit Zitat

@georg: Da habe ich ja endlich ein Nachschlagewerk für die Interrupts in Deutsch! Vielen Dank!
_________________
Meine sämtlichen QB Projekte findet ihr hier
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
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
Seite 1 von 1

 
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