the Hellboard
Zum Portal Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Portal » the Hellboard » Computer und Co » Software » Coder Forum » Assembler » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Zum Ende der Seite springen Assembler
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Pirroh Pirroh ist männlich
Otto Normalposter


images/avatars/avatar-1702.png

Dabei seit: 10.10.2004
Beiträge: 110
Herkunft: Breskens / Niederlande

Level: 35 [?]
Erfahrungspunkte: 785.525
Nächster Level: 824.290

38.765 Erfahrungspunkt(e) für den nächsten Levelanstieg

Assembler Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich will doch mal wissen, wer hier alles schon mal Assembler geschrieben hat. Wer nur die höheren Programmiersprachen gewohnt ist, der wird Assembler hassen und sich davor zurückhalten. (Ich muss mich schin dazu zwingen Augenzwinkern ). Vielleicht habt ihr auch ein paar beispielprogramme? Ich hänge mal meine Bin-Watch an.



code:
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:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
.MODEL small
.STACK 100h

.DATA
  Minute DB 0
  Stunde DB 0
  Sekunde DB 0

  Hintergrundfarbe   DB 01100000b
  Hintergrundfarbe_2 DB 01110000b
  schriftfarbe       DB 00001111b
  farbe_null         DB 00110000b
  farbe_eins         DB 01010000b
  balkenlaenge       DB 00001101b
  
.CODE

  mov     ax,@data
  mov     ds,ax
;-----
  call cls

  mov ch,20h
  mov cl,20h
  mov ah,01h
  int 10h

@schleife:
  mov dl,1
  mov dh,1
  mov bh,0
  mov ah, 02h
  int 10h
  
  mov bx,040h
  mov es,bx
  mov byte ptr cx,es:[6eh]
  mov al, cl
  mov stunde, cl
  aam

  mov si,712

  mov cl, ah
  mov ch, al
  add cl, 30h
  add ch, 30h

  mov ax,0b800h
  mov es,ax

  mov dl, hintergrundfarbe
  add dl, schriftfarbe
  mov byte ptr es:[si],cl
  mov byte ptr es:[si+1],dl
  mov byte ptr es:[si+2],ch
  mov byte ptr es:[si+3],dl
  mov byte ptr es:[si+4],':'
  mov byte ptr es:[si+5],dl

  mov     ax,40h
  mov     es,ax
  mov     ax,es:[6ch]
  mov     bx,1000
  mul     bx
  mov     bx,18200
  div     bx

  mov     dx,0
  mov     bl,60
  div     bl
  mov minute, al
  mov sekunde, ah
  push    ax

  aam

  mov cl, ah
  mov ch, al
  add cl, 30h
  add ch, 30h

  mov ax,0b800h
  mov es,ax
  
  mov dl, hintergrundfarbe
  add dl, schriftfarbe
  mov byte ptr es:[si+6],cl
  mov byte ptr es:[si+7],dl
  mov byte ptr es:[si+8],ch
  mov byte ptr es:[si+9],dl
  mov byte ptr es:[si+10],':'
  mov byte ptr es:[si+11],dl

  pop ax
  
  mov al, ah
  xor ah,ah
  aam
  mov cl, ah
  mov ch, al
  add cl, 30h
  add ch, 30h

  mov ax,0b800h
  mov es,ax

  mov byte ptr es:[si+12],cl
  mov byte ptr es:[si+13],dl
  mov byte ptr es:[si+14],ch
  mov byte ptr es:[si+15],dl


  ;beginn Binäruhr
  mov ax, 0b800h   ;gilt die ganze zeit
  mov es, ax


 ;;;Beginn Stunde;;;

  mov si, 1176  ;Speicheradressen vorbereiten  (für die Stunden)

  mov bl, stunde
  mov cx, 5
@stunde:
  sub si, 6
  shr bl, 1
  jc stunde_eins
  jmp Stunden_weiter
stunde_eins:
  mov dl, 1
  call balken_zeichnen
  jmp stunden_ende
Stunden_Weiter:
  mov dl, 0
  call balken_zeichnen
stunden_ende:
  loop @stunde

 ;;;Beginn Minute;;;

  add si, 74  ;Speicheradressen vorbereiten  (für die Minuten)

  mov bl, Minute
  mov cx, 6
@minute:
  sub si, 6
  shr bl, 1
  jc minute_eins
  jmp minute_weiter
