1 / 58

TEC-2000 Virtual Machine 使用手册

TEC-2000 Virtual Machine 使用手册. 南京大学计算机科学与技术系 程序设计:李振华 李秦霖 界面制作:袁瑞峰. 开发背景. 大三上学期,我们做计算机组成原理实验,使用的机器是 TEC-2000 单片机(清华大学设计,清华同方制造)。它使用标准芯片,硬件设施比较完备,适合教学和实验。 在此基础上,我们设计并开发了 TEC-2000 虚拟机软件。一方面,它实现了一台虚拟机,运行虚拟机可以取得和原来单片机实际运行一样的效果;另一方面,虚拟机可以通过串口与真实单片机进行通信,与两台单片机通信过程一致。

amil
Download Presentation

TEC-2000 Virtual Machine 使用手册

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TEC-2000 Virtual Machine使用手册 南京大学计算机科学与技术系 程序设计:李振华 李秦霖 界面制作:袁瑞峰

  2. 开发背景 • 大三上学期,我们做计算机组成原理实验,使用的机器是TEC-2000单片机(清华大学设计,清华同方制造)。它使用标准芯片,硬件设施比较完备,适合教学和实验。 • 在此基础上,我们设计并开发了TEC-2000虚拟机软件。一方面,它实现了一台虚拟机,运行虚拟机可以取得和原来单片机实际运行一样的效果;另一方面,虚拟机可以通过串口与真实单片机进行通信,与两台单片机通信过程一致。 • 同时,虚拟机增添了许多原来单片机所没有的功能,给实验编码、运行、调试和观察带来很大的方便。 • 请注意将TVM(TEC-2000 Virtual Machine)文件夹放在C盘(或D盘)根目录下。

  3. 运行程序 • 本软件不需要安装,双击TVM文件夹下的TEC Pro.exe即可运行。

  4. 功能概要 • 1.支持A,G,R,D,E,U,T,P等命令; • 2.可读入.ASM汇编文件或者.COD二进制文件执行; • 3.可选择不同的运行方式(全速,单指令,单微指令,暂停) • 4.支持中断实验(三级中断源),可以设定中断向量; • 5.支持指令集与微指令集的动态扩充; • 6.控件动态显示所有重要信号与数据状态(部分控件可点击);

  5. 使用流程(1) • 1.首先点击“连接”按钮,选择“与TEC2000通信”或者“使用虚拟机模拟”; • 2.若使用虚拟机模拟,则点击“全速运行”按钮,进入正常工作方式; • 3.为详细了解虚拟机工作情况,建议点击“暂停”,然后单指令或单微指令运行; • 4.若要读入文件,点击“打开文件”按钮,文件格式将自动转换,如要执行文件,再点击“传送”按钮,则文件写入内存,可以执行;

  6. 使用流程(2) • 5.中断实验,请点击“中断向量设定”按钮以设定中断向量基址,并且编好中断程序写入内存,按钮“1”“2”“3”代表三级中断源; • 6.虚拟机可以执行所有的基本指令和部分扩展指令,如果要扩充指令集或者微指令集,选择“TEC Pro控制”菜单下的“微指令扩充...”菜单,注意:只有在微程序模拟的情况下才可以扩充,同时,扩充微指令前请务必仔细设计,否则虚拟机将不能正常工作。

  7. 虚拟机启动

  8. 模式1:联接TEC-2000单片机

  9. 模式2:使用TEC-2000虚拟机(组合逻辑控制方式)模式2:使用TEC-2000虚拟机(组合逻辑控制方式)

  10. 模式3:使用TEC-2000虚拟机(微程序控制方式)

  11. 虚拟机工作结束

  12. 按钮栏

  13. 菜单栏(按钮栏没有的功能) • 文件菜单下的“汇编”菜单。 • 汇编:用于将汇编.ASM文件转成机器码.COD和列表文件.LST(可选),会弹出DOS窗口,一般敲两次回车即可,用户也可以另外命名。 • 虚拟机控制菜单下的“微指令扩充”菜单。 • 微指令扩充:由用户定义新的微指令,在合理的情况下,新的微指令将加入到虚拟机的指令系统中。

  14. PCEC工作面板(接受基本命令和基本指令)

  15. ASEC工作面板(接受汇编扩展指令)

  16. 命令输入及参考帮助

  17. 虚拟机工作全图

  18. 微程序工作图

  19. 微程序定序器(内部图)

  20. 组合逻辑工作图

  21. 运算器(内部图)

  22. 串口COM1和COM2

  23. 内存(内部图)

  24. TEC-2000基本命令集 • A [adr]; 从指定(或默认)地址adr开始写一小段汇编程序 • U [adr]; 从指定(或默认)地址adr开始反汇编一小段程序 • D [adr]; 从指定(或默认)地址adr开始显示内存120个存储字的内容 • E [adr]; 从指定(或默认)地址adr开始修改存储器内容 • G [adr]; 从指定(或默认)地址adr开始运行程序 • R [reg]; 显示/修改寄存器reg的内容 • T [adr]; 从指定(或默认)地址adr开始单条执行程序指令

  25. TEC-2000指令集(1) • DI; 关中断,置中断允许位INTE=0 • DW adr; 写地址为adr的内存 • EI; 开中断,置中断允许位INTE=1 • IN i/o port; 从外设I/O PORT端口读入数据到R0 • JR OFFSET; 无条件跳转到ADR,ADR=原PC值+OFFSET

  26. TEC-2000指令集(2) • OR DR,SR; 将DR和SR做或运算的结果写入DR • ADC DR,SR; 将DR+SR+C的值写入DR • ADD DR,SR; 将DR+SR的值写入DR • AND DR,SR; 将DR和SR做与运算的结果写入DR • ASR DR; DR算术右移,最高为保持不变,最低位移入C • CLC; 清进位标志位C=0

  27. TEC-2000指令集(3) • CMP DR,SR; 用DR减去SR • DEC DR; 将DR-1的值写入DR • INC DR; 将DR+1的值写入DR • JRC OFFSET; 当C=1时,跳转到ADR,ADR=原PC值+OFFSET • JRS OFFSET; 当S=1时,跳转到ADR,ADR=原PC值+OFFSET • JRZ OFFSET; 当Z=1时,跳转到ADR,ADR=原PC值+OFFSET

  28. TEC-2000指令集(4) • NOT DR; 将DR求反后的值写入DR • OUT I/O PORT; 将R0中的数据写入外设I/O PORT端口 • RCL DR; DR与C循环左移,C移入最低位,最高位移入C • RCR DR; DR与C循环右移,C移入最高位,最低位移入C • RET; 子程序返回

  29. TEC-2000指令集(5) • SBB DR,SR; 将DR-SR-C的值写入DR • SHL DR; DR逻辑左移,最低位补0,最高位移入C • SHR DR; DR逻辑右移,最高位补0,最低位移入C • STC; 置进位标志位C=1 • SUB DR,SR; 将DR-SR的值写入DR

  30. TEC-2000指令集(6) • POP DR; 弹出栈顶数据送DR • XOR DR,SR; 将DR和SR做异或运算的结果写入DR • CALA ADR; 调用首地址在ADR的子程序 • CALR SR; 调用SR指向的子程序 • IRET; 中断返回

  31. TEC-2000指令集(7) • JMPA ADR; 无条件跳转到地址ADR • JMPR SR; 无条件跳转到SR指向的地址 • JRNC OFFSET; 当C=0时,跳转到ADR,ADR=原PC值+OFFSET • JRNS OFFSET; 当S=0时,跳转到ADR,ADR=原PC值+OFFSET • JRNZ OFFSET; 当Z=0时,跳转到ADR,ADR=原PC值+OFFSET

  32. TEC-2000指令集(8) • LDRA DR,[ADR];将ADR所指向的内存中的内容写入DR • LDRR DR,[SR]; 将SR里地址所指向的内存中的内容写入DR • LDRX DR,OFFSET[SR];将OFFSET+SR所指向的内存中内容写入DR • MVRD DR,DATA; 将DATA写入DR • MVRR DR,SR; 将SR的值写入DR

  33. TEC-2000指令集(9) • POPF; 弹出栈顶数据送状态标志寄存器 • PSHF; 状态标志(C、Z、V、S、P1、P0)入栈 • PUSH SR; SR入栈 • STRA [ADR],SR;将SR的值写入ADR所指向的内存中 • STRR [DR],SR;将SR的值写入DR里地址所指向的内存中 • STRX DR,OFFSET[SR];将DR的值写入OFFSET+SR所指向的内存中 • TEST DR,SR; DR和SR做与运算

  34. 运行方式 • 在联机模式下,只能全速运行; • 在虚拟机模式下,可以全速运行,也可以暂停; • 虚拟机选用组合逻辑控制时,可以单指令运行,方便指令调试; • 虚拟机选用微程序控制时,可以单微指令运行,方便指令和微指令调试;

  35. 调试(单指令) • 在虚拟机使用组合逻辑控制方式下,可以单指令运行以进行调试; • 各总线数据、串口数据、寄存器R0、PC、SP中数据可以从图中直接读出,点击运算器ALU可以详细查看运算器中每一个信号和寄存器的状态,点击内存将显示整个内存中各内存单元保存的数据;

  36. 调试(单微指令) • 在虚拟机使用微指令控制方式下,可以单微指令运行以进行调试; • 各总线数据、串口数据、寄存器R0、PC、SP中数据可以从图中直接读出,点击运算器ALU可以详细查看运算器中每一个信号和寄存器的状态,点击内存将显示整个内存中各内存单元保存的数据; • 点击微程序定序器AM2910可以查看微程序中所有控制信号和状态位;

  37. 保存文件 • 虚拟机所能识别的文件格式有.ASM(汇编)、.COD(16位机器码)、.LST(列表文件) • 列表文件只在汇编时才可能生成(可选,用户指定)。 • 建议文件保存在TVM文件夹根目录下。

  38. 打开文件 • 若打开.ASM汇编文件,虚拟机自动切换到ASEC编辑面板,在这里可以对汇编文件进行编辑; • 若打开.COD机器码文件,虚拟机同样将自动切换到ASEC编辑面板,同时将机器码自动转换为.ASM汇编文件显示以方便阅读。 • .LST文件是作为列表文件使用的,所以不能打开。

  39. 机器码传送 • 若当前打开的是.ASM汇编文件,请先点击文件菜单中的“汇编”将它转成.COD机器码;然后点击“传送”将机器码写入内存; • 若当前打开的是.COD文件,虚拟机直接将文件中的机器码写入内存; • 注意:只有文件的机器码写入内存才能执行,否则文件仅处于编辑状态。

  40. 中断向量设定

  41. 三级中断 • 虚拟机支持中断实验。 • 中断实验前请先设计好中断程序,建议用汇编扩展指令写。如程序中所设中断向量与虚拟机实际中断向量不符,请设定中断向量使两者一致; • 三级中断优先级逐次升高,3级最高,不能被屏蔽;1级最低,可以被高级的屏蔽。

  42. 版本、制作组、功能和使用说明 • 版本:TEC-2000 Virtual Machine 1.0 • 制作组: 程序设计:李振华 李秦霖 界面制作:袁瑞峰 • 功能和使用说明见PPT4、5、6,也可以运行虚拟机后点击按钮栏最后一个按钮。

  43. 微指令扩充界面

  44. 微指令扩充说明 • 微指令是控制器的核心部分,所以扩充之前请务必仔细设计,否则可能破坏虚拟机指令系统; • 按照上图所示格式进行微指令编码,各种编码在下拉列表中都显示出了它的功能,请仔细参照这些功能说明进行编码; • 可以查看已经编好的微指令,若确定无误,点击右下方“确定”按钮,若发现错误,点击“删除”按钮。

  45. 工作例程1:A命令 功能:简单的A命令程序,顺次输出字符0-9。 >A 2000H • 2000: MVRD R0,30 • 2002: MVRD R1,0A • 2004: OUT 80 • 2005: INC R0 • 2006: DEC R1 • 2007: JRNZ 2004 • 2008: RET

  46. 工作例程1:运行结果 • >G 2000 • 0123456789 //运行结果输出 • R0=003A R1=0000 R2=0000 R3=0000 SP=2780 PC=2000 R6=0000 R7=0000 R8=0000 • R9=0000 R10=0000 R11=0000 R12=0000 R13=0000 R14=2612 R15=0000 F=11000000

  47. 工作例程2:读入汇编程序 功能:汇编程序,与例程1功能相同,顺次输出字符 0-9。 • ORG 2000H • MVRD R0,0030H • MVRD R1,000AH • L:OUT 80H • INC R0 • DEC R1 • JRNZ L • RET • END

  48. 工作例程2:汇编程序码转机器码并送入内存 • 上述汇编.ASM文件的机器码:(16进制) • 0100 2009 0088 0000 • 3088 1000 0A86 8009 • 0008 1047 FC8F 00 • 点击“传送”按钮将上述机器码写入内存(2000H地址开始)。

  49. 工作例程2:运行结果 • >G 2000 • 0123456789 • R0=003A R1=0000 R2=0000 R3=0000 SP=2780 PC=2000 R6=0000 R7=0000 R8=0000 • R9=0000 R10=0000 R11=0000 R12=0000 R13=0000 R14=2612 R15=0000 F=11000000

  50. 工作例程3:中断实验 • 主程序不断输出字符0,此时可以点击三级中断按钮,若进入1级中断则不断输出1,进入2级中断则不断输出2,进入3级中断则不断输出3。进入i级中断处理时,只有键入对应数字键才能退出该级中断处理。 • 代码: • ORG 2000H • MVRD R1,0030H • MVRD R2,0031H • MVRD R3,0032H • MVRD R6,0033H • MVRD R7,00FFH

More Related