ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
1286
1286
EMPFEHLEN
-
06.03.10 13:47 #1
Hi,
ich schreibe grade an einem kleinen BS in Assembler (mit NASM-Code) und möchte dafür einen Timer verwenden.
Bei meinen bisherigen Suchen kam heraus, dass ich mit org 0Bh einen Interrupt festlegen kann, welcher den Timer verwaltet. (Stimmt das?)
Dazu habe ich folgendes programmiert:
Aber der Code wird nicht ausgeführt. Woran liegt das?Code :1 2 3 4
org 0Bh jmp timerint timerint: ;...Code...
-
06.03.10 17:12 #2
Für den Timer muss man doch einen Interrupt-Behandler einrichten.
Wie funktioniert das?
-
09.03.10 15:40 #3
Ich stell hier nochmal die Frage, wie man auf einen Interrupt reagieren kann.
Wie kann man dafür eine eigene Funktion einbauen?
-
11.03.10 18:21 #4
Ich habe es jetzt dank der Hilfe von SGC-Fireball geschafft!

Jetzt habe ich aber leider ein weiteres Problem. Ich möchte mit dem INT 1Ah und AH = 0h die Uhrzeit auslesen, jedoch wenn ich mit Bochs das OS starte, ohne dass die Funktion überhaupt ausgeführt wird, kommt diese Fehlermeldung:
Wie kann ich das verhindern?00014376399e[CPU0 ] prefetch: EIP [00010000] > CS.limit [0000ffff]
00014376401e[CPU0 ] prefetch: EIP [00010000] > CS.limit [0000ffff]
00014376403e[CPU0 ] prefetch: EIP [00010000] > CS.limit [0000ffff]
00014376405e[CPU0 ] prefetch: EIP [00010000] > CS.limit [0000ffff]
00014376407e[CPU0 ] prefetch: EIP [00010000] > CS.limit [0000ffff]
00014376409e[CPU0 ] prefetch: EIP [00010000] > CS.limit [0000ffff]
00014376411e[CPU0 ] prefetch: EIP [00010000] > CS.limit [0000ffff]
...
-
11.03.10 20:36 #5
Für alle, die der Code interessiert, poste ich ihn hier mal:
Code asm:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
register_interrupt: push dx push es xor ax, ax mov es, ax cli mov word [es:1ch*4], _int0x1c ; Pointer auf den Handler mov [es:1ch*4+2], cs ; Pointer auf CS sti pop es pop dx ret _int0x1c: _int0x1c_ser0x01: ; funktion 0x01 cli ;Interrupts ausschalten mov si, Meldung _int0x1c_ser0x01_start: lodsb ; nächstes Byte laden or al, al ; 0-Byte? mov ah, 0x0E ; BIOS Teletype mov bh, 0x00 ; Page 0 mov bl, 0x07 ; Text-Attribute int 0x10 ; BIOS-Call jmp _int0x1c_ser0x01_start _int0x1c_ser0x01_end: sti jmp _int0x1c_end _int0x1c_end: iret ;Zur Registrierung der Interrupt-Routine: call register_interrupt
Die Ausgabe ist zwar unsinnig (erst der Text, dann nur noch "S ", beim Kopieren aus Bochs dann plötzlich "Sÿ"), aber wichtig ist ja, dass das unabhängig vom eigentlichen Code läuft. Der Inhalt des Interrupt Handlers ist ja dann beliebig veränderbar.
Druecken Sie eine Taste, um das OS zu starten.
SÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿ
SÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿ
SÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿ
SÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿ
SÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿ
SÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿ
SÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿ
SÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿ
SÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿ
SÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿ
SÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿ
SÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿSÿ
An dieser Stelle nochmal die Frage, warum beim Auslösen des Interrupts 1A in Bochs diese seltsame Fehlermeldung kommt.
PS: Echt klasse, dass es hier sogar ASM-Syntax Highlighting gibt.
Ein Assembler-Unterforum wäre auch klasse!
Ähnliche Themen
-
[Assembler] Eigenes Betriebssystem unter VirtualBox
Von Jellysheep im Forum Sonstige SprachenAntworten: 2Letzter Beitrag: 03.11.09, 09:15 -
Eigenes Betriebssystem ohne Assembler
Von xp_user im Forum Sonstige SprachenAntworten: 2Letzter Beitrag: 05.08.07, 22:43 -
Assembler Betriebssystem
Von Iron-Rose im Forum Sonstige SprachenAntworten: 1Letzter Beitrag: 28.05.05, 17:03 -
Problem mit Assembler ( NASM )
Von Stephan Boettcher im Forum Sonstige SprachenAntworten: 2Letzter Beitrag: 07.05.05, 15:46 -
Assembler - NASM läuft nicht! Newbie braucht Hilfe
Von nepenthes im Forum Sonstige SprachenAntworten: 1Letzter Beitrag: 19.10.03, 20:28





Zitieren
Login





