Repository navigation
Releases: Suhoiyis/assembler_py
Release list
2.0.0
验证完成
保持main分支,与最新发行版Releases一致,
dev应该是最新进展的最新开发记录
为实现可视化窗口,另开windows分支作为最新进展
pseudo.py从program.txt中读取汇编语言并进行汇编,再输入到machine_code_output.txt
而用windows.py实现可视化操作窗口
pseudo.py不能直接单独使用,
若想单独使用pseudo.py及其功能,需要修改pseudo.py的expand_pseudo_instructions(lines)末尾,详见pseudo.py开头注释
若要实现可视化窗口,直接运行windows.py即可
(老汇编代码已移至 /src/old asm 文件夹中)
(开发日志写在Development Log.md里面)
说明书详见README.md
1.1.0
1.0.0
0.0.3
唉,第三档本来想着修修改改了上,就一直没传,其实应该还有个第四档的,结果现在最终档马上都就要出来了,来不及喽。。。。。
那就把第三档第四档合一起上了吧
第三档前言:
(2025.5.8 改)
添加了识别 start 标识符以及 inner_loopX , outer_loopX (X一般代表数字,一个文件中可能有多个 inner_loop 或outer_loop)
特别注意输入的指令应当形如 lui a1, 0x20
即 “ 指令 + [空格] + rt + [逗号“,”] + [空格] + imm “
注意指令与后面内容有空格隔开,而后面 rt rs imm之间即便有逗号也要有空格分割(即便start , inner_loop , outer_loop也是一样)
把上版的输入内容存为 program - 副本.txt
把之前写的没一点用的东西先删了
第四档前言(没传在这次的md里面写在下次的,也就是最终版里面了)
(2025.5.12 更)
应该快要结束了,存一下档,本来应该是这个档或者上个档来做第三档的)
sb指令那里对应输出的机器码位置次序不对
由 return imm + rs + rt + opcode_map[instr] # 顺序:imm base_reg src_reg op
改为 return rt + rs + imm + opcode_map[instr] # 顺序 base_reg src_reg imm op
0.0.2
第三版要出来了,先给第二版存个档
pseudo.py从program.txt中读取汇编语言并进行汇编,再输入到machine_code_output.txt
目前可以使用添加的伪指令la li bge j
输入
lui a4, 0x8 // 0x800 * 0x8000 = 0x400_0000
outer_loop:
lui a2, 0x40 // 0x4000 * 2 = 0x8000
inner_loop:
addi al, a1, 1
ble a1, a2, inner_loop
addi a3, a3, 1
ble a3, a4, outer_loop
输出:
0000_1000_0111_1110
0100_0000_0101_1110
0001_0100_0100_1100
0101_0100_1110_0011
0001_0110_0110_1100
0111_0110_1011_0011
0.0.1
assembler.py从program.txt中读取汇编语言并进行汇编,再输入到machine_code_output.txt
只能简单的识别指令,不能识别标签等东西
注意嗷,阉割了伪指令功能
类似
jal r1, 0
jalr r1, r3, 6
addi r3, r1, 2
subi r4, r1, -2
beq r3, r4, -6
ble r3, r5, 0
add r5, r3, r4
sub r6, r3, r4
sb r5, 2(r6)
sw r5, 4(r6)
lb r7, 4(r6)
lw r8, 2(r6)
and r9, r5, r6
or r10, r5, r6
lui r11, 0xA1