Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
REZK
Anmeldungsdatum: 28.10.2004 Beiträge: 109 Wohnort: Stuttgart
|
Verfasst am: 31.07.2006, 10:07 Titel: Programm aus Assembler starten? |
|
|
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 |
|
|
raph ael
Anmeldungsdatum: 12.04.2006 Beiträge: 472
|
Verfasst am: 31.07.2006, 11:55 Titel: |
|
|
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
oder mit
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 |
|
|
REZK
Anmeldungsdatum: 28.10.2004 Beiträge: 109 Wohnort: Stuttgart
|
Verfasst am: 31.07.2006, 13:20 Titel: |
|
|
@ 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 |
|
|
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 31.07.2006, 13:28 Titel: |
|
|
Hi.
Leider kann ich bei deinem jetzigen Problem nicht helfen.
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.
Greets,
Mao _________________ Eine handvoll Glück reicht nie für zwei.
--
|
|
Nach oben |
|
|
Elvis
Anmeldungsdatum: 01.06.2006 Beiträge: 818 Wohnort: Deutschland, BW
|
Verfasst am: 31.07.2006, 14:52 Titel: |
|
|
raph ael hat Folgendes geschrieben: |
|
Hättest nicht du das geschrieben, sondern ein anderer, dann wäre die Ehre deiner Website aber im Eimer gewesen...
Grüße, Elvis _________________ Geforce 7300GT (256MB GDDR3, Gainward) -- 2x 512MB (DDR2 800, MDT) -- AMD Athlon64 X2 EE 3800+ -- Asrock ALiveNF5-eSATA2+ |
|
Nach oben |
|
|
Georgp24
Anmeldungsdatum: 30.06.2006 Beiträge: 81 Wohnort: Ahlen
|
|
Nach oben |
|
|
REZK
Anmeldungsdatum: 28.10.2004 Beiträge: 109 Wohnort: Stuttgart
|
Verfasst am: 02.08.2006, 12:48 Titel: |
|
|
@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 |
|
|
|