minute_eins:
  mov dl, 1
  call balken_zeichnen
  jmp minute_ende
minute_Weiter:
  mov dl, 0
  call balken_zeichnen
minute_ende:
  loop @minute


 ;;;Beginn Sekunde;;;

  add si, 78  ;Speicheradressen vorbereiten  (für die Sekunden)

  mov bl, Sekunde
  mov cx, 6
@sekunde:
  sub si, 6
  shr bl, 1
  jc Sekunde_eins
  jmp Sekunde_weiter
sekunde_eins:
  mov dl, 1
  call balken_zeichnen
  jmp sekunde_ende
Sekunde_Weiter:
  mov dl, 0
  call balken_zeichnen
sekunde_ende:
  loop @sekunde




  mov ah,01h
  int 16h
  jnz @ende
jmp @schleife
  
@ende:
;-----
  mov     ah,4ch  
  int     21h

;===========
; Beginn der Unterprogramme
;===========


; dl "1" oder "0"
;
Balken_Zeichnen proc near
  push cx
  push si
  push bx
  
  mov bl, farbe_eins
  mov bh, farbe_null

  shr dl, 1

  jc Balken_1
  jmp Balken_weiter
Balken_1:
  mov ch, 0
  mov cl, balkenlaenge
Sprung_1:
  mov byte ptr es:[si], " "
  mov byte ptr es:[si+1], bl
  add si, 160
  loop Sprung_1
  jmp ende_balken
Balken_weiter:
  mov ch, 0
  mov cl, balkenlaenge
Sprung_2:
  mov byte ptr es:[si], " "
  mov byte ptr es:[si+1], bh
  add si, 160
  loop Sprung_2

ende_balken:
  pop bx
  pop si
  pop cx
  ret
endp Balken_Zeichnen



cls proc near
  push ax
  push si
  push dx
  
  mov dl, Hintergrundfarbe
  mov ax, 0b800h
  mov es, ax
  mov si, 0
noch_eins:
  mov byte ptr es:[si], " "
  cmp si, 2080
  jge andere_farbe
    mov dl, Hintergrundfarbe
    mov byte ptr es:[si+1], dl
  jmp weiter_farbe
andere_farbe:
  mov dl, Hintergrundfarbe_2
  mov byte ptr es:[si+1], dl
weiter_farbe:

  add si, 2
  cmp si, 4002
  jnz Noch_eins
ende_cls:

  pop dx
  pop si
  pop ax
  ret
cls endp
       
END


Dateianhang:
unknown Binwatch.exe (3 KB, 813 mal heruntergeladen)
31.05.2005 11:53 Pirroh ist offline E-Mail an Pirroh senden Beiträge von Pirroh suchen Nehmen Sie Pirroh in Ihre Freundesliste auf
MoD3000
Hoffnungsloser Fall


images/avatars/avatar-25.jpg

Dabei seit: 25.09.2002
Beiträge: 3.510

Level: 56 [?]
Erfahrungspunkte: 27.682.510
Nächster Level: 30.430.899

2.748.389 Erfahrungspunkt(e) für den nächsten Levelanstieg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Und was sagt uns das? gcc -S regelt ausserdem.
Wo bleibt eigentlich die ausreichende Wuerdigung fuer SPARC-Assembler. Haltet eine _grosse_ Tuete bereit.
31.05.2005 12:14 MoD3000 ist offline Homepage von MoD3000 Beiträge von MoD3000 suchen Nehmen Sie MoD3000 in Ihre Freundesliste auf
Goliat Skipson Goliat Skipson ist männlich
ForumsGolly


images/avatars/avatar-698.jpg

Dabei seit: 07.02.2004
Beiträge: 2.012
Herkunft: The other Place

Level: 52 [?]
Erfahrungspunkte: 14.862.362
Nächster Level: 16.259.327

1.396.965 Erfahrungspunkt(e) für den nächsten Levelanstieg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

naja ... meiner meinung nach hat assembler in der 'alltags programmierung' so ziemlich ausgesorgt ...
natürlich könnte man diverse programme die in einer highlevel language geschrieben sind nocheinmal überarbeiten ... aber bei der komplexität heutiger programme, und der leistung der compiler ist das eigentlich nichtmehr möglich und nötig ...
assembler hat wohl noch seinen sinn ... so werden viele industriemaschinen noch direkt mit assembler abarten programmiert ... aber im 'wahren leben' braucht man assembler wohl nimmer ...

