-
Notifications
You must be signed in to change notification settings - Fork 1
Errors in the specification #5
Copy link
Copy link
Open
Description
- The way syscalls work and which codes they use are not specified
- Where do the print syscalls get their value from?
- The hash function is not specified
- Which instruction is being executed first?
- Is memory initialized with 0 by default?
- Which byte corresponds to which register? (
00<->A, ...)? - Do load and store work in a little endian or big endian way? If an int from address x is loaded is x+3 the highest or the lowest byte?
- Technically push / pop is not fully specified (does it decrease the stack pointer)?
- The calling convention is defined for a programming language, not for an instruction set, only the way call and ret work should be specified
- How does the parameter mode register address and relative address work? Specifically how many bytes do they take?
- Can the constant parameter modes be used for writable parameters? Is this undefined behaviour, should the cpu panic?
- Push and pop, when do they increase/decrease S?
- better describe how lw works
- does loading into smaller registers overwrite the top bits?
- revise ld
registersomethingregarding the size of the operation - specify how many bytes should be read from memory using absoluteaddressing, relativeaddressing, ...
- when setting the lower bits of
Rwith operations such asinc, will the upper bits get replaced by zero or do they stay untouched - what happens to
Rwhen using themodinstruction - do the print and println syscalls read the string upwards or downwards?
- what happens with the
Rregister with the floating point operations - are set, clear, toggle and test 0 or 1 indexed
- what does
testdo? does it set the i'th bit inron success or the 0'th bit? - more explicitly define the random number generator, it is not said anywhere that the top 16 bits are being taken and not the bottom 16 bits
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels