Nand2Tetris — Kapitel 4
Hack-Maschinensprache
// Mult.asm
//Eingabe: RAM[0]=R0, RAM[1]=R1
//Ausgabe: RAM[2]=R0 * R1
//Aktion: Wiederholen Sie R1-mal und fügen Sie weiterhin R0 hinzu.
@R2
M=0
@i
M=0
(LOOP)
@i
D=M
@R1
D=D-M
@END
D;JGE
@R0
D=M
@R2
M=M+D
@i
M=M+1
@LOOP
0;JMP
(END)
@END
0;JMP
// Fill.asm
//Eingabe: Überprüfen Sie, ob die Tastatur gedrückt wurde (KBD)
//Ausgabe: Füllt den gesamten Bildschirm bei Tastendruck mit Schwarz, andernfalls mit Weiß.
//Vorgang: Wert schreiben und dabei 8192 Wörter vom BILDSCHIRM wiederholen
(LOOP)
@KBD
D=M
@BLACK
D;JNE
@color
M=0
@DRAW
0;JMP
(BLACK)
@color
M=-1
(DRAW)
@SCREEN
D=A
@addr
M=D
@8192
D=A
@count
M=D
(DRAW_LOOP)
@color
D=M
@addr
A=M
M=D
@addr
M=M+1
@count
M=M-1
D=M
@DRAW_LOOP
D;JGT
@LOOP
0;JMP