__________________
Realität, so wissen wir aus eigener vielfacher Erfahrung, Realität ist etwas für Leute, die nicht mit Science-Fiction klarkommen

31.05.2005 12:43 Goliat Skipson ist offline E-Mail an Goliat Skipson senden Homepage von Goliat Skipson Beiträge von Goliat Skipson suchen Nehmen Sie Goliat Skipson in Ihre Freundesliste auf
MoD3000
Hoffnungsloser Fall


images/avatars/avatar-25.jpg

Dabei seit: 25.09.2002
Beiträge: 3.510

Level: 56 [?]
Erfahrungspunkte: 27.682.510
Nächster Level: 30.430.899

2.748.389 Erfahrungspunkt(e) für den nächsten Levelanstieg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Du wirst dich wundern, aber jedes gute Programm wird "nachoptimiert". Ob immer per Hand ist ne andere Frage.
Und die tausend verschiedenen DSPs dieser Welt sind ein verschwindendes Problem?
31.05.2005 13:27 MoD3000 ist offline Homepage von MoD3000 Beiträge von MoD3000 suchen Nehmen Sie MoD3000 in Ihre Freundesliste auf
JaWaS JaWaS ist männlich
Otto Normalposter


Dabei seit: 20.03.2004
Beiträge: 139

Level: 37 [?]
Erfahrungspunkte: 1.020.990
Nächster Level: 1.209.937

188.947 Erfahrungspunkt(e) für den nächsten Levelanstieg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Wuahah die Sprache gefällt mir ned, ich mags eher entweder like Java, C++ bzw C (auch wenn ich nur Java richtig beherrsche) oder halt PHP bzw MySQL obwohl die anweißungen in PHP eh ähnlich aufgebaut sind.

__________________
Black Metal bedient sich des extremen Heavy Metal und zerreißt ihn zu giftigen, scharfkantigen Splittern hörbaren Hasses.

31.05.2005 14:20 JaWaS ist offline E-Mail an JaWaS senden Beiträge von JaWaS suchen Nehmen Sie JaWaS in Ihre Freundesliste auf
Three of Five Three of Five ist männlich
Borg


images/avatars/avatar-1.gif

Dabei seit: 01.06.2002
Beiträge: 4.898
Herkunft: Unimatrix 01

Level: 58 [?]
Erfahrungspunkte: 39.199.514
Nächster Level: 41.283.177

2.083.663 Erfahrungspunkt(e) für den nächsten Levelanstieg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

jawas, naja, asm is eh in jeder architektur anders ^^
das hier is ja x86 asm, genauer lernen wir asm des 8086
ich find es eigendlich recht gut, sehr gut für das verständniss der grundlagen
und man freut sich immer ziemlich wenn dann ein prog funktioniert
vllt sollten wir hier auch mal die fire.exe posten, ca 200zeilen asm code aber was da rauskommt is schon ziemlich nett
vllt sollte robin hier auch mal seinen in delphi geschriebenen asmide posten *g*

__________________
We are the Borg!
Resistance is futile!


the hellboard - join the community now!
maddin.org - Full Metal Pictures - Konzertbilder und mehr
31.05.2005 16:02 Three of Five ist offline E-Mail an Three of Five senden Homepage von Three of Five Beiträge von Three of Five suchen Nehmen Sie Three of Five in Ihre Freundesliste auf
LuxY LuxY ist männlich
Fingerwundschreiber


images/avatars/avatar-580.gif

Dabei seit: 24.08.2003
Beiträge: 332

Level: 41 [?]
Erfahrungspunkte: 2.507.949
Nächster Level: 2.530.022

22.073 Erfahrungspunkt(e) für den nächsten Levelanstieg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich komm auch besser mit C/Perl/PHP zurecht als mit asm muss ich sagen smile

__________________
D.E.L.U.X.E.: Digital Electronic Lifeform Used for Xenocide and Exploration
31.05.2005 19:36 LuxY ist offline Homepage von LuxY Beiträge von LuxY suchen Nehmen Sie LuxY in Ihre Freundesliste auf
Cypher Cypher ist männlich
gehört zum Inventar


images/avatars/avatar-62.gif

Dabei seit: 20.04.2003
Beiträge: 916

