Описание
# TIS Advanced
TIS Advanced features include two new modules, and several new instructions for the Execution Module.
## New Modules
- [ASIC Module](https://gitlab.com/zack-emmert/tis-advanced/-/wikis/ASIC-Module)
- [Tape Storage Module](https://gitlab.com/zack-emmert/tis-advanced/-/wikis/Tape-Storage-Module)
## New Instructions for Execution Module
### Floating Point Arithmetic Instructions
`ADDF`, `SUBF`, `MULF`, and `DIVF` behave like their integer counterparts, however, they operate on `ACC` as though the data contained within represents an IEEE-754 compliant half-precision floating point number.
Note that it is possible to store an integer value in `ACC` and attempt floating point calculations on it, and vice versa. This is likely to produce incorrect values. It is the user's responsibility to ensure that operations are only performed on the correct data representation.
### Floating Point Flow Control Instructions
The `JEZF`, `JNZF`, `JGZF`, and `JLZF` instructions behave like their integer counterparts `JEZ`, `JNZ`, `JGZ`, and `JLZ`, however, like the floating point arithmetic operations above, they operate on `ACC` as though the value contained within is an IEEE-754 half-precision float.
### Floating Point Conversion Instructions
The `FLT` instruction will convert an integer value stored in `ACC` to a IEEE-754 half-precision floating point representation. The `INT` instruction will convert a floating point value stored in `ACC` to a 16-bit signed two's complement integer representation; the same representation used by standard TIS-3D arithmetic operations. Converting to integer representation will round the floating point value to the nearest whole number, with ties rounding upwards.
### `MOV` Instruction Changes
The `MOV` instruction has been extended to support handling floating point literals. For example, the instruction `MOV 0.25 ACC` will no longer be a compiler error, and will now load the floating point value `0.25` into the `ACC` register as expected.