Division mit Rest
Aufgabe 5: Ganzzahlige Division mit Rest
In der Grundschule haben wir gelernt wie man Zahlen mit Rest dividiert:
"In die Zahl 17 passt die Zahl 3 genau 5 mal hinein und es bleibt ein Rest von 2."
Wir nehmen an, in den Speicherstellen 20 und 21 stehen zwei beliebige Zahlen. Schreibe ein Programm, das den Inhalte der Speicherstellen 20 durch denjenigen in Speicherzelle 21 ganzzahlig mit Rest dividiert. Das Ergebnis soll nachher in der Speicherstelle Nummer 22 gespeichert sein:
[22]:=[20] // [21] ("//": Symbol für ganzzahlige Division)
[23]:=[20] % [21] ("%": Symbol für Rest bei der ganzzahligen Division)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
000:
HLT 99
INC 22
JMP 01
JMP 11
NULL 22
SAVE 20
SAVE 23
SAVE 25
SUB 20
SUB 21
TAKE 20
TAKE 21
TST 25
001:
HLT 99
INC 22
JMP 01
JMP 11
NULL 22
SAVE 20
SAVE 23
SAVE 25
SUB 20
SUB 21
TAKE 20
TAKE 21
TST 25
# b>a?
002:
HLT 99
INC 22
JMP 01
JMP 11
NULL 22
SAVE 20
SAVE 23
SAVE 25
SUB 20
SUB 21
TAKE 20
TAKE 21
TST 25
003:
HLT 99
INC 22
JMP 01
JMP 11
NULL 22
SAVE 20
SAVE 23
SAVE 25
SUB 20
SUB 21
TAKE 20
TAKE 21
TST 25
004:
HLT 99
INC 22
JMP 01
JMP 11
NULL 22
SAVE 20
SAVE 23
SAVE 25
SUB 20
SUB 21
TAKE 20
TAKE 21
TST 25
005:
HLT 99
INC 22
JMP 01
JMP 11
NULL 22
SAVE 20
SAVE 23
SAVE 25
SUB 20
SUB 21
TAKE 20
TAKE 21
TST 25
# falls ja: Ende
006:
HLT 99
INC 22
JMP 01
JMP 11
NULL 22
SAVE 20
SAVE 23
SAVE 25
SUB 20
SUB 21
TAKE 20
TAKE 21
TST 25
# falls nein:
007:
HLT 99
INC 22
JMP 01
JMP 11
NULL 22
SAVE 20
SAVE 23
SAVE 25
SUB 20
SUB 21
TAKE 20
TAKE 21
TST 25
# a=a-b
008:
HLT 99
INC 22
JMP 01
JMP 11
NULL 22
SAVE 20
SAVE 23
SAVE 25
SUB 20
SUB 21
TAKE 20
TAKE 21
TST 25
009:
HLT 99
INC 22
JMP 01
JMP 11
NULL 22
SAVE 20
SAVE 23
SAVE 25
SUB 20
SUB 21
TAKE 20
TAKE 21
TST 25
# erg = erg+1
010:
HLT 99
INC 22
JMP 01
JMP 11
NULL 22
SAVE 20
SAVE 23
SAVE 25
SUB 20
SUB 21
TAKE 20
TAKE 21
TST 25
011:
HLT 99
INC 22
JMP 01
JMP 11
NULL 22
SAVE 20
SAVE 23
SAVE 25
SUB 20
SUB 21
TAKE 20
TAKE 21
TST 25
# Ende:
012:
HLT 99
INC 22
JMP 01
JMP 11
NULL 22
SAVE 20
SAVE 23
SAVE 25
SUB 20
SUB 21
TAKE 20
TAKE 21
TST 25
# rest = a
013:
HLT 99
INC 22
JMP 01
JMP 11
NULL 22
SAVE 20
SAVE 23
SAVE 25
SUB 20
SUB 21
TAKE 20
TAKE 21
TST 25
Check
OK