Skip to content

2020/2021(2) 计算机组成原理 TD-CMA 指令微指令相关工具

Notifications You must be signed in to change notification settings

BiguBiku/TD-CMAKit

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TD-CMAKit

磨刀不误砍柴工

2020/2021(2) 计算机组成原理 TD-CMA 指令微指令相关工具

目前实现

  • 微指令的汇编器,并推测指令格式信息
  • 根据微指令生成流程图
  • 根据推测信息进行汇编
  • 可生成二进制源码映射表

例子

微指令汇编

.START!:
	AR=PC++
	IR=MEM
	<P1:30>
		0:ADD
		2:IN
		4:OUT
		5:HLT
		C:JMP

.ADD#:
	A=RS
	B=RD
	RD=A+B
	END

.IN#:
	AR=MEM
	RD=IN
	END

.OUT#:
	AR=MEM
	OUT=RS
	END

.HLT#:
	NOP
	END HLT

.JMP#:
	AR=PC++
	PC=MEM
	END

START 是程序处理的入口

标号后 ! 号表示此为读取下一指令的入口,END 默认会跳转至此

END 与 GOTO 区别在于绘制流程图时 END 会中止处理后继,请合理使用 GOTO 和 END 以避免绘制流图时出现环。

需要在标号后添加 # 指示程序这是一条指令

伪微指令

00 LDAR PC_B LDPC 01
01 LDIR RD P1 30
02 LDB RD_B 03
03 LDRi ADD ALU_B 00
04 LDRi RD IOM 00
05 WR IOM RS_B 00
06 LOAD LDPC RD 00
30 LDA RS_B 02
32 LDAR RD 04
34 LDAR RD 05
35 NOP 35
3C LDAR PC_B LDPC 06

二进制

$M 00 006D41 ; AR=PC++
$M 01 107070 ; IR=MEM
$M 02 002603 ; B=RD
$M 03 04B200 ; RD=A+B
$M 04 183000 ; RD=IN
$M 05 280400 ; OUT=RS
$M 06 105140 ; PC=MEM
$M 30 001402 ; A=RS
$M 32 106004 ; AR=MEM
$M 34 106005 ; AR=MEM
$M 35 000035 ; NOP
$M 3C 006D46 ; AR=PC++

根据微指令给出的指令提示

ADD: Mode 0 0000RSRD, 1 bytes.
IN: Mode 0 0010XXRD, 1 bytes.
OUT: Mode 0 0100RSXX, 1 bytes.
HLT: Mode 0 0101XXXX, 1 bytes.
JMP: Mode 0 11XX00XX, 2 bytes.

微指令流程图

流程图

汇编

.START:
    IN R1
    OUT R1
    JMP START

程序根据从上到下的顺序处理代码

汇编参数顺序:先 RD,再 RS,最后依次的附加字节

二进制

$P 00 21 ; IN R1
$P 01 44 ; OUT R1
$P 02 C0 ; JMP START
$P 03 00

About

2020/2021(2) 计算机组成原理 TD-CMA 指令微指令相关工具

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 100.0%