task: using a runbook
This commit is contained in:
parent
42002973c1
commit
5de772bebd
|
@ -264,3 +264,19 @@ trying out the next one.)
|
||||||
Runbooks are a handy tool for working with computers. In a runbook you write
|
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 to your future self or for others you're working with. They're
|
||||||
instructions for programming people, not computers.
|
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.
|
||||||
|
|
|
@ -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 {
|
||||||
|
}
|
|
@ -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 {
|
||||||
|
}
|
Loading…
Reference in New Issue