mirror of
https://github.com/soconnor0919/eceg431.git
synced 2025-12-11 06:34:43 -05:00
42 lines
772 B
NASM
42 lines
772 B
NASM
// This file is part of www.nand2tetris.org
|
|
// and the book "The Elements of Computing Systems"
|
|
// by Nisan and Schocken, MIT Press.
|
|
// File name: projects/6/rect/Rect.asm
|
|
|
|
// Draws a rectangle at the top-left corner of the screen.
|
|
// The rectangle is 16 pixels wide and R0 pixels high.
|
|
// Usage: Before executing, put a value in R0.
|
|
|
|
// If (R0 <= 0) goto END else n = R0
|
|
@R0
|
|
D=M
|
|
@END
|
|
D;JLE
|
|
@n
|
|
M=D
|
|
// addr = base address of first screen row
|
|
@SCREEN
|
|
D=A
|
|
@addr
|
|
M=D
|
|
(LOOP)
|
|
// RAM[addr] = -1
|
|
@addr
|
|
A=M
|
|
M=-1
|
|
// addr = base address of next screen row
|
|
@addr
|
|
D=M
|
|
@32
|
|
D=D+A
|
|
@addr
|
|
M=D
|
|
// decrements n and loops
|
|
@n
|
|
MD=M-1
|
|
@LOOP
|
|
D;JGT
|
|
(END)
|
|
@END
|
|
0;JMP
|