1 ; MASM - Version
2 ; Bildschirmadresse BILD at
3 ; ;------------------------------------------------
5
6 =0019 LINES equ 25
7 =0050 PIXEL equ 80
8 =FF20 LEER equ 0FF20h
9
10 ;------ Bildspeicher ---------------------------
11
12 =B800 BILD equ 0B800h
13
14 ;------ Stapel ----------------------------------
15
16 0000 STAPEL segment stack 'stack'
17 0000 64*(????) dw 100 dup (?)
18 00C8 STAPEL ends
19
20 ;------ Programm-Code -----------------------
21
22 0000 HAUPT segment
23 assume cs:HAUPT, ds:BILD
24
25 0000 B8 B800 START: mov ax, BILD ;
26 0003 8E D8 mov ds, ax ; ers
27
28 0005 B8 FF20 mov ax, LEER ; 29 0008 33 DB xor bx, bx ; Adresse des ersten Zeichens
30 ; (xor effizienter als mov bx, 0)
31 000A B9 07D0 mov cx, LINES*PIXEL ;
32
33 000D B8 0003 mov ax, 0003h
34 0010 CD 10 int 10h ; setze VidMode
35
36 0012 B8 FF20 mov ax, LEER
37
38 0015 89 07 CLS: mov [bx], ax ; Schreibe Zeichen von ax -> Bildspeicher
39 0017 43 inc bx ; naechstes Zeichen
40 0018 43 inc bx
41 0019 E2 FA loop CLS
42
43 001B B9 0010 mov cx, 16 ; entspricht der "Hoehe"
44 001E BB 0220 mov bx, 544 ; Ausrichtung der ersten Zeile
45 0021 32 C0 xor al, al ; al = Zeichen (= mov al, 0)
46 0023 32 E4 xor ah, ah ; ah = Hintergrund + Vordergrund (= mov al, 0)
47
48 0025 51 ZEILE: push cx
49 0026 B9 0010 mov cx, 16 ; entspricht der "Breite"
50
51 0029 89 07 SPALTE: mov [bx], ax ; Schreiben in den Bildspeicher
52 002B 43 inc bx ; Ruecke Position vor
53 002C 43 inc bx
54 002D FE C0 inc al ; Ruecke Zeichen in Tabelle vor
55 002F FE C4 inc ah ; Ruecke Farbe vor
56 0031 E2 F6 loop SPALTE
57
Turbo Assembler Version 4.0 09/06/03 21:01:07 Page 2
C:\HWL\HWL1-2\ASCII.ASM
58 0033 81 C3 0080 add bx, 128 ; Anordnung der naechsten Zeile (Abstand)
59 0037 59 pop cx
60 0038 E2 EB loop ZEILE
61
62
63 003A B4 4C mov ah, 4Ch ; Ende
64 003C CD 21 int 21h
65
66 003E HAUPT ends
67 end START
Turbo Assembler Version 4.0 09/06/03 21:01:07 Page 3
Symbol Table
Symbol Name Type Value
??DATE Text "09/06/03"
??FILENAME Text "ASCII "
??TIME Text "21:01:07"
??VERSION Number 0400
@CPU Text 0101H
@CURSEG Text HAUPT
@FILENAME Text ASCII
@WORDSIZE Text 2
BILD Number B800
CLS Near HAUPT:0015
LEER Number FF20
LINES Number 0019
PIXEL Number 0050
SPALTE Near HAUPT:0029
START Near HAUPT:0000
ZEILE Near HAUPT:0025
Groups & Segments Bit Size Align Combine Class
HAUPT 16 003E Para none
STAPEL 16 00C8 Para Stack STACK