Interrupt 10h
Übersicht

![]() |
Lord StweccysBetreff: Interrupt 10h |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich beschäftige mich immoment mit Assembler, genauer mit Assembler für DOS.
Die Programme teste ich unter DosBox und das geht auch ganz gut. ![]() Nur irgendwie funktioniert mein Programm nicht, wenn ich Grafikbefehle per Interrupt 10h ausführen will. Ich schreibe ein Programm, welches die Grafikauflösung ändert und einen farbigen Pixel hinzeichnet. Die Grafikauflösung ändert sich, aber sonst passiert nichts. ![]() Kennt sich jemand mit Dos, bzw. Interrupt 10h für DOS aus und kann mir sagen, ob ich irgendwas vergessen hab oder falsch mache. Danke jetztschonmal ![]() |
||
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ein bisschen Code wäre gut. Relevant ist wahrscheinlich eher der Pixel-Zeichnen-Teil. Ich kenne zwar Mode 10h nicht, aber ich werde Mal sehen, was ich tun kann.
mfg Thunder |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
![]() |
Lord Stweccys |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sowas in der Richtung:
Code: [AUSKLAPPEN] ORG 100h ;Wikipedia mov ax, cs ;Wikipedia mov ds, ax ;Wikipedia mov ah,00h ;Videomodus setzen mov al,13h int 10h mov ah,0Ch ;Pixel malen mov cx,100 mov dx,100 mov al,16 ;Irgendein Wert, hier hab ich keine Ahnung int 10h mov ax, 4C00h ;Wikipedia int 21h ;Wikipedia Achtung: Das ganze muss unter DOS (unter Windows emuliert mit DosBox) ausgeführt werden; Unter Windows gibt es eine Fehlermeldung |
||
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also, ich habe den Code jetzt ein bisschen umgebaut und glaube nicht, dass du etwas vergessen hast. Ich habe das Pixelzeichnen durch eine Routine ersetzt, die den ganzen Hintergrund weiß macht:
Code: [AUSKLAPPEN] org 100h
mov ax, cs mov ds, ax xor ah,ah mov al,13h int 10h mov ah,0bh xor bh,bh ; Vielleicht weil du das nicht drinnen hast? int 10h xor dx,dx mov ah,0Ch xor bh,bh mov al,0x0F outer_loop: mov cx,320 inner_loop: int 10h loop inner_loop inc dx cmp dx,200 jle outer_loop mov ax, 4C00h int 21h int 20h Was ich mir nicht erklären kann ist, dass der Pixel (0|0) immer schwarz bleibt. mfg Thunder |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
![]() |
Lord Stweccys |
![]() Antworten mit Zitat ![]() |
---|---|---|
Äh, kurze Frage: Was bringt dieses Xor bh,bh bzw. Xor dx,dx? | ||
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das sind nur andere Schreibweisen für mov bh,0 und mov dx,0, die aber weniger Speicher verbrauchen (1 Byte, statt 2):
Code: [AUSKLAPPEN] XOR:
10011101 10011101 -------------- 00000000 |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
![]() |
Lord Stweccys |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oh, genial ![]() Sicherlich gut zu Wissen. Danke nochmal, du hast mir sehr geholfen. ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group