Add clickable links to README

This commit is contained in:
Gabriel Tofvesson 2019-04-29 22:11:46 +02:00
parent c6c866b86e
commit c422e92ec7

View File

@ -19,7 +19,7 @@ Move value in *regA* to *regB*
### MVN {[reg] | [const]} ### MVN {[reg] | [const]}
Move the inverse of a value (from register or constant) into register **AR**. Move the inverse of a value (from register or constant) into register [**AR**](#ar).
*This operation uses the bus* *This operation uses the bus*
@ -27,13 +27,13 @@ Move the inverse of a value (from register or constant) into register **AR**.
### MVZ ### MVZ
Set **AR** to zero. Set [**AR**](#ar) to zero.
*Sets flags: Z, N* *Sets flags: Z, N*
### ADD {[reg] | [const]} ### ADD {[reg] | [const]}
Add value (from register or constant) to register **AR**. Add value (from register or constant) to register [**AR**](#ar).
*This operation uses the bus* *This operation uses the bus*
@ -43,7 +43,7 @@ Add value (from register or constant) to register **AR**.
### SUB {[reg] | [const]} ### SUB {[reg] | [const]}
Subtract value (from register or constant) from register **AR**. Subtract value (from register or constant) from register [**AR**](#ar) (see [*Registers*](#registers)).
*This operation uses the bus* *This operation uses the bus*
@ -77,7 +77,7 @@ Perform bitwise Or with given value (from register or constant) and register
### ADN {[reg] | [const]} ### ADN {[reg] | [const]}
Add value (from register or constant) to register **AR** without updating Add value (from register or constant) to register [**AR**](#ar) without updating
flags. flags.
*This operation uses the bus* *This operation uses the bus*
@ -86,7 +86,7 @@ flags.
### LSL ### LSL
Performs a logical shift left of **AR**. Performs a logical shift left of [**AR**](#ar).
*This operation uses the bus* *This operation uses the bus*
@ -96,8 +96,8 @@ Performs a logical shift left of **AR**.
### ISL ### ISL
Performs a logical shift left of **AR** and **HR** as if they were one 32-bit Performs a logical shift left of [**AR**](#ar) and [**HR**](#hr) as if they were one 32-bit
register where **AR** corresponds to the most-significant bits. register where [**AR**](#ar) corresponds to the most-significant bits.
*This operation uses the bus* *This operation uses the bus*
@ -107,7 +107,7 @@ register where **AR** corresponds to the most-significant bits.
### ASR ### ASR
Performs an arithmetic shift right on **AR**. Performs an arithmetic shift right on [**AR**](#ar).
*This operation uses the bus* *This operation uses the bus*
@ -117,8 +117,8 @@ Performs an arithmetic shift right on **AR**.
### ISR ### ISR
Performs an arithmetic shift right of **AR** and **HR** as if they were one Performs an arithmetic shift right of [**AR**](#ar) and [**HR**](#hr) as if they were one
32-bit register where **AR** corresponds to the most-significant bits. 32-bit register where [**AR**](#ar) corresponds to the most-significant bits.
*This operation uses the bus* *This operation uses the bus*
@ -128,7 +128,7 @@ Performs an arithmetic shift right of **AR** and **HR** as if they were one
### LSR ### LSR
Performs a logical shift right of **AR**. Performs a logical shift right of [**AR**](#ar).
*This operation uses the bus* *This operation uses the bus*
@ -138,7 +138,7 @@ Performs a logical shift right of **AR**.
### ROL ### ROL
Performs an arithmetic rotate right on **AR**. Performs an arithmetic rotate right on [**AR**](#ar).
*This operation uses the bus* *This operation uses the bus*
@ -148,8 +148,8 @@ Performs an arithmetic rotate right on **AR**.
### IRL ### IRL
Performs an arithmetic shift left of **AR** and **HR** as if they were one Performs an arithmetic shift left of [**AR**](#ar) and [**HR**](#hr) as if they were one
32-bit register where **AR** corresponds to the most-significant bits. 32-bit register where [**AR**](#ar) corresponds to the most-significant bits.
*This operation uses the bus* *This operation uses the bus*
@ -163,7 +163,7 @@ Set **LC** to value of constant.
### CONST [const] ### CONST [const]
Set **AR** to value of cosntant. Set [**AR**](#ar) to value of cosntant.
*This operation cannot be parallelized* *This operation cannot be parallelized*
@ -194,35 +194,35 @@ Perform an unconditional branch to the address of the given label.
### BNZ [label] ### BNZ [label]
Branch to address of label if **Z-flag** is 0. Branch to address of label if [**Z-flag**](#z) is 0.
### BRZ [label] ### BRZ [label]
Branch to address of label if **Z-flag** is 1. Branch to address of label if [**Z-flag**](#z) is 1.
### BRN [label] ### BRN [label]
Branch to address of label if **N-flag** is 1. Branch to address of label if [**N-flag**](#n) is 1.
### BRC [label] ### BRC [label]
Branch to address of label if **C-flag** is 1. Branch to address of label if [**C-flag**](#c) is 1.
### BRO [label] ### BRO [label]
Branch to address of label if **O-flag** is 1. Branch to address of label if [**O-flag**](#o) is 1.
### BLS [label] ### BLS [label]
Branch to address of label if **L-flag** is 1. Branch to address of label if [**L-flag**](#l) is 1.
### BNC [label] ### BNC [label]
Branch to address of label if **C-flag** is 0. Branch to address of label if [**C-flag**](#c) is 0.
### BNO [label] ### BNO [label]
Branch to address of label if **O-flag** is 0. Branch to address of label if [**O-flag**](#o) is 0.
### BOP ### BOP
@ -288,25 +288,25 @@ greater than 127.
## Flags ## Flags
Flags - *aside from L* - are set based on ALU operations, so they depend on Flags - *aside from L* - are set based on ALU operations, so they depend on
**AR** and the **BUS**. Henceforth, unless otherwise implied or stated, **AR** **AR** and the **BUS**. Henceforth, unless otherwise implied or stated, [**AR**](#ar)
will refer to the state/value of **AR** *after* an ALU operation. will refer to the state/value of [**AR**](#ar) *after* an ALU operation.
### Z ### Z
Set if **AR** == **0** Set if [**AR**](#ar) == **0**
### N ### N
Set if sign bit in **AR** is set. Set if sign bit in [**AR**](#ar) is set.
### O ### O
Set if sign of **AR** differs from signs of both **AR** and **BUS** *before* Set if sign of [**AR**](#ar) differs from signs of both [**AR**](#ar) and **BUS** *before*
the arithmetic operation. the arithmetic operation.
### C ### C
Set if **AR** is less than or equal to **AR** *before* the arithmetic Set if [**AR**](#ar) is less than or equal to [**AR**](#ar) *before* the arithmetic
operation. operation.
### L ### L
Set if **LC** == 0. Set if [**LC**](#lc) == 0.
## Registers ## Registers
@ -321,11 +321,11 @@ but is nonetheless directly readable via the bus.
### PM ### PM
The program-memory pseudo-register allows you to read/write values from the The program-memory pseudo-register allows you to read/write values from the
currently accessed program memory address (see **ASR**). currently accessed program memory address (see [**ASR**](#asr)).
### ASR ### ASR
The address register; this register is used to specify which address of The address register; this register is used to specify which address of
program-memory to be accessible via **PM**. program-memory to be accessible via [**PM**](#pm).
**NOTE**: This register cannot be read. **NOTE**: This register cannot be read.
@ -337,7 +337,7 @@ storing ephemeral or intermediate values during a computation.
The instruction register. This register offers extra functionality such as K1- The instruction register. This register offers extra functionality such as K1-
and K2-table addressing via the OP and M bits respectively. The GRx and M bits and K2-table addressing via the OP and M bits respectively. The GRx and M bits
can also be used to address a specific general register via the GR multiplexer can also be used to address a specific general register via the GR multiplexer
(see **GR**). (see [**GR**](#gr)).
### GR ### GR
This is a shorthand for accessing the general register currently made available This is a shorthand for accessing the general register currently made available
@ -366,7 +366,7 @@ action to take for the register. The three ways of modifying it are as follows:
`lcset [const]` `lcset [const]`
**NOTE**: LC cannot be read and can only be written to as detailed above. The **NOTE**: LC cannot be read and can only be written to as detailed above. The
value in LC can, though, to some degree be inferred from the L-flag value in LC can, though, to some degree be inferred from the [**L-flag**](#l)
(see [*Flags*](#flags)). (see [*Flags*](#flags)).
## Sorting algorithms ## Sorting algorithms