Update README.md
This commit is contained in:
81
README.md
81
README.md
@ -1,49 +1,48 @@
|
|||||||
Cool ARM Ripoff
|
#Cool ARM Ripoff
|
||||||
|
|
||||||
A simple (and ridiculous) virtual machine/CPU made for no real reason/purpose.
|
*A simple (and ridiculous) virtual machine/CPU made for no real reason/purpose.*
|
||||||
|
|
||||||
Written in C, made by David Goeke.
|
***Written in C, made by David Goeke.***
|
||||||
|
|
||||||
|
|
||||||
Current features:
|
###Current features:
|
||||||
few to none.
|
- few to none.
|
||||||
|
- 32 general purpose registers
|
||||||
|
- 32-bit addresses
|
||||||
|
|
||||||
32 general purpose registers
|
###Needed features:
|
||||||
32-bit addresses
|
- push/pop
|
||||||
|
- call/ret
|
||||||
|
- jmp/conditional jmps
|
||||||
|
- store high 11 bits of an immediate in memory
|
||||||
|
|
||||||
Needed features:
|
###instuctions (arithmetic):
|
||||||
push/pop
|
- add
|
||||||
call/ret
|
- sub (subtract)
|
||||||
jmp/conditional jmps
|
- mul (multiply)
|
||||||
store high 11 bits of an immediate in memory
|
- div (divide)
|
||||||
|
- mod (modulus, division remainder)
|
||||||
|
- shl (logical shift left)
|
||||||
|
- shr (logical shift right)
|
||||||
|
- ahr (arithmetic shift right)
|
||||||
|
- ror (logical rotate right)
|
||||||
|
- and (logical AND)
|
||||||
|
- or (logical OR)
|
||||||
|
- xor (logical XOR)
|
||||||
|
- not (logical NOT/invertion)
|
||||||
|
- xchg (exchange registers)
|
||||||
|
|
||||||
instuctions (arithmetic):
|
###Insutrctions (load/store):
|
||||||
add
|
- ldr (load register with value from memory, using the program counter as the base)
|
||||||
sub (subtract)
|
- lds (load register with value from memory, using the stack pointer as the base)
|
||||||
mul (multiply)
|
- ldb (load register with value from memory, using a specified register as the base)
|
||||||
div (divide)
|
- ldi (load register with and immediate value, only low 21 bits)
|
||||||
mod (modulus, division remainder)
|
- str (store register at memory, using the program counter as the base)
|
||||||
shl (logical shift left)
|
- sts (store register at memory, using the stack pointer as the base)
|
||||||
shr (logical shift right)
|
- stb (store register at memory, using the specified register as the base)
|
||||||
ahr (arithmetic shift right)
|
- ldh (load high 11 bits of register with immediate)
|
||||||
ror (logical rotate right)
|
- sti (store a 21-bit immediate at memory, using the program counter as the base)
|
||||||
and (logical AND)
|
- stj (store a 21-bit immediate at memory, using the stack pointer as the base)
|
||||||
or (logical OR)
|
|
||||||
xor (logical XOR)
|
|
||||||
not (logical NOT/invertion)
|
|
||||||
xchg (exchange registers)
|
|
||||||
|
|
||||||
Insutrctions (load/store):
|
###Instructions (misc):
|
||||||
ldr (load register with value from memory, using the program counter as the base)
|
- nop (do nothing)
|
||||||
lds (load register with value from memory, using the stack pointer as the base)
|
|
||||||
ldb (load register with value from memory, using a specified register as the base)
|
|
||||||
ldi (load register with and immediate value, only low 21 bits)
|
|
||||||
str (store register at memory, using the program counter as the base)
|
|
||||||
sts (store register at memory, using the stack pointer as the base)
|
|
||||||
stb (store register at memory, using the specified register as the base)
|
|
||||||
ldh (load high 11 bits of register with immediate)
|
|
||||||
sti (store a 21-bit immediate at memory, using the program counter as the base)
|
|
||||||
stj (store a 21-bit immediate at memory, using the stack pointer as the base)
|
|
||||||
|
|
||||||
Instructions (misc):
|
|
||||||
nop (do nothing)
|
|
||||||
|
|||||||
Reference in New Issue
Block a user