Vcomputer简介
1.Vcompter存储程序式计算机虚拟机软件简介
Vcompter存储程序式计算机虚拟机软件的文件名为comp_alpha(一般要先安装java运行环境,然后双击该软件即可运行),该软件是桂林电子科技大学“计算机科学导论”课程组开发的一个公共教学辅助软件,是2013年高等教育出版社出版的《计算机科学导论:思想与方法(第2版)》的配套软件。该软件由课程实验老师提供,使用该软件可以加深同学们对存储程序式计算机(冯·诺依曼计算机)的理解。该软件的主界面如下图所示。
2.Vcomputer机器的结构和指令
Vcomputer共有256个主存单元(分别用十六进制00~FF表示),6个通用寄存器(0~5),1个程序计数器和1个指令寄存器。
机器的指令共有9条,每条指令的长度均为2个字节(用十六进制表示共4位)。指令的第1个十六进制数字为操作码;指令的后3个十六进制数字为操作数,如附表B-1所示:
附表B-1 VComputer机器的指令集
|
操作码 |
操作数 |
描 述 |
|
1 |
RXY |
将主存XY单元中的数取出,存入寄存器R中。如1543,将主存43单元中的数取出,存入寄存器5中 |
|
2 |
RXY |
将数XY存入寄存器R中。如2543,将43(十六进制数)存入寄存器5中 |
|
3 |
RXY |
将寄存器R中的数取出,存入内存地址为XY的单元中 |
|
4 |
0RS |
将寄存器R中的数存入寄存器S中 |
|
5 |
RST |
将寄存器S与寄存器T中用补码表示的数相加,结果存入寄存器R中 |
|
6 |
R0X |
将寄存器R中的数左移X位(先将R中的十六进制数转换为二进制数,再左移X位),移位后,用0填充腾空的位 |
|
7 |
R00 |
将寄存器R中的数按位取反。如7100,将寄存器1中的数按位取反,将结果存入寄存器1中 |
|
8 |
RXY |
若寄存器R与寄存器0中的值相同,则将数据XY(转移地址)存入程序计数器;否则,程序按原来的顺序继续执行 |
|
9 |
000 |
停机,9000 |
3.Vcomputer机器上的汇编指令集
Vcomputer机器的汇编指令共9条,与其机器指令一一对应,如附表B-2所示:
附表B-2 Vcomputer机器的汇编指令与机器指令对照表
|
操作码 |
操作数 |
汇编指令 |
描 述 |
|
1 |
RXY |
Load R,[XY] |
[R]:=[XY] |
|
2 |
RXY |
Load R,XY |
[R]:=XY |
|
3 |
RXY |
Store R,[XY] |
[XY]:=[R] |
|
4 |
0RS |
Mov R,S |
[S]:=[R] |
|
5 |
RST |
Add R,S,T |
[R]:=[S]+[T] |
|
6 |
R0X |
Shl R,X |
[R]:=[R]左移X位,移位后,用0填充腾空的位 |
|
7 |
R00 |
Not R |
[R]:=[R]中的值按位取反 |
|
8 |
RXY |
Jmp R,XY |
程序计数器[PC]:=XY,IF [R]=[R0];else [PC]:=[PC]+2 |
|
9 |
000 |
Halt |
停机 |
4.汇编程序编写过程中的注意事项
汇编程序编写过程中有以下注意事项:
(1)注释
汇编程序可以包含注释,注释含一行中从分号起到该行结束的所有符号。
(2)白空格
汇编程序文本中的白空格包括空格符(SPACE 键),制表符(TAB 键),换行符(ENTER键)。
(3)语句标号
汇编语句可以有标号,标号只能以字母开头,后面只能跟字母,数字,下划线。标号后面必须跟冒号,标号与冒号之间不能有白空格。例如,“label :”这样的标号定义不符合规定。标号后面的冒号与操作码之间可以有多个白空格。
(4)分隔符
操作码与第一个操作数之间至少包含一个白空格。操作数之间通过逗号分隔,操作数与逗号,逗号与操作数之间可以有多个白空格。
(5)数值
数值全部用十六进制表示。
(6)字母大小写
VComputer机器的汇编语句不区分字母的大小写。
5.机器指令(十六进制代码)编写过程中的注意事项
(1)在机器代码(十六进制代码)文件的编写过程中,注意,一行只能写1个指令,共4位(16进制数);
(2)在机器代码(十六进制代码)文件中,1个指令编写好后,换行写另一个指令。
6.存储程序式计算机模拟平台的功能
本平台的设计基于Vcomputer的指令,并有如下功能:
(1)能够对汇编程序进行编辑、保存或打开新的文件(TXT文件);
(2)能够对机器指令按十六进制的形式进行编辑、保存或打开新的文件(TXT文件);
(3)能够将汇编程序转化为十六进制的机器代码;
(4)能够将十六进制的机器代码转化为汇编程序;
(5)能够将机器代码程序装载到物理内存;
(6)能够模拟程序在机器中的执行过程;
(7)可以模拟程序在机器中单步运行过程;
(8)可以对中央处理器进行初始化操作(即对CPU中的各类寄存器置零);
(9)任何时候都可以直接修改物理内存的内容;
(10)任何时候都可以直接修改程序计数器(PC)中的值(单步执行(一步完成)时,首先,根据程序计数器中修改后的地址,将相应的机器指令取出,存入指令寄存器中;其次,执行存入指令寄存器中的新指令;最后,将程序计算器的值+2);
(11)指令寄存器中的值不能修改(初始值为空)。
7.计算机模拟平台的注意事项
若无法正常打开或保存文件,请按以下方式设置IE:工具->Internat选项->安全->自定义级别->对没有标记为安全的ActiveX控件进行初始化和脚本运行->启用->确定。
Vcomputer简介的更多相关文章
- ASP.NET Core 1.1 简介
ASP.NET Core 1.1 于2016年11月16日发布.这个版本包括许多伟大的新功能以及许多错误修复和一般的增强.这个版本包含了多个新的中间件组件.针对Windows的WebListener服 ...
- MVVM模式和在WPF中的实现(一)MVVM模式简介
MVVM模式解析和在WPF中的实现(一) MVVM模式简介 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在 ...
- Cassandra简介
在前面的一篇文章<图形数据库Neo4J简介>中,我们介绍了一种非常流行的图形数据库Neo4J的使用方法.而在本文中,我们将对另外一种类型的NoSQL数据库——Cassandra进行简单地介 ...
- REST简介
一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式.”但是在要求详细讲述它所提出的各个约束,以及如何开始搭建REST服务时,却很少有人能够清晰地说出它到底是什么,需要遵守什么样的准则. ...
- Microservice架构模式简介
在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书<Building Microservices>.该书描述了如何按照Mic ...
- const,static,extern 简介
const,static,extern 简介 一.const与宏的区别: const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量. 执行时刻:宏是预编 ...
- HTTPS简介
一.简单总结 1.HTTPS概念总结 HTTPS 就是对HTTP进行了TLS或SSL加密. 应用层的HTTP协议通过传输层的TCP协议来传输,HTTPS 在 HTTP和 TCP中间加了一层TLS/SS ...
- 【Machine Learning】机器学习及其基础概念简介
机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...
- Cesium简介以及离线部署运行
Cesium简介 cesium是国外一个基于JavaScript编写的使用WebGL的地图引擎,一款开源3DGIS的js库.cesium支持3D,2D,2.5D形式的地图展示,可以自行绘制图形,高亮区 ...
随机推荐
- java jackson 忽略不存在的属性字段 和 按照属性名转json
@JsonAutoDetect(fieldVisibility = Visibility.ANY, getterVisibility = Visibility.NONE, isGetterVisibi ...
- 【SAP HANA】新建账户和数据库(2)
开启HANA Studio,进入到User和Role的目录,这两个地方是创建账号和权限的. 新建用户 输入用户名和密码即可. 注意,如果系统里有同名的Catalog(数据库)存在的话,会报错,因为默认 ...
- 使用ESMap的地图平台开发三维地图
本文简单的介绍使用ESmap的SDK开发(DIY自己地图的)一个地图的过程.若有不足,欢迎指正. 一.创建地图 只需四步,从无到有,在浏览器中创建一个自己的三维地图,炫酷到爆! 第一步:引入ESM ...
- 【JVM虚拟机】(8)--深入理解Class中--方法、属性表集合
#[JVM虚拟机](8)--深入理解Class中--方法.属性表集合 之前有关class文件已经写了两篇博客: 1.[JVM虚拟机](5)---深入理解JVM-Class中常量池 2.[JVM虚拟机] ...
- java代码之美(11)---java代码的优化
java代码的优化 随着自己做开发时间的增长,越来越理解雷布斯说的: 敲代码要像写诗一样美.也能理解有一次面试官问我你对代码有洁癖吗? 一段好的代码会让人看就像诗一样,也像一个干净房间会让人看去很舒服 ...
- Python基础面试,看这篇文章画重点吧,Python面试题No1
为什么有这个系列的文章 一直想写一些更加基础的文章,但是总是想不到好的点子,最近到了就业季,一大堆学生面临就业了,正好,从Python的面试题出发,分析和解答一些常见的面试题,并且总结一些文字. 每一 ...
- 使用Ninject的一般步骤
以下为DI控制反转个人理解烦请各位大牛指教~ 编写程序时我们应当遵循抵耦合高内聚的原则(各个功能模块互不依赖). 我们可以利用面向对象里面接口的特性来进行DI控制反转,让功能模块全部依赖接口,而不依赖 ...
- vue项目中vux的使用
vux VUX 是基于 WeUI 和 Vue.js 的 移动端 UI 组件库,提供丰富的组件满足移动端(微信)页面常用业务需求. 在vue-cli中使用步骤如下: 1.安装: npm i vux -S ...
- Odoo 12 开发手册指南(八)—— 业务逻辑 – 业务流程的支持
在前面的文章中,我们学习了模型层.如何创建应用数据结构以及如何使用 ORM API 来存储查看数据.本文中我们将利用前面所学的模型和记录集知识实现应用中常用的业务逻辑模式. 本文的主要内容有: 以文件 ...
- openlayers4 入门开发系列之图层控制(附源码下载)
前言 openlayers4 官网的 api 文档介绍地址 openlayers4 api,里面详细的介绍 openlayers4 各个类的介绍,还有就是在线例子:openlayers4 官网在线例子 ...