# [ASM 13H] Warum Screen zweimal zeichnen?



## vgAbEgInnEr (3. Juli 2005)

Ich hab ne Frage zu einem Beispielprogramm von Denthor (ja, ich glaube, es war was von Denthor). Jedefalls heißt es FIRE!.
Es werden zwei Konstanten definiert und ein Buffer angelegt:


```
BUFFERX EQU 320
BUFFERY EQU 100 ; <- nicht 200!

BUFFER DB BUFFERX * BUFFERY DUP(0)
```

Später wird der Buffer gefüllt (Prozedur AveragePixels). Dann wird die untere Bildschirmreihe gezeichnet und die Prozedur DrawScreen aufgerufen:


```
LEA SI,BUFFER
MOV BX,BUFFERY

ROW:
MOV CX,BUFFERX SHR 1
REPT MOVSW
SUB SI,320
MOV CX,BUFFERX SHR 1
REPT MOVSW
INC SI
DEC BX
JNZ ROW
RET
```

OK, nun meine Frage: Warum wurde BUFFERY nicht gleich als 200 deklariert? Dann sprt man sich doch ein weiteres REPT MOVSW, oder sehe ich da was falsch?

Ich danke schon mal im Voraus.


----------

