Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

eigene input funktion per asm

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
hitori04



Anmeldungsdatum: 21.04.2011
Beiträge: 53

BeitragVerfasst am: 21.10.2011, 21:30    Titel: eigene input funktion per asm Antworten mit Zitat

wie die überschrift schon aussagt will ich eine eigene input funktion in asm realisieren dafür hab ich mein asm buch das schon einige jahre alt ist befragt und bekomme es nun nicht gebacken .. wenn sich als eine von euch meiner erbamen würde und mir ein denk anstoß geben würde wäre das sehr nett


und soe sieht der code:
Code:


   Asm
   m1:
   push bx
   mov bh, ah
   mov ah,&h01
   Int &h21
   mov ah, bh
   pop bx
   jmp m1
   End Asm


aus ...danke im vorraus happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 21.10.2011, 22:10    Titel: Antworten mit Zitat

Hi,
unter reinem DOS wird der int16 für Tastatureingabe genutzt.
Unter Windows funktionieren die Interrups meist nicht mehr, da gibt es eigene Input Routinen (unter Linux ebenso).
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 21.10.2011, 22:10    Titel: Antworten mit Zitat

Hallo,

so wird das in FreeBASIC nicht funktionieren. zwinkern
Siehe http://forum.qbasic.at/viewtopic.php?t=7572

Viele Grüße!
Sebastian
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
hitori04



Anmeldungsdatum: 21.04.2011
Beiträge: 53

BeitragVerfasst am: 21.10.2011, 22:20    Titel: Antworten mit Zitat

wie würden den diese register aussehen?
trotzdemn danke für die schnellen antworten happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 22.10.2011, 11:39    Titel: Antworten mit Zitat

welche Register?

Wichtig zu wissen ist erst mal auf welchem Betriebssystem du das betreiben willst?
(siehe oben)
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
hitori04



Anmeldungsdatum: 21.04.2011
Beiträge: 53

BeitragVerfasst am: 22.10.2011, 14:35    Titel: Antworten mit Zitat

mit dem Kopf durch die Mauer wollen sorry ich war gestern ziemlich müde und hab mich wohl ziemlich geirrt,sorry...

ich will es auf windows betreiben ..linux kommt später irgendwann dran durchgeknallt
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 22.10.2011, 20:08    Titel: Antworten mit Zitat

Ein einfaches Programm 'Input String' als Console unter Windows:
Code:
Dim a As String
Input a
Print a
Sleep

Diesen Asm-Code macht der FBCompiler daraus. Nicht so einfach wie unter DOS.
Code:
.globl _main
_main:
push ebp
mov ebp, esp
and esp, 0xFFFFFFF0
sub esp, 16
mov dword ptr [ebp-4], 0
call ___main
push 0                         'das Gerüst für einen String anlegen
push dword ptr [ebp+12]
push dword ptr [ebp+8]
call _fb_Init@12
.Lt_0002:
mov dword ptr [ebp-16], 0
mov dword ptr [ebp-12], 0
mov dword ptr [ebp-8], 0
push -1                         'Speicherplatz für den String reservieren
push -1
push 0
push offset _Lt_0000
call _fb_StrAllocTempDescZEx@8
push eax                      'Eingabe für eine Console
call _fb_ConsoleInput@12
push 0                         'Eingaberoutine
push -1
lea eax, [ebp-16]
push eax
call _fb_InputString@12
push 1
lea eax, [ebp-16]
push eax
push 0
call _fb_PrintString@12
push -1
call _fb_Sleep@4
lea eax, [ebp-16]
push eax
call _fb_StrDelete@4
.Lt_0003:
push 0
call _fb_End@4
mov eax, dword ptr [ebp-4]
mov esp, ebp
pop ebp
ret

_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Sannaj



Anmeldungsdatum: 19.12.2010
Beiträge: 35

BeitragVerfasst am: 22.10.2011, 21:21    Titel: Antworten mit Zitat

Unter Linux gibt es ebenfalls direkte Syscalls als Subfunktion von int 60h. Allerdings weiß ich nicht genau wie man da die Außgabe macht.

Wozu brauchst du eigentlich die direkte Ausgabe?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
hitori04



Anmeldungsdatum: 21.04.2011
Beiträge: 53

BeitragVerfasst am: 22.10.2011, 22:39    Titel: Antworten mit Zitat

ich brauche es zum einen für verschiedene sachen und zum anderen ( dem hauptgrund dahinter) für den versuch ein eigenes os zu schreiben ...bzw mich auf diesem gebiet zu versuchen, ich habe mal eine kernel.bas gefunden die für fb geschrieben wurde auf dieser basierend wollte ich weiter arbeiten daher auch dieser topic hier ...happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
darkinsanity
aka sts


Anmeldungsdatum: 01.11.2006
Beiträge: 456

BeitragVerfasst am: 23.10.2011, 17:49    Titel: Antworten mit Zitat

Sannaj hat Folgendes geschrieben:
Unter Linux gibt es ebenfalls direkte Syscalls als Subfunktion von int 60h. Allerdings weiß ich nicht genau wie man da die Außgabe macht.


Linux nutzt für Syscalls int 80h.

@hitori04:
Hier findest du ganz unten was du suchst, zumindest für Linux (in AT&T Syntax, aber das sollte kein Problem sein): http://www.lowlevel.eu/wiki/Teil_3_-_Trocken%C3%BCbungen
Unter Windows ist das ganze bedeutend hässlicher (hässlich wenn man nur ein Hello World ausgeben will, nicht falsch verstehen): http://www.nymtec.com/assembly-console-hello-world

lowlevel ist auch eine weit bessere Quelle um mit OS-Dev zu beginnen zwinkern

Falls du noch etwas FreeBASIC-bezogenes im Bereich OS-Dev brauchst, hab ich da noch ein paar Links:

http://sourceforge.net/projects/frostkernel/
http://www.freebasic-portal.de/projekte/x86-kernel-26.html
http://www.lowlevel.eu/wiki/FreeBASIC
http://wiki.osdev.org/FreeBasic_Barebones
_________________
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst -- Steve Wozniak
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz