Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- fetch:
- [MAR0] <-- [PC0]
- [MAR1] <-- [PC1]
- [PC] <-- [PC] + 1
- [IR0] <-- [[MAR]]
- If (Opcode = 00xx) Goto direct_branch
- If (Opcode = 01xx) Goto indirect_branch
- If (Opcode = 1000) Goto load_immediate
- If (Opcode = 1001) Goto load_memory_direct
- If (Opcode = 1010) Goto load_memory_indirect
- If (Opcode = 1011) Goto store_memory_direct
- If (Opcode = 1100) Goto store_memory_indirect
- If (Opcode = 1101) Goto alu
- # Direct Branch:
- # ---------------
- direct_branch:
- [MAR0] <-- [PC0]
- [MAR1] <-- [PC1]
- [PC] <-- [PC] + 1
- [IR2] <-- [[MAR]]
- [MAR0] <-- [PC0]
- [MAR1] <-- [PC1]
- [PC] <-- [PC] + 1
- [IR3] <-- [[MAR]]
- If (EvalCond = 0) Goto fetch
- [PC0] <-- [IR2]
- [PC1] <-- [IR3]
- Goto fetch
- # Indirect Branch:
- # -----------------
- indirect_branch:
- [MAR0] <-- [PC0]
- [MAR1] <-- [PC1]
- [PC] <-- [PC] + 1
- [IR1] <-- [[MAR]]
- If (EvalCond = 0) Goto fetch
- [PC0] <-- [REGB]
- [PC1] <-- [REGC]
- Goto fetch
- # Load Immediate:
- # -----------------
- load_immediate:
- [MAR0] <-- [PC0]
- [MAR1] <-- [PC1]
- [PC] <-- [PC] + 1
- [REGA] <-- [[MAR]]
- Goto fetch
- # Load from Memory (Direct):
- # ---------------------------
- load_memory_direct:
- [MAR0] <-- [PC0]
- [MAR1] <-- [PC1]
- [PC] <-- [PC] + 1
- [IR2] <-- [[MAR]]
- [MAR0] <-- [PC0]
- [MAR1] <-- [PC1]
- [PC] <-- [PC] + 1
- [IR3] <-- [[MAR]]
- [MAR0] <-- [IR2]
- [MAR1] <-- [IR3]
- [REGA] <-- [[MAR]]
- Goto fetch
- # Load from Memory (Indirect):
- # -----------------------------
- load_memory_indirect:
- [MAR0] <-- [PC0]
- [MAR1] <-- [PC1]
- [PC] <-- [PC] + 1
- [IR1] <-- [[MAR]]
- [MAR0] <-- [REGB]
- [MAR1] <-- [REGC]
- [REGA] <-- [[MAR]]
- Goto fetch
- # Store to Memory (Direct):
- # -----------------------------
- store_memory_direct:
- [MAR0] <-- [PC0]
- [MAR1] <-- [PC1]
- [PC] <-- [PC] + 1
- [IR2] <-- [[MAR]]
- [MAR0] <-- [PC0]
- [MAR1] <-- [PC1]
- [PC] <-- [PC] + 1
- [IR3] <-- [[MAR]]
- [MAR0] <-- [IR2]
- [MAR1] <-- [IR3]
- [[MAR]] <-- [REGA]
- Goto fetch
- # Store to Memory (Indirect):
- # -----------------------------
- store_memory_indirect:
- [MAR0] <-- [PC0]
- [MAR1] <-- [PC1]
- [PC] <-- [PC] + 1
- [IR1] <-- [[MAR]]
- [MAR0] <-- [REGB]
- [MAR1] <-- [REGC]
- [[MAR]] <-- [REGA]
- Goto fetch
- # ALU Operation:
- # ----------------
- alu:
- [MAR0] <-- [PC0]
- [MAR1] <-- [PC1]
- [PC] <-- [PC] + 1
- [IR1] <-- [[MAR]]
- [ALU0] <-- [REGB]
- [ALU1] <-- [REGC]
- [REGB] <-- [ALU2]
- Goto fetch
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement