mirror of
https://github.com/jackyzha0/quartz.git
synced 2025-12-25 05:44:06 -06:00
49 lines
683 B
Markdown
49 lines
683 B
Markdown
---
|
|
title: "6809"
|
|
aliases:
|
|
tags:
|
|
- cosc204
|
|
---
|
|
|
|
|
|
# Routines
|
|
All variables are global so there is no params or local vars.
|
|
|
|
There are three way to "Branch" to a subroutine.
|
|
- lbsr
|
|
- bsr
|
|
- jsr
|
|
|
|
There are subtle differences but we will use bsr mostly
|
|
|
|
```
|
|
bsr myroutine:
|
|
|
|
myroutine:
|
|
rts
|
|
```
|
|
|
|
# Iteration
|
|
Done using GOTOs
|
|
```
|
|
clra //A = 0
|
|
more:
|
|
cmpa #$06 //compare A to $06 (sets the equal flag in CC if true)
|
|
beq done //if the equal flag is set, branch to done
|
|
inca //increment a
|
|
bra more //branch to more
|
|
done:
|
|
```
|
|
|
|
other instructions set flags too
|
|
|
|
# Input/Output
|
|

|
|
|
|
|
|
|
|
# Hello World
|
|
|
|
# Assembler
|
|
|