This commit is contained in:
Kartik K. Agaram 2021-10-26 22:04:26 -07:00
parent c055c4781f
commit 9c952560da
2 changed files with 3 additions and 3 deletions

2
mu.md
View File

@ -331,7 +331,7 @@ Negate:
negate var
```
### Floating-point arithmetic
### Fractional arithmetic
Operations on `float` variables include a few we've seen before and some new
ones. Notice here that we mostly use floating-point registers `xmm_`, but

View File

@ -283,7 +283,7 @@ 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.
## Task 8: floating point
## Task 8: fractional numbers
All our variables so far have had type `int` (integer), but there are limits
to what you can do with just whole integers. For example, here's the formula
@ -297,7 +297,7 @@ distance * 1.609
Write a function to perform this conversion. Some starting points:
* Reread [the section on variables and registers](https://github.com/akkartik/mu/blob/main/mu.md#variables-registers-and-memory)
with special attention to the `float` type.
* Read [the section on floating-point arithmetic](https://github.com/akkartik/mu/blob/main/mu.md#floating-point-arithmetic).
* Read [the section on fractional arithmetic](https://github.com/akkartik/mu/blob/main/mu.md#fractional-arithmetic).
* One wrinkle is that the x86 instruction set doesn't permit literal
fractional arguments. So you'll need to _create_ 1.609 somehow. See the
section on moving values around under [operations on simple types](https://github.com/akkartik/mu/blob/main/mu.md#operations-on-simple-types).