cours/Processeur sur digital logic sim.md

74 lines
1.3 KiB
Markdown

---
aliases:
up:
tags:
- s/informatique
---
# Assembleur
## opérations de l'ALU
| Hex | Bin | ALU operation |
| --- | ---- | --------------------- |
| 0 | 0000 | A |
| 1 | 0001 | B |
| 2 | 0010 | A+B |
| 3 | 0011 | A-B |
| 4 | 0100 | A XOR B |
| 5 | 0101 | A AND B |
| 6 | 0110 | A+1 |
| 7 | 0111 | A-1 |
| 8 | 1000 | ¬A |
| 9 | 1001 | ¬B |
| A | 1010 | ¬(A+B) |
| B | 1011 | ¬(A-B) |
| C | 1100 | ¬(A XOR B) = A NXOR B |
| D | 1101 | ¬(A AND B) = A NAND B |
| E | 1110 | ¬(A+1) = -A-2 |
| F | 1111 | ¬(A-1) = -A |
## branches
- `100· ···· JMP to #A`
- `101· ···· JMP to #B`
- `110· ···· JMP to #RAM[A]`
- `111· ···· JMP to #addr`
- ! `1··· 0·00 JMP`
- ! `1··· 0·01 JMP if A=0`
- ! `1··· 0·10 JMP if A=B`
- ! `1··· 0·11 JMP if overflow`
- ! `1··· 1·00`
- ! `1··· 1·01 JMP if A≠0`
- ! `1··· 1·10 JMP if A≠B`
- ! `1··· 1·11 JMP if overflow`
# Programmes
## Multiplication
```
3000
700D
3001
700B
3002
7000
3000
5000
3002
4000
1200
3002
2100
3001
4000
1700
3001
2100
0000
4000
E906
3002
FFFF
```