Level: 47 [?]
Erfahrungspunkte: 7.034.658
Nächster Level: 7.172.237

137.579 Erfahrungspunkt(e) für den nächsten Levelanstieg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

also ich fühl mich mit c ganz gut bedient, was low level programmierung angeht (sofern man es nötig hat) ^^
ansonsten gibts ja auch noch c++, perl, ....
und andere sprachen lernen sich ja auch relativ flott. assembler muss ich glaub ich nächstes jahr in der schule lernen um irgendwelche platinen zu programmieren... naja, is bestimmt ganz nützlich wenn man das kann *an deassemblieren denk* (schreibt man das so nachdenken )

__________________

Website | Blog

Meine Organe sind offenbar nicht am richtigen Platz. - Nicht am richtigen Platz? Entsprechend welchen Kriterien? aus dem FIlm "Immortal"

<Goliat> Cypher ruled ;)

31.05.2005 21:38 Cypher ist offline E-Mail an Cypher senden Homepage von Cypher Beiträge von Cypher suchen Nehmen Sie Cypher in Ihre Freundesliste auf
MoD3000
Hoffnungsloser Fall


images/avatars/avatar-25.jpg

Dabei seit: 25.09.2002
Beiträge: 3.510

Level: 56 [?]
Erfahrungspunkte: 27.682.510
Nächster Level: 30.430.899

2.748.389 Erfahrungspunkt(e) für den nächsten Levelanstieg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Du musst zu viel Zeit haben. Am besten gleich explorer.exe deassemblieren. Den Source (moeglichst C) kannst du ja dann hier veroeffentlichen.
31.05.2005 23:08 MoD3000 ist offline Homepage von MoD3000 Beiträge von MoD3000 suchen Nehmen Sie MoD3000 in Ihre Freundesliste auf
SirBelial SirBelial ist männlich
Forenbesetzer


images/avatars/avatar-858.jpg

Dabei seit: 15.04.2004
Beiträge: 1.183
Herkunft: Bielefeld - Quelle

Level: 49 [?]
Erfahrungspunkte: 8.658.019
Nächster Level: 10.000.000

1.341.981 Erfahrungspunkt(e) für den nächsten Levelanstieg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

funny Post

Aber man kanns auch übertreiben.
01.06.2005 06:54 SirBelial ist offline E-Mail an SirBelial senden Beiträge von SirBelial suchen Nehmen Sie SirBelial in Ihre Freundesliste auf
Pirroh Pirroh ist männlich
Otto Normalposter


images/avatars/avatar-1702.png

Dabei seit: 10.10.2004
Beiträge: 110
Herkunft: Breskens / Niederlande

Level: 35 [?]
Erfahrungspunkte: 785.525
Nächster Level: 824.290

38.765 Erfahrungspunkt(e) für den nächsten Levelanstieg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:
Original von Three of Five
[...]
vllt sollten wir hier auch mal die fire.exe posten, ca 200zeilen asm code aber was da rauskommt is schon ziemlich nett
[...]


Ok, gesagt getan. Damit keine Missverständnisse aufkommen: ich habe sie nicht geschrieben und komm auch bei dem Quelltext nich hinterher (da muss ich wohl noch lange üben *seufz*)

die Kommentare ( ; ) sind übrigens auch ganz lustig Augenzwinkern



code:
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:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
.MODEL SMALL
.STACK 100h
.DATA
Seed     DW 3749h
Meldung  DB 'E-Mail:   BlueCobold@gmx.de',10,13,'HomePage: http://BlueCobold.18yo.de$'
Screen   DB 65000 DUP (?)
.386
.CODE

;--------------- GRAFIK-MODUS -------------------
InitGraph PROC
    mov ax, 13h                        ; kürzer!
    int 10h
    push 0a000h                        ; das ist auch cool...
    pop es
    ret
InitGraph ENDP

;--------------- RANDOM -------------------------
Random           PROC
   MOV   AX, Seed                      ; Move the seed value into AX
   MOV   DX, 8407H                     ; Move 8405H into DX
   MUL   DX                            ; Put 8405H x Seed into DX:AX
   INC   AX                            ; Increment AX
   MOV   Seed, AX                      ; We have a new seed
   RET
Random           ENDP

