16位的RISC_CPU

源代码在线查看: test1.pro

软件大小: 430 K
上传用户: quzhengjie
关键词: RISC_CPU
下载地址: 免注册下载 普通下载 VIP

相关代码

				//-------------------------------------------- 文件 test1.pro -----------------------------------------
				/******************************************************************************
				***   Test1 程序是用于验证RISC_ CPU逻辑功能的机器代码。是根据汇编语言由人工编译的。
				***   本汇编程序用于测试RISC_ CPU的基本指令集,如果RISC_ CPU的各条指令执行正确,
				***   它应在地址为17(hex)处,在执行HLT时停止运行。 如果该程序在任何其他地址暂停
				***   运行,则必有一条指令运行出错。可参照注释找到出错的指令。
				***   @符号后的十六进制数表示存储器的地址,以下的二进制数为机器码;
				***   每行//符号后表示自己为RISC_CPU设计的汇编程序和程序注释。
				*****************************************************************************/
				
				// 机器码		   地址	         汇编助记符		  注释
				
				//------------------------------- test1.pro开始 ---------------------------------------------------------------------
				 @00                                                                                          //address statement
				    111_00000_0011_1100         //  00           BEGIN:    JMP TST_JMP
				    000_00000_0000_0000         //  01                     HLT    //JMP did not work at all
				    000_00000_0000_0000         //  02                     HLT    //JMP did not load PC, it skipped
				    101_11000_0000_0000         //  03          JMP_OK:    LDA  DATA_1
				    001_00000_0000_0000         //  04                     SKZ
				    000_00000_0000_0000         //  05                     HLT   //SKZ or LDA did not work
				    101_11000_0000_0010         //  06                     LDA  DATA_2
				    001_00000_0000_0000         //  07                     SKZ
				    111_00000_0000_1010         //  08                     JMP  SKZ_OK
				    000_00000_0000_0000         //  09                     HLT    //SKZ or LDA did not work
				    110_11000_0000_0100         //  0a            SKZ_OK:  STO TEMP //store non-zero value in TEMP
				    101_11000_0000_0000         //  0b                     LDA  DATA_1
				    110_11000_0000_0100         //  0c                     STO  TEMP  //store zero value in TEMP
				    101_11000_0000_0100         //  0d                     LDA TEMP
				    001_00000_0000_0000         //  0e                     SKZ     //check to see if STO worked
				    000_00000_0000_0000         //  0f                     HLT    //STO did not work
				    100_11000_0000_0010         //  10                     XOR DATA_2
				    001_00000_0000_0000         //  11                     SKZ    //check to see if XOR worked
				    111_00000_0001_0100         //  12                     JMP XOR_OK
				    000_00000_0000_0000         //  13                     HLT   //XOR did not work at all
				    100_11000_0000_0010         //  14            XOR_OK:  XOR DATA_2
				    001_00000_0000_0000         //  15                     SKZ
				    000_00000_0000_0000         //  16                     HLT   //XOR did not switch all bits
				    000_00000_0000_0000         //  17               END:  HLT   //CONGRATULATIONS - TEST1 PASSED!
				    111_00000_0000_0000         //  18                     JMP BEGIN  //run test again
				    
				
				@3c 
				    111_00000_0000_0011         //  3c            TST_JMP:  JMP JMP_OK
				    000_00000_0000_0000         //  3e                    HLT    //JMP is broken
				//-----------------------------test1.pro的结束--------------------------------------------
							

相关资源