INT oder direkter Speicherzugriff

Diskussion zum Thema Programmierung unter DOS (Intel x86)
Antworten
Benutzeravatar
oDOSseus
LAN Manager
Beiträge: 239
Registriert: Di 10. Aug 2010, 15:21

INT oder direkter Speicherzugriff

Beitrag von oDOSseus »

Ich programmiere gerade wieder assembler neben den Vorkursen her und frug mich:
Ist die Textausgabe per int 10h eig. immer langsamer als das direkte Schreiben an die Stelle 0xB800 oder muss man schon einiges auf dem kasten haben, um es schneller zu machen?

Ihr wisst es doch bestimmt: Was ist schneller: Int 10h oder eine eigene routine?
freecrac
DOS-Guru
Beiträge: 861
Registriert: Mi 21. Apr 2010, 11:44
Wohnort: Hamburg Horn

Re: INT oder direkter Speicherzugriff

Beitrag von freecrac »

oDOSseus hat geschrieben:Ich programmiere gerade wieder assembler neben den Vorkursen her und frug mich:
Ist die Textausgabe per int 10h eig. immer langsamer als das direkte Schreiben an die Stelle 0xB800 oder muss man schon einiges auf dem kasten haben, um es schneller zu machen?

Ihr wisst es doch bestimmt: Was ist schneller: Int 10h oder eine eigene routine?
Die eigene Routine wird wohl schneller sein. Weil Code im ROM auch nicht so schnell ausgeführt werden kann, als wie im RAM und weil Int und Iret auch ein paar Taktzyklen verbrauchen.
Auch muss erst der Funktionscode(0Eh) im AH-Register ausgewertet werden, dabei wird auch überprüft ob zu anderen Funktionen verzweigt werden soll, bis eindeutig fest steht das im AH-Register 0Eh vorhanden ist und zu der dafür vorhandenen Routine verzweigt wird und nun erst die Textausgabe erfolgen kann.

Eine Textausgabe über "int21h AH=9" zum Bildschirm wird noch langsamer sein, weil von dort aus erst der int10h ausgeführt wird aber vorher noch geschaut wird, ob die Ausgabe nicht zu einem anderen Gerät/Datei umgeleitet wurde.

Dirk
Benutzeravatar
oDOSseus
LAN Manager
Beiträge: 239
Registriert: Di 10. Aug 2010, 15:21

Re: INT oder direkter Speicherzugriff

Beitrag von oDOSseus »

Allerbesten Dank =)
Antworten