Problem durch zu große Zahlen



  • Hallo,
    ich möchte den Farbwert FFFFFFh ins Register bl schreiben, aber ich bekomme dann immer die fehlermeldung vom nasm: "byte value exeecds bounds" Wie bekomme ich das Problem gelöst? Danke schonmal 😉



  • Wie willst du einen 24bittigen Wert in ein 8bittiges Register schreiben?



  • Naja, mein problem ist, ich arbeite im vesa modus 800x600 16-bit Farbtiefe.
    Nun will ich ein ASCII Zeichen ausgeben mit folgender Funktion:

    mov ah, 0Eh
    mov al, 68
    mov bl, 00FF00h
    int 10h

    das geht natürlcih nicht, aber wie schaffe ich es tortzdem diesen Farbwert für das Zeichen zu setzen? gibt es im Vesa Modus auch die Möglichkeit bl 32-bittig zu machen und wenn ja wie heißt dieses alternativ register? Danke schonmal! Vielleicht kannst du /ihr ja auch den obenstehenden code korrigieren,w enn ihr wisst was da falsch läuft.



  • Diese Textausgabefunktionen funktionieren wahrscheinlich gar nicht in diesem Modus.



  • Kennst du eine Alternative?
    Es muss ja irgendeine Möglichkeit geben, denn wenn 16/32-bit Farbtiefe unterstützt wird, dann muss man ja auch entsprechende Farbwerte setzen könne oder bin ich da falsch?



  • Hi.

    Es gibt AFAIK VESA-Modi, die unterstuetzen auch die Textausgabe mittels dieser TeleType-Funktion (ist nicht selbstverstaendlich!). Ich koennte mit vorstellen, dass der Farbwert bei Grafikmodi mit >8Bit Farbtiefe in (e)bx uebergeben wird - ausprobiert habe ich es noch nicht, das ueberlasse ich gern dir. 😉



  • sevobal schrieb:

    Kennst du eine Alternative?

    Selber zeichnen.



  • die sache mit (e)bx funktioniert nicht....könntest du mir erläutern was du mit selbr zeichnen meinst oder mir sagen wie das gehen soll? danke!



  • Wie zeichnet man etwas? Man setzt Pixel auf bestimmte Farbwerte. Wie geht das? Gab erst vor kurzem zwei Threads dazu hier im Assembler-Forum (irgendwas mit Mauszeiger hatten die glaub ich im Subject).



  • Naja, aber wenn ich selber zeichne, dann muss ich der Pixel ja auch eine Farbwert geben, welche dann auhc wieder in FFFFFFh wäre und somit zu groß für das register oder liege ich da falsch?



  • Wieso willst du überhaupt in Assembler programmieren? Es sieht nicht so aus, als ob du dich damit auch nur rudimentär auskennen würdest.

    Es sagt ja keiner, dass du unbedingt genau dieses Register verwenden musst, wenn du's eh selber machst.


Anmelden zum Antworten