--- 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 ```