;--------------- VIRTUELLEN SCREEN LÖSCHEN ----------------
ClearPage PROC
    mov di, Offset Screen
    push es
    push ds
    pop es
    mov cx, 16250
    xor eax, eax
    rep stosd
    pop es
    ret
ClearPage ENDP

;--------------- PALETTE ------------------------
SetUpPalette PROC              ;geht das nicht kürzer?
    mov si, Offset Screen      ;geht bestimmt!
    mov cx, 64
@pal:
    xor ax, ax
    mov al, 64
    sub al, cl
    mov [si], al
    mov [si+1], ah
    mov [si+2], ah
    mov [si+193], al
    mov [si+194], ah
    mov [si+386], al
    mov ah, 63
    mov al, ah
    mov [si+192], ah
    mov [si+384], ax
    mov [si+576], ax
    mov [si+578], ah
    add si, 3
    dec cx
    jnz @pal
    mov si, Offset Screen
    xor ax, ax
    mov dx, 3c8h
    out dx, al
    inc dx
    mov cx, 768
    rep outsb
    ret
SetUpPalette ENDP

;------------- WAITRETRACE --------------------
WaitRetrace PROC
    mov  dx, 3dah
@Bildaufbau:
    in   al, dx
    test al, 8
    jnz  @Bildaufbau
@Retrace:
    in   al, dx
    test al, 8
    jz   @Retrace
    ret
WaitRetrace ENDP

;------------ FUELLEN -------------------------
Fuellen PROC
    mov  si, 64003
    mov  cx, 80
@FuellenLoop:
    call Random
    and  dx, 7
    jz   @PixelSetzen
    dec  dx
    jz   @PixelSetzen
    dec  dx
    jnz  @NichtNull
@PixelSetzen:
    mov  al, 255
    mov  ah, al
    mov  dx, ax
    shl  eax,16
    mov  ax, dx
    mov  [si+1], ax              ; mit 32 Bit arbeiten!
    mov  [si-3], eax
    mov  [si-323], eax
    mov  [si-319], ax
    mov  [si+317], eax
    mov  [si+321], ax
@NichtNull:
    add  si, 4
    dec cx
    jnz @FuellenLoop

    ret
Fuellen ENDP

;--------------- VIRTUELLE PAGE KOPIEREN -----------------
ShowPage PROC
    mov cx, 16000
    mov si, OFFSET Screen
    xor di, di
    rep movsd
    ret
ShowPage ENDP

;--------------- Feuer - EFFEKT -----------------------
DoFire PROC
    mov si, Offset Screen+640
    mov cx, 64640
@Blur:
    xor bx, bx
    xor ax, ax
    mov bl, [si-1]
    add ax, bx
    mov bl, [si+1]
    add ax, bx
    mov bl, [si-320]
    add ax, bx
    mov bl, [si+320]
    add ax, bx
    mov bl, [si-319]
    add ax, bx
    mov bl, [si+319]
    add ax, bx
    mov bl, [si-321]
    add ax, bx
    mov bl, [si+321]
    add ax, bx
    shr ax, 3
    jz @skip
    dec ax
    jz @skip
    dec ax
@skip:
    mov ds:[si-640], al
    inc si
    dec cx
    jnz @Blur
    ret
DoFire ENDP
;--------------- HAUPTPROGRAMM -----------------------

Start:

    push @data
    pop ds

    call InitGraph

    call ClearPage

    call SetUpPalette

;------------ BLUR ------------------------
    cli
BlurLoop:
    call Fuellen
    call DoFire
    call WaitRetrace
    call ShowPage

    in  al, 60h                   ;das mach ich kürzer
    cmp al, 1
    jnz BlurLoop
    sti
;------------------------------------------

    mov ax, 3h
    int 10h

    mov dx, Offset Meldung
    mov ah, 9
    int 21h

    mov ah, 4Ch
    int 21h

END Start


Dateianhang:
unknown fire.exe (66 KB, 933 mal heruntergeladen)
01.06.2005 10:44 Pirroh ist offline E-Mail an Pirroh senden Beiträge von Pirroh suchen Nehmen Sie Pirroh in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Thema bewerten: 

nicht lesenswert nicht lesenswert 

1

2

3

4

5

6

7

8

9

10
 lesenswert lesenswert

Portal » the Hellboard » Computer und Co » Software » Coder Forum » Assembler

Impressum Netiquette

Powered by Burning Board 2.3.6 © 2001-2007 WoltLab GmbH