Hallo,
Ich habe nun TeeJay's code kopiert (jaja, ich weiß, aber ich wollte mir halt mal den PMode in Asm ansehen
) und nun wollte ich ein Zeichen ausgeben, doch musste ich feststellen das es nicht funktioniert...mein (Test-) PC blinkt noch (also dieser "_") und rebootet nicht oder so...er gibt nur einfach kein Zeichen aus...kann mir da jemand helfen?
Ich habe nun TeeJay's code kopiert (jaja, ich weiß, aber ich wollte mir halt mal den PMode in Asm ansehen
) und nun wollte ich ein Zeichen ausgeben, doch musste ich feststellen das es nicht funktioniert...mein (Test-) PC blinkt noch (also dieser "_") und rebootet nicht oder so...er gibt nur einfach kein Zeichen aus...kann mir da jemand helfen?Code: [Auswählen]
[BITS 16]
jmp Start
DescriptorNull:
dd 0
dd 0
DescriptorCode:
dw 0xFFFF
dw 0
db 0
db 0x9A
db 0xCF
db 0
DescriptorData:
dw 0xFFFF
dw 0
db 0
db 0x92
db 0xCF
db 0
GlobalDescriptorTable:
Limit dw 0
Base dd 0
Start:
cli
mov eax, cs
mov ds, ax
shl eax, 4
mov [DescriptorCode+2], ax
mov [DescriptorData+2], ax
shr eax, 16
mov [DescriptorCode+4], al
mov [DescriptorData+4], al
mov eax, cs
shl eax, 4
add eax, DescriptorNull
mov [Base], eax
mov [Limit],WORD GlobalDescriptorTable - DescriptorNull - 1
lgdt [GlobalDescriptorTable]
mov eax, cr0
or eax, 1
mov eax, cr0
db 0xea ;Bitmuster für einen FAR JUMP
dw ProtectedMode
dw 0x8
[BITS 32]
ProtectedMode:
mov WORD [DescriptorCode+2], 0
mov WORD [DescriptorData+2], 0
mov BYTE [DescriptorCode+4], 0
mov BYTE [DescriptorData+4], 0
mov eax, 2
shl eax, 3
mov ds, ax
mov ss, ax
mov es, ax
mov eax, 0
mov fs, ax
mov gs, ax
mov esp, 0x1FFFFF
jmp 0x8:0x10000 + ProtectedMode2
ProtectedMode2:
mov eax, 0xb800
mov bh, 'p'
mov [eax], bh
Endless:
jmp Endless

Übersicht
Wiki
Hilfe
Suche
Einloggen
Registrieren
Drucken

Gespeichert

