task: using a runbook

This commit is contained in:
Kartik K. Agaram 2021-10-21 21:02:37 -07:00
parent 42002973c1
commit 5de772bebd
3 changed files with 52 additions and 0 deletions

View File

@ -264,3 +264,19 @@ trying out the next one.)
Runbooks are a handy tool for working with computers. In a runbook you write
instructions to your future self or for others you're working with. They're
instructions for programming people, not computers.
## Task 7: variables in registers, variables in memory (again)
Go back to your program in Task 5. Replace the first statement declaring
variable `x`:
```
var x: int
```
so it looks like this:
```
var x/edx: int <- copy 0
```
Run `translate` (or `translate_emulated`) as usual. Use your runbook from Task
6 to address the errors that arise.

View File

@ -0,0 +1,18 @@
fn foo -> _/eax: int {
var x/edx: int <- copy 0
# statement 1: store 3 in x
x <- copy 3
# statement 2: define a new variable 'y' in register eax and store 4 in it
var y/eax: int <- copy 4
# statement 3: add y to x, storing the result in x
x <- add y
return x
}
fn test-foo {
var result/eax: int <- foo
check-ints-equal result, 7, "F - foo should return 7, but didn't"
}
fn main {
}

18
tutorial/task7.mu Normal file
View File

@ -0,0 +1,18 @@
fn foo -> _/eax: int {
var x/edx: int <- copy 0
# statement 1: store 3 in x
copy-to x, 3
# statement 2: define a new variable 'y' in register eax and store 4 in it
var y/eax: int <- copy 4
# statement 3: add y to x, storing the result in x
add-to x, y
return x
}
fn test-foo {
var result/eax: int <- foo
check-ints-equal result, 7, "F - foo should return 7, but didn't"
}
fn main {
}