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简介的更多相关文章

  1. ASP.NET Core 1.1 简介

    ASP.NET Core 1.1 于2016年11月16日发布.这个版本包括许多伟大的新功能以及许多错误修复和一般的增强.这个版本包含了多个新的中间件组件.针对Windows的WebListener服 ...

  2. MVVM模式和在WPF中的实现(一)MVVM模式简介

    MVVM模式解析和在WPF中的实现(一) MVVM模式简介 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在 ...

  3. Cassandra简介

    在前面的一篇文章<图形数据库Neo4J简介>中,我们介绍了一种非常流行的图形数据库Neo4J的使用方法.而在本文中,我们将对另外一种类型的NoSQL数据库——Cassandra进行简单地介 ...

  4. REST简介

    一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式.”但是在要求详细讲述它所提出的各个约束,以及如何开始搭建REST服务时,却很少有人能够清晰地说出它到底是什么,需要遵守什么样的准则. ...

  5. Microservice架构模式简介

    在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书<Building Microservices>.该书描述了如何按照Mic ...

  6. const,static,extern 简介

    const,static,extern 简介 一.const与宏的区别: const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量. 执行时刻:宏是预编 ...

  7. HTTPS简介

    一.简单总结 1.HTTPS概念总结 HTTPS 就是对HTTP进行了TLS或SSL加密. 应用层的HTTP协议通过传输层的TCP协议来传输,HTTPS 在 HTTP和 TCP中间加了一层TLS/SS ...

  8. 【Machine Learning】机器学习及其基础概念简介

    机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...

  9. Cesium简介以及离线部署运行

    Cesium简介 cesium是国外一个基于JavaScript编写的使用WebGL的地图引擎,一款开源3DGIS的js库.cesium支持3D,2D,2.5D形式的地图展示,可以自行绘制图形,高亮区 ...

随机推荐

  1. CISP-PTE注册信息安全专业人员渗透测试工程师知识体系大纲

    CISP-PTE注册信息安全专业人员渗透测试工程师知识体系大纲 都是图.. 不足之处,欢迎补充

  2. python 安装cv2

    问题描述:import cv2 报错提示未安装此包. 解决措施: 1.cmd框中输入pip install cv2,若安装成功,则恭喜你一次性成功,如提示"无法找到与你当前版本的匹配&quo ...

  3. 干货,不小心执行了rm -f,除了跑路,如何恢复?

    前言 每当我们在生产环境服务器上执行rm命令时,总是提心吊胆的,因为一不小心执行了误删,然后就要准备跑路了,毕竟人不是机器,更何况机器也有bug,呵呵. 那么如果真的删除了不该删除的文件,比如数据库. ...

  4. Linux 系统目录结构说明

    在刚开始接触Linux系统时,对其目录结构迷茫的很,尤其是很少使用或者刚开始接触Linux系统的同学:我也是最近项目需要开始上手,所以查看了些资料,特整理出来供大家互相学习: 1.目录结构总揽 以下是 ...

  5. javascript正则表达式学习(二)--位置匹配

    文章首发于sau交流学习社区 一.前言 正则表达式是匹配模式,要么是匹配字符,要么匹配位置. 其实在开发中很少用到匹配位置,本篇文章主要包含: 二.什么是位置 位置:相邻字符之间的位置. 三.如何匹配 ...

  6. Python中os和sys模块中常用的方法

    os模块 os模块:该模块提供了一些方便使用操作系统相关功能的函数 os.remove() 删除文件 os.rename() 重命名文件 os.walk() 文件目录遍历器 os.chdir() 改变 ...

  7. GC参考手册 —— GC 调优(基础篇)

    GC调优(Tuning Garbage Collection)和其他性能调优是同样的原理.初学者可能会被 200 多个 GC参数弄得一头雾水, 然后随便调整几个来试试结果,又或者修改几行代码来测试.其 ...

  8. Windows下安装tesserocr

    很难受,由于这两天重装了系统,又得重新配置环境了,而我在安装tesserocr的时候踩了一些坑,于是想写出来分享一下. 一.安装tesseract 要安装tesserocr,首先要下载tesserac ...

  9. FreeSql v0.5.x 功能介绍

    弱类型 之前在操作实体时,必须传统泛型参数,现在可以实现弱类型实体的操作.以 Repository 为例: var repos = fsql.GetGuidRepository<object&g ...

  10. 基于 HTTP 请求拦截,快速解决跨域和代理 Mock

    近几年,随着 Web 开发逐渐成熟,前后端分离的架构设计越来越被众多开发者认可,使得前端和后端可以专注各自的职能,降低沟通成本,提高开发效率. 在前后端分离的开发模式下,前端和后端工程师得以并行工作. ...