Added division
This commit is contained in:
parent
d23a3e49ff
commit
f9a715e3b1
4 changed files with 23 additions and 1 deletions
BIN
flagvm
BIN
flagvm
Binary file not shown.
|
|
@ -162,12 +162,18 @@ int main(int argc, char **argv) {
|
||||||
negativeFlag = (val < 0);
|
negativeFlag = (val < 0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 0x60: {
|
case 0x60: { // AddR64
|
||||||
unsigned char dst = inputs[0];
|
unsigned char dst = inputs[0];
|
||||||
unsigned char src = inputs[1];
|
unsigned char src = inputs[1];
|
||||||
registers[dst] += registers[src];
|
registers[dst] += registers[src];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case 0x72: { // DivR64
|
||||||
|
unsigned char dst = inputs[0];
|
||||||
|
unsigned char src = inputs[1];
|
||||||
|
registers[dst] /= registers[src];
|
||||||
|
break;
|
||||||
|
}
|
||||||
case 0xC0: { // Jmp
|
case 0xC0: { // Jmp
|
||||||
unsigned char addr = inputs[0];
|
unsigned char addr = inputs[0];
|
||||||
xPc = registers[addr];
|
xPc = registers[addr];
|
||||||
|
|
|
||||||
10
tests/div.asm
Normal file
10
tests/div.asm
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
include "fvm.inc"
|
||||||
|
|
||||||
|
org 0x4000000000000000
|
||||||
|
MovI64 r95, UART_TX
|
||||||
|
MovI64 r2, 64
|
||||||
|
MovI64 r3, 16
|
||||||
|
DivR64 r2, r3
|
||||||
|
MovI64 r4, 48 ; ascii for 0
|
||||||
|
AddR64 r2, r4
|
||||||
|
St8 r2, r95
|
||||||
|
|
@ -236,6 +236,12 @@ macro AddR64 dst, src
|
||||||
db src
|
db src
|
||||||
end macro
|
end macro
|
||||||
|
|
||||||
|
macro DivR64 dst, src
|
||||||
|
db 0x72
|
||||||
|
db dst
|
||||||
|
db src
|
||||||
|
end macro
|
||||||
|
|
||||||
macro RSetF reg
|
macro RSetF reg
|
||||||
db 0x42
|
db 0x42
|
||||||
db reg
|
db reg
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue