Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Allgemeines (OffTopic) » grafikmodus in assembler

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 < [ 3 ]
010
05.10.2003, 20:01 Uhr
Pablo
Supertux
(Operator)


16 - Bits zur Codierung der Farben, wenn ich mich nicht irre.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
05.10.2003, 23:21 Uhr
~Hötz
Gast


Hi,

Also ist schon lange her, daß ich mich mit Assembler beschäftigt habe. Jedenfalls hab ich damals keinen Interrupt benutzt um Pixel zu malen, weil das viel zu langsam ist. Hab direkt in den Grafikspeicher geschrieben. Da mußte man dann natürlich aufpassen, daß man auch wirklich in den Grafikspeicher schreibt(Register richtig setzen) und nicht irgendwo daneben, sonst kann alles mögliche passieren z.B. Absturz. Vielleicht ist deinem Proggi ja irgendsowas passiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
06.10.2003, 15:52 Uhr
erpelqueen
Entlein


Sagt mal wie proggt man eigentlich in assembler?
Das ist doch das mit 0n und 1en???
Wo gibs den dazu einen compiler(assembler)
????
--
TSchöööööööö ,
How dy How, Ranger Joe
--------------------------------------
www.erpelstore.de.vu
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
06.10.2003, 16:13 Uhr
virtual
Sexiest Bit alive
(Operator)


@erpelqueen.
Die 0en und 1en nennt man "Maschinencode". Assembler ist nicht direkt Maschinencode, sondern eine mehr oder weniger lesbare Darstellungsweise von Maschinencode. Dh auch Assembler muß erst mal in Maschinencode übersetzt werden.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
06.10.2003, 17:14 Uhr
Bruder Leif
dances with systems
(Operator)


Moin!

Abgesehen davon, daß Mode 10 für ein OS nicht unbedingt optimal ist (und die BIOS-Routinen lahm wie noch was), hier mal ein kleines altes Beispiel:


Code:
.model small
.stack
.code
.386

STORECOLORS MACRO
    mov al, bl
    out dx, al
    mov al, bh
    out dx, al
    mov al, ah
    out dx, al
ENDM

Start:
    mov ax, SEG _DATA
    mov ds, ax
    mov es, ax
    mov ax, 013h
    int 010h
    cld
    xor cx, cx
    lea di, bSin
_sin1:
    fldpi
    mov wBuffer, cx
    fild wBuffer
    fmulp st(1), st
    mov wBuffer, 128
    fild wBuffer
    fdivp st(1), st
    fsin
    fld1
    faddp st(1), st
    mov wBuffer, 63
    fild wBuffer
    fmulp st(1), st
    fistp wBuffer
    mov ax, wBuffer
    stosb
    inc cl
    jnz _sin1
    mov ax, 0a000h
    mov es, ax
    mov dx, 03c8h
    out dx, al
    inc dx
    xor ah, ah
    mov bx, 03f00h
    mov cx, 64
_pal1:
    STORECOLORS
    dec bh
    inc bl
    LOOP _pal1
    mov cx, 64
_pal2:
    inc bh
    dec bl
    STORECOLORS
    LOOP _pal2
    mov cx, 64
_pal3:
    STORECOLORS
    inc ah
    inc bl
    LOOP _pal3
    mov cx, 64
    dec ah
_pal4:
    dec bl
    STORECOLORS
    dec bh
    LOOP _pal4
_plasma1:
    xor ax, ax
    mov di, ax
    mov y, ax
    lea bx, bSin
_draw1:
    mov ax, y
    add ax, DeltaX
    xlatb
    mov wBuffer, ax
    mov x, 0
_draw2:
    mov ax, x
    add ax, DeltaX
    xlatb
    add ax, y
    add ax, 64
    xlatb
    mov dx, ax
    mov ax, x
    add ax, wBuffer
    add ax, 64
    xlatb
    add dx, ax
    mov al, dl
    stosb
    inc x
    cmp x, 320
    jne _draw2
    inc y
    cmp y, 200
    jne _draw1
    inc DeltaX
    mov ah, 1
    int 016h
    jnz _ende
    mov dx, 03dah
_Retrace:
    in al, dx
    and al, 8
    jz _Retrace
    jmp _plasma1
_ende:
    mov ax, 003h
    int 010h
    mov ax, 04c00h
    int 021h

.data
DeltaX    DW 0
wBuffer    DW ?
x    DW ?
y    DW ?
bSin    DB 256 DUP (?)

END Start



Nicht lachen, ist noch aus meiner Wenig-Kommentare-Sind-Schön-Zeit...

Der _sin-Teil erstellt die Sinusdaten fürs Plasma, der _pal-Teil erstellt die Farbpalette, und von _plasma1 bis_Retrace wird jeweils EIN Bildschirm aufgebaut. _Retrace wartet auf den vertikalen Retrace = Graphikkarte hat das Bild vollständig aufgebaut -> nächstes, und _ende springt bei ESC raus.
Viel Spaß damit...
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
06.10.2003, 20:11 Uhr
~coolyo
Gast


hm..vonner theorie her isses ja ganz nett..aber wennich das proggy mit nasm compilen will kommen zu ca. 30 fehlermeldungen....... in sofern..hääää
kannst du selber es denn compilen?...wenn ja, dann poste das plz ma als asm-file inner anlage .....so, dassichs nurnoch suagen und compilen muss...denn wenns selbst dann ned funzt is wohl wirklich mein compiler im A****
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
06.10.2003, 20:13 Uhr
~Coolyo
Gast


(kennt wer nen guten free- oder shareware disassembler, der auch noch funzt)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
06.10.2003, 20:23 Uhr
Tommix



Hallo,
bin seinerzeit mit D86 ganz gut klar gekommen.

Gruss, Tommix


Bearbeitung:
Ich ziehe die Bemerkung zurück. Das ist ein Debugger, kein Disassembler. Es gibt (gab?) aber R86 (Re-Assembler), der war auch nicht schlecht.

Dieser Post wurde am 06.10.2003 um 20:25 Uhr von Tommix editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
018
06.10.2003, 21:53 Uhr
Bruder Leif
dances with systems
(Operator)


Moin!

Source ist für TASM, nicht NASM. Sorry. Sollte aber kein Problem sein, das anzupassen, sind nur andere Assembler-Befehle, die Mnemonics bleiben gleich.
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
019
07.10.2003, 16:45 Uhr
~coolyo
Gast


huch... was isn' TASM ? .....
sind nich alle assemblercompiler für das selbe assembler.....es gibt doch nur eine art der assembler sprache....oder?....zumindest was das assembler ohne dos ect. angeht..

hmm..naja jedenfalls THX @ ALL
es funzt nämlich jetzt.... der basisfehler lag nämlich wirklich an dem 08h, was eigentlich 0Bh hätte sein müssen.. da ich mit 08h aber um es hinzubekommen zu viel rumprobiert hatte, hats dann mit 0Bh auch ned mehr gefunzt, weilich eben nen falschen video-modus ect. angegeben hatte..naja.. jedenfalls habich das eben nochma neu geschrieben und jetzt funztes .. vielen dank
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 < [ 3 ]     [ Allgemeines (OffTopic) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: