08-23-2013, 12:50 AM
(This post was last modified: 08-23-2013, 12:52 AM by WrytXander.)
Boys and girls, ladies and gentleman, it is here :p No i am just kiddin, I was working on this IS for a long time, and now it has finished! It is an 8 bit IS, but by making it compact there were some drawbacks occuring, without further i do, lets get straight on with this bad boy!:
#Operations#
Code / Name / Function
0000 ADD rc=rb+ra
0001 ADDi rc=rb+Imm
0010 SUBi rc=rb-Imm
0011 LU1 ra<-UI1
0100 LU2 rb<-UI1
0101 LU3 ra<-UI2
0110 LU4 rb<-UI2
0111 Lr1 ra<-GPR
1000 Lr2 rb<-GPR
1001 Li1 ra<-Imm
1010 Li2 rb<-Imm
1011 OUT UI3<-GPR
1100 JMPi PC<-Imm
1101 JEG PC<-Imm if ra == rb
1110 JOF PC<-Imm if overflow
1111 SAM Screen Addressing Mode
As you can see, this is one of those step-by-step execution IS. The advantege: super compact, the disadvantage: somewhat slow, and not so powerful. The bitlayout is as follows:
(0000)(0000)
^ ^
OP Imm
Now lets talk about SAM, or screen addressing mode. The screen takes whatever is in the GPR, and prints out a binary image on the horizontal line addresses by the Immediate.
So of the GPR contains 1011, and we have selected line 2 (screen is 4x4) the screen would look like this:
O O O O
O O O O
X O X X
O O O O
System registers: ra and rb are ALU inputs, GPR is where the output of each cycle is stored (yeah i know it is not a general purpose register, but couldnt comeup with a better name, rc is not very pleasent) UI1 & UI2 are user input registers, UI3 is the output register. The data type could vary on how youhave your output setup. It coild display BCD, or decimal , it is up to your choice and your decoders. PC stores the binary value of the line that the instructions are being executed at the meantime.
And thats it!! Btw, i did all this on my all might iPhone 3GS, so,.. yeah I have lots of free time. Lalalala
#Operations#
Code / Name / Function
0000 ADD rc=rb+ra
0001 ADDi rc=rb+Imm
0010 SUBi rc=rb-Imm
0011 LU1 ra<-UI1
0100 LU2 rb<-UI1
0101 LU3 ra<-UI2
0110 LU4 rb<-UI2
0111 Lr1 ra<-GPR
1000 Lr2 rb<-GPR
1001 Li1 ra<-Imm
1010 Li2 rb<-Imm
1011 OUT UI3<-GPR
1100 JMPi PC<-Imm
1101 JEG PC<-Imm if ra == rb
1110 JOF PC<-Imm if overflow
1111 SAM Screen Addressing Mode
As you can see, this is one of those step-by-step execution IS. The advantege: super compact, the disadvantage: somewhat slow, and not so powerful. The bitlayout is as follows:
(0000)(0000)
^ ^
OP Imm
Now lets talk about SAM, or screen addressing mode. The screen takes whatever is in the GPR, and prints out a binary image on the horizontal line addresses by the Immediate.
So of the GPR contains 1011, and we have selected line 2 (screen is 4x4) the screen would look like this:
O O O O
O O O O
X O X X
O O O O
System registers: ra and rb are ALU inputs, GPR is where the output of each cycle is stored (yeah i know it is not a general purpose register, but couldnt comeup with a better name, rc is not very pleasent) UI1 & UI2 are user input registers, UI3 is the output register. The data type could vary on how youhave your output setup. It coild display BCD, or decimal , it is up to your choice and your decoders. PC stores the binary value of the line that the instructions are being executed at the meantime.
And thats it!! Btw, i did all this on my all might iPhone 3GS, so,.. yeah I have lots of free time. Lalalala