Added division

This commit is contained in:
cannoli-fruit 2026-07-24 03:05:44 -04:00
commit f9a715e3b1
4 changed files with 23 additions and 1 deletions

BIN
flagvm

Binary file not shown.

View file

@ -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
View 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

View file

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