Question

I have been working on a fictional retro virtual machine for xbox since January (I am not at all copying 0x10c, infact my project is older. just putting this out there incase some notch fanboys read this) and it has 6 general purpose registers. These are 8 bit but all can be combined to make 3 16 bit registers, memory addresses though are 16 bit and so is the program counter. I know this is a stupid question, but I couldn't figure this out, is it 16 or 8 bit???? The z80 uses 16 bit addresses and is 8 bit

Was it helpful?

Solution

As I know and learned of, the processor's bit width of the general purpose register determines it, because all the calculations are rely on the clock speed, and it can do process only the amount of the general purpose register.

For example, in a 32-bit processor, it can do 64 bit calculations by register concatenation, but it doesn't possible to call it as a 64-bit processor. Of course there are some 64-bit extensive instructions in 32-bit processors, but they consumes double clocks, two steps.

I think your processor's designer just want to expand the memory address space to support more big memory.

So, my conclusion is 8-bit processor.

OTHER TIPS

Can your processor process 16 bits of data in one go, or does it use two separate 8 bit operations behind the scenes? If the former, it's 16 bit. If the latter, it's 8 bit.

From your description, it sounds like 16 bit, since it uses 16 bits for data addressing.

The most common definition of what constitutes a 16-bit processor is the size of the longest integer type that can be handled by the processor with native instructions. If your virtual machine has arithmetic instructions that operate on the 16-bit registers and give 16-bit inputs, it qualifies as a 16-bit machine.

Another common definition is the size of the address space. Since your virtual machine has 16-bit addresses, it would also qualify as 16-bit.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top