Forum: PC-Programmierung Test Blu Bla


von Günther A. D. Hauptmann (Gast)


Lesenswert?

Liebe Leute,
das folgende Minimalbeispielprogramm soll mein Problem mit DOS und COM 
Dateien zeigen.
Es soll in **label0** das Code Segment mit 0x10 multipliziert werden um 
dann mit einem **retf** angepasst zu werden,
sodass der Offset von 0x100 der COM Datei zu 0 wird. Leider funktioniert 
das nicht, warum?
1
jmp label0
2
label1:
3
mov ax, cs
4
mov es, ax
5
mov ss, ax
6
mov ds, ax
7
xor sp, sp
8
mov ax, 0xE40
9
xor bx, bx
10
int 0x10
11
jmp $
12
label0:
13
mov ax, cs
14
mov ss, ax
15
xor sp, sp
16
mov cl, 0x4
17
shl ax, cl
18
;mov ax, 0x7C0
19
push ax
20
mov ax, label1
21
push ax
22
times 0x1fe-$+$$ db 0
23
dw 0xaa55
**label1** gibt ein @ aus um den Erfolg zu zeigen.
Der Kommentar macht die Datei mit **qemu** bootbar.
Getestet habe ich mit **nasm** und **dosbox**.
Vielen lieben Dank

von Jim M. (turboj)


Lesenswert?

Was passiert im Debugger?

Ich sehe nicht, wie nach der Ausführung vom label10 und folgendem Code 
zurück gesprungen werden soll. Nach dem letzten Push AX wird nur 0 
(NULL) als Opcode ausgeführt - keine Ahnung was das als X86 Instruktion 
so macht.

von Günther A. D. Hauptmann (Gast)


Lesenswert?

Jim M. schrieb:
> Was passiert im Debugger?
Danke jetzt gehts.
1
jmp label0
2
label1:
3
mov ax, cs
4
mov es, ax
5
mov ss, ax
6
mov ds, ax
7
xor sp, sp
8
mov ax, 0xE40
9
xor bx, bx
10
int 0x10
11
jmp $
12
label0:
13
mov ax, cs
14
mov ss, ax
15
xor sp, sp
16
add ax, 0x10
17
;mov ax, 0x7C0
18
push ax
19
mov ax, label1
20
push ax
21
retf
22
times 0x1fe-$+$$ db 0
23
dw 0xaa55

von Rolf M. (rmagnus)


Lesenswert?

Günther A. D. Hauptmann schrieb:
> Test Blu Bla

Hallo, hallo, 1, 2, 3.

von Der 5. Mann am Tisch (Gast)


Lesenswert?

Rolf M. schrieb:
> Günther A. D. Hauptmann schrieb:
>> Test Blu Bla
>
> Hallo, hallo, 1, 2, 3.

Du bist doch schon wieder angetrunken!

von 100Ω W. (tr0ll) Benutzerseite


Lesenswert?

Noch aussagekräftigere Namen für den Thread gibt es nicht?

SCNR

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.