Test Blu Bla

Gast #6903413
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
Gast #6903505
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.