mirror of
https://github.com/soconnor0919/eceg431.git
synced 2025-12-11 22:54:43 -05:00
project06 - add files
This commit is contained in:
41
06/rect/Rect.asm
Normal file
41
06/rect/Rect.asm
Normal file
@@ -0,0 +1,41 @@
|
||||
// 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
|
||||
Reference in New Issue
Block a user