Das Lernprogramm EASY

Werbung
1Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here.
Das Lernprogramm EASY
Dieses Programm finden Sie auf unserer Buchhomepage http://r5.mnd.fh-wiesbaden.de/infobuch2.
Das Werkzeug EASY erleichtert die Erstellung von MASM-Assemblerprogrammen. Es bildet einen Rahmen für
beliebige Programme, die später als COM-Module laufen sollen. Da man an beliebiger Stelle im Programm
Registerinhalte und Flags ausgeben kann, eignet sich EASY sowohl als Testhilfe wie als Lernwerkzeug.
EASY verfügt über einen Benutzer-Programmbereich, in den der Programmierer seinen eigenen Programmcode
einfügt. Der Benutzer-Datenbereich dient zur Variablendeklaration.
EASY enthält zahlreiche Hilfsroutinen, die vom Programmierer aufgerufen werden können, um Standardprobleme
zu lösen (Ein- und Ausgaben, Codeumwandlungen usw.):
CALL INPAX
CALL INPAXDEZ
CALL INPAXBIN
: Hexadezimale Eingabe in das AX-Register
: Dezimale
Eingabe in das AX-Register
: Binäre
Eingabe in das AX-Register
CALL INPBX
CALL INPBXDEZ
CALL INPBXBIN
: Hexadezimale Eingabe in das BX-Register
: Dezimale
Eingabe in das BX-Register
: Binäre
Eingabe in das BX-Register
CALL INPCX
CALL INPCXDEZ
CALL INPCXBIN
: Hexadezimale Eingabe in das CX-Register
: Dezimale
Eingabe in das CX-Register
: Binäre
Eingabe in das CX-Register
CALL INPDX
CALL INPDXDEZ
CALL INPDXBIN
: Hexadezimale Eingabe in das DX-Register
: Dezimale
Eingabe in das DX-Register
: Binäre
Eingabe in das DX-Register
CALL OUTAX
CALL OUTAXDEZ
CALL OUTAXBIN
: Hexadezimale Ausgabe aus dem AX-Register
: Dezimale
Ausgabe aus dem AX-Register
: Binäre
Ausgabe aus dem AX-Register
CALL OUTBX
CALL OUTBXDEZ
CALL OUTBXBIN
: Hexadezimale Ausgabe aus dem BX-Register
: Dezimale
Ausgabe aus dem BX-Register
: Binäre
Ausgabe aus dem BX-Register
CALL OUTCX
CALL OUTCXDEZ
CALL OUTCXBIN
: Hexadezimale Ausgabe aus dem CX-Register
: Dezimale
Ausgabe aus dem CX-Register
: Binäre
Ausgabe aus dem CX-Register
CALL OUTDX
CALL OUTDXDEZ
CALL OUTDXBIN
: Hexadezimale Ausgabe aus dem DX-Register
: Dezimale
Ausgabe aus dem DX-Register
: Binäre
Ausgabe aus dem DX-Register
CALL CI
CALL CO
: Eingabe eines ASCII-Codes (einer Taste) in AL
: AUSGABE eines ASCII-Codes aus AL
VIDEO_CLS
CLEAR_KEY
PRINT TEXT
: Löscht den Bildschirm
: Löscht den Tastaturpuffer
: Ausgabe eines Textes, der mit ‘$’ enden muss
Zusätzlich werden zu jeder Register-Ausgabe die aktuellen Prozessor-Flags angezeigt.
2
Error!
Use the Home tab to apply Überschrift 1 to the text that you want to appear
here.
EASY besteht aus drei Dateien, die sich auf unserer Diskette befinden:
EASY.ASM
EASY_MAC.ASM
EASY_PRO.ASM
(nur diese Datei darf editiert werden)
Ein einfaches Beispiel demonstriert die Benutzung von EASY:
;
; Programmkopf:
;
INCLUDE EASY_MAC.ASM
CODE SEGMENT
ASSUME CS:CODE,DS:CODE,ES:CODE,SS:CODE
ORG 100h
gSTART: jmp gANFANG
;
;
;
;
;
;
Diese
„
„
„
5 Zeilen nicht verändern !
„
„
„
„
„
„
„
„
„
„
„
„
;
;
;
;
;
HIER KÖNNEN DATEN ANGELEGT WERDEN :
;
;
;
;
;
HIER STARTET DAS USER-PROGRAMM :
„
„
text1 db 10,13, Hier ist EASY ,10,13,’$’
gANFANG:
print text1
call inpax
call inpbx
and ax,bx
call outaxbin
call ci
inc al
call co
;
;
;
;
;
mov ax,4C00h
int 21h
HIER ENDET DAS USER-PROGRAMM :
; zur Sicherheit DOS-Beendigungscode
; DOS-Call
Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear
here.
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
3
Folgende Befehle stehen zur Zeit zur Verfügung :
CALL INPAX
: Hexadezimale Eingabe in das AX-Register
CALL INPAXDEZ : Dezimale
Eingabe in das AX-Register
CALL INPAXBIN : Binäre
Eingabe in das AX-Register
CALL INPBX
: Hexadezimale Eingabe in das BX-Register
CALL INPBXDEZ : Dezimale
Eingabe in das BX-Register
CALL INPBXBIN : Binäre
Eingabe in das BX-Register
CALL INPCX
: Hexadezimale Eingabe in das CX-Register
CALL INPCXDEZ : Dezimale
Eingabe in das CX-Register
CALL INPCXBIN : Binäre
Eingabe in das CX-Register
CALL INPDX
: Hexadezimale Eingabe in das DX-Register
CALL INPDXDEZ : Dezimale
Eingabe in das DX-Register
CALL INPDXBIN : Binäre
Eingabe in das DX-Register
CALL OUTAX
: Hexadezimale Ausgabe aus dem AX-Register
CALL OUTAXDEZ : Dezimale
Ausgabe aus dem AX-Register
CALL OUTAXBIN : Binäre
Ausgabe aus dem AX-Regsiter
CALL OUTBX
: Hexadezimale Ausgabe aus dem BX-Register
CALL OUTBXDEZ : Dezimale
Ausgabe aus dem BX-Register
CALL OUTBXBIN : Binäre
Ausgabe aus dem BX-Register
CALL OUTCX
: Hexadezimale Ausgabe aus dem CX-Register
CALL OUTCXDEZ : Dezimale
Ausgabe aus dem CX-Register
CALL OUTCXBIN : Binäre
Ausgabe aus dem CX-Register
CALL OUTDX
: Hexadezimale Ausgabe aus dem DX-Register
CALL OUTDXDEZ : Dezimale
Ausgabe aus dem DX-Register
CALL OUTDXBIN : Binäre
Ausgabe aus dem DX-Register
CALL CI
CALL CO
: Eingabe eines ASCII-Codes (einer Taste) in AL
: AUSGABE eines ASCII-Codes aus AL
VIDEO_CLS
CLEAR_KEY
PRINT TEXT
: Löscht den Bildschirm
: Löscht den Tastaturpuffer
: Ausgabe eines Textes, der mit ’$’ enden muss
................................................
include EASY_PRO.ASM
CODE ENDS
END gSTART
Im Benutzer-Datenbereich steht lediglich ein Text, der im Benutzer-Programmbereich mit dem Printbefehl ausgegeben wird. Danach werden jeweils zwei hexadezimale 16-Bit-Werte in die Register AX und BX eingelesen. Nach
ihrer UND-Verknüpfung wird das Ergebnis im AX-Register binär ausgegeben. Nun wird ein Zeichen von Tastatur
eingelesen (call ci), dessen ASCII-Wert um eins erhöht und ausgegeben (aus ‘A’ wird ‘B’, usw.).
4
Error!
Use the Home tab to apply Überschrift 1 to the text that you want to appear
here.
ASCII-Tabelle
ASCII-Tabelle (0-127 sowie erweitert 128-255)
Hexcode 2.
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
BS
8
HT
9
LF
10
VT
11
FF
12
CR
13
SO
14
SI
15
FS
28
GS
29
RS
30
US
31
1.
0
NUL SOH STX EXT EOT ENQ ACK BEL
0
1
2
3
4
5
6
7
1
DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM
16 17 18 19 20 21 22 23 24 25
2
32
!
33
"
34
#
35
$
36
%
37
&
38
'
39
(
40
)
41
*
42
+
43
,
44
45
.
46
/
47
3
0
48
1
49
2
50
3
51
4
52
5
53
6
54
7
55
8
56
9
57
:
58
;
59
<
60
=
61
>
62
?
63
4
@
64
A
65
B
66
C
67
D
68
E
69
F
70
G
71
H
72
I
73
J
74
K
75
L
76
M
77
N
78
O
79
5
P
80
Q
81
R
82
S
83
T
84
U
85
V
86
W
87
X
88
Y
89
Z
90
[
91
\
92
]
93
^
94
_
95
6
`
96
a
97
b
98
c
99
d
e
f
g
h
i
j
k
l
m
n
o
100 101 102 103 104 105 106 107 108 109 110 111
7
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
▓
112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
8
Ç
ü
é
â
ä
à
å
ç
ê
ë
è
ï
î
ì
Ä
Å
128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
9
É
æ
Æ
ô
ö
ò
û
ù
ÿ
Ö
Ü
¢
£
 
ƒ
144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
A
á
í
ó
ú
ñ
Ñ
ª
º
¿
⌐
¬
½
¼
¡
«
»
160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
B
░
▒
│
┤
╡
╢
╖
╕
╣
║
╗
╝
╜
╛
┐
176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191
C
└
┴
┬
├
─
┼
╞
╟
╚
╔
╩
╦
╠
═
╬
╧
192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207
D
╨
╤
╥
╙
╘
╒
╓
╫
╪
┘
┌
█
▄
▌
▐
▀
208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223
E
α
ß
Γ
π
Σ
σ
µ
τ
Φ
Θ
Ω
δ
∞
φ
ε
∩
224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239
F
≡
±
≥
≤
⌠
⌡
÷
≈
°
∙
·
√
ⁿ
²
■
240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255
SUB ESC
26 27
Herunterladen