74 lines
1.3 KiB
Markdown
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
|
|
``` |