提交 c175513a 创建 作者: 赵鹏翀's avatar 赵鹏翀

Initial commit

上级
*.cir
*.xml
*.bak
/.vs
\ No newline at end of file
添加文件
差异被折叠。
添加文件
差异被折叠。
添加文件
这个 源代码变更 因为 太大 而不能显示。 你可以 浏览blob
# 说明
16 位 MIPS 单周期微处理器
# 原理图
![raw svg](MIPS.dlsche.svg)
\ No newline at end of file
添加文件
差异被折叠。
添加文件
这个 源代码变更 因为 太大 而不能显示。 你可以 浏览blob
差异被折叠。
添加文件
差异被折叠。
添加文件
这个 源代码变更 因为 太大 而不能显示。 你可以 浏览blob
添加文件
差异被折叠。
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<project id="3faa0427-6dad-4fdb-8fe5-a06137669a6e" name="mips-single-cycle" version="1">
<files>
<filefolder id="c0a181af-d67c-4dd0-9275-aa277475c77c" name="子模块">
<file relativepath="2mux1.dlsche"/>
<file relativepath="alu.dlsche"/>
<file relativepath="compare.dlsche"/>
<file relativepath="control.dlsche"/>
<file relativepath="pc_new.dlsche"/>
<file relativepath="alu_operand.dlsche"/>
<file relativepath="3mux1.dlsche"/>
<file relativepath="al.dlsche"/>
<file relativepath="reg.dlsche"/>
<file relativepath="extend.dlsche"/>
</filefolder>
<filefolder id="2156f6c8-84d5-409f-859c-fddce752753a" name="存储器映射文件">
<file relativepath="rom.rxm"/>
</filefolder>
<filefolder id="3463ada9-1cc7-4838-ab12-f98af0a12bf2" name="源程序文件">
<file relativepath="rom.asm"/>
<file relativepath="rom.bat"/>
</filefolder>
<file relativepath="MIPS.dlsche"/>
<file relativepath="README.md"/>
</files>
</project>
添加文件
差异被折叠。
添加文件
差异被折叠。
添加文件
这个 源代码变更 因为 太大 而不能显示。 你可以 浏览blob
.text
addi $r0, $r0, 1 ;r0 = r0 + 1
addi $r1, $r1, 2 ;r1 = r1 + 2
addi $r3, $r3, 3 ;r3 = r3 + 3
SHIFT:
sllv $r1, $r1, $r0 ;r1 = r1 << r0
add $r3, $r3, $r1 ;r3 = r3 + r1
slt $r2, $r1, $r0 ;r2 = r1 < r0 ? 1 : 0;
beq $r2, $r2, NEXT ;if r2 == r2, goto NEXT
NEXT:
lw $r0, 0($r1) ;r0 = memory[r1+0]
sw $r3, 0($r1) ;memory[r1+0] = r3
sub $r1, $r1, $r0 ;r1 = r1 - r0
add $r1, $r1, $r0 ;r1 = r1 + r0
bne $r1, $r2, END ;if r1 != r2, goto END
and $r3, $r1, $r2 ;r3 = r1 & r2
END:
jump F1 ;goto SHIFT
sllv $r3, $r0, $r1 ;r3 = r0 << r1
F1:
sub $r2, $r2, $r3 ;r2 = r2 - r3
bgt $r3, $r2, F2 ;if r3 > r2, goto F2
add $r2, $r2, $r3 ;r2 = r2 + r3
F2:
ori $r1, $r1, 3 ;r1 = r1 | 3
srav $r3, $r3, $r1 ;r3 = r3 >> r1,
andi $r1, $r2, 4 ;r1 = r2 & 4
jump SHIFT ;goto SHIFT
@echo off
mipsasm.exe rom.asm -o rom.rxm -l rom.lst -g rom.dbg
pause
添加文件
0001 .text
0002
0003 00 50 01 addi $r0, $r0, 1 ;r0 = r0 + 1
0004 02 55 02 addi $r1, $r1, 2 ;r1 = r1 + 2
0005 04 5F 03 addi $r3, $r3, 3 ;r3 = r3 + 3
0006
0007
0008 SHIFT:
0009 06 04 44 sllv $r1, $r1, $r0 ;r1 = r1 << r0
0010 08 0D C2 add $r3, $r3, $r1 ;r3 = r3 + r1
0011
0012 0A 04 87 slt $r2, $r1, $r0 ;r2 = r1 < r0 ? 1 : 0;
0013 0C 8A 00 beq $r2, $r2, NEXT ;if r2 == r2, goto NEXT
0014
0015 NEXT:
0016 0E 64 00 lw $r0, 0($r1) ;r0 = memory[r1+0]
0017 10 77 00 sw $r3, 0($r1) ;memory[r1+0] = r3
0018
0019 12 04 43 sub $r1, $r1, $r0 ;r1 = r1 - r0
0020 14 04 42 add $r1, $r1, $r0 ;r1 = r1 + r0
0021 16 96 01 bne $r1, $r2, END ;if r1 != r2, goto END
0022 18 06 C1 and $r3, $r1, $r2 ;r3 = r1 & r2
0023
0024 END:
0025 1A B0 0F jump F1 ;goto SHIFT
0026 1C 01 C4 sllv $r3, $r0, $r1 ;r3 = r0 << r1
0027
0028 F1:
0029 1E 0B 83 sub $r2, $r2, $r3 ;r2 = r2 - r3
0030 20 AE 01 bgt $r3, $r2, F2 ;if r3 > r2, goto F2
0031 22 0B 82 add $r2, $r2, $r3 ;r2 = r2 + r3
0032
0033 F2:
0034 24 35 03 ori $r1, $r1, 3 ;r1 = r1 | 3
0035 26 0D C6 srav $r3, $r3, $r1 ;r3 = r3 >> r1,
0036 28 49 04 andi $r1, $r2, 4 ;r1 = r2 & 4
0037
0038 2A B0 03 jump SHIFT ;goto SHIFT
0039
0040
0041
0042
0043
添加文件
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论