【上海大学计算机组成原理实验报告】五、机器语言程序实验

一、实验目的

  1. 理解计算机执行程序的实际过程。

  2. 学习编制机器语言简单程序的方法。

二、实验原理

  1. 根据实验指导书的相关内容,指令的形式化表示是指采用一种规范化的符号系统,以更清晰、精确地描述和表示指令的逻辑功能和操作步骤。

  2. 汇编是一种编程语言,用于将人可读的符号化指令(汇编指令)翻译成计算机可执行的机器指令。汇编过程依赖于一张符号对应表,将汇编指令映射到相应的机器指令的二进制数形式。这个过程使得编程更容易理解和进行逻辑思维。

三、实验内容

实验任务一:编写并运行机器语言程序

R1中的数值左移n次送OUT,其中nR2中的数值。(指令码从10开始)

(1)实验步骤

  1. 注释仪器,打开电源,手不要远离电源开关,随时准备关闭电源,注意各数码管、发光管的稳定性,静待10秒,确信仪器稳定、无焦糊味。
  2. 设计汇编指令:

在这里插入图片描述

  1. 设置实验箱进入EM模式,ADR1022,依次设置DB

  2. 设置实验箱进入uPC模式。设置uPC=00PC=10;按NX三次,设R0=00,R1=01,R2=02,连续按下STEP键,观察实验结果。

  3. 记录实验结果。

(2)实验现象
在这里插入图片描述

OUTR1显示04R2显示00.

(3)实验结论

通过一系列正确的设计,我们成功地完成了“将R1中的数值左移n次送OUT”操作功能的实现。

实验任务二:编写并运行机器语言程序

完成R3=R0×R1,结果送OUT。(指令码从30开始)

(1)实验步骤

  1. 设计汇编指令:

在这里插入图片描述

  1. 按Reset键初始化系统,并设置实验箱进入EM模式。ADR303D,依次设置DB

  2. 设置实验箱进入uPC模式。设置uPC=00PC=30;按NX三次,设R0=10,R1=02,连续按下STEP键,观察实验结果。

  3. 记录实验结果,关闭实验箱电源。

(2)实验现象
在这里插入图片描述

OUTA显示40R2显示00.

(3)实验结论

通过一系列正确的设计,我们成功地完成了“R3=R0×R1后结果送OUT”操作功能的实现。

四、建议

  1. 在测试程序时,可以在每次执行下一步操作前事先确定理想情况下的结果,如实际操作与理想情况不符则当前操作出现了问题。

  2. 在程序实现之后,可以进一步考虑有没有可以优化的地方,比如能够通过改进循环来简化程序结构。

五、体会

通过此次实验,让我初步学会了如何编制机器语言的简单程序,也加深了我对计算机执行程序的实际过程的理解,巩固了理论知识,为进行下一次实验打下了扎实基础。

六、思考题

建立“中文汇编指令”需要哪些条件?

  1. 符号定义:确定每个中文符号对应的操作或指令。

  2. 操作码规范:设计规范的操作码来用于表示不同的指令。

  3. 指令格式:指令的格式应该简洁规范,易于理解和使用。

  4. 寄存器定义:定义寄存的中文名称,以明确其用途。

  5. 寻址方式:确定如何用中文确定寻址方式,以便指明指令的操作对象。

  6. 工具支持:需要存在相应的软件,能将中文汇编指令翻译成机器可执行的指令。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/12964.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MM模块学习二 (供应商,物料后台相关配置)

公司代码配置 新建条目(只是建了一个名字出来,后面很多表都是没有得) 接下来定义公司代码: 公司代码复制完成(后续修改交给财务顾问去做) 复制工厂: 复制工厂完成: 修改复制过去的工…

Linux服务器lvm磁盘管理fdisk和df磁盘大小不同修改

服务器端由于硬盘是通过VCenter原来100G磁盘复制的虚拟机,复制完成后,原来100G的磁盘通过选择 磁盘重新复制出150G的磁盘,开机后发现还是原来的100G的磁盘,通过fdisk -l 查看有个sdb是150G, 但是已经划转的lvm盘只有100G, 通过df查看也是原来的100G: pvs查看pv里也是10…

用c++实现快速排序、最大子段和问题

6.2.2 快速排序 【问题】快速排序(quick sort)的分治策略如下(图6-5)。 (1)划分:(选定一个记录作为轴值,以轴值为基准将整个序列划分为两个子序列,轴值的位置在划分的过程中确定,并且左侧子序列的所有记录…

26 分钟惊讶世界,GPT-4o 引领未来人机交互

前言 原文链接:OpenAI最新模型——GPT-4o,实时语音视频交互,未来人机交互近在眼前 - Kaiho小站 北京时间 5 月 14 日凌晨,OpenAI 发布新一代模型——GPT-4o,仅在 ChatGPT 面世 17 个月后,OpenAI 再次通过…

【EasyX】快速入门——静态图形篇

1.基本说明 EasyX 是针对 C 的图形库,可以帮助 C/C 初学者快速上手图形和游戏编程。 比如,可以基于 EasyX 图形库很快的用几何图形画一个房子,或者一辆移动的小车,可以编写俄罗斯方块、贪吃蛇、黑白棋等小游戏,可以练…

使用VMware或VirtualBox安装eNSP Pro并使用CRT连接设备

文章目录 使用Oracle Virtual Box安装eNSP Pro创建虚拟机配置网卡配置带外管理网络 使用VMware Workstation安装eNSP Pro转换文件格式及虚拟磁盘模式配置网卡创建虚拟机配置使用CRT连接管理设备 前一段时间是开放了eNSP Pro的账号权限,但是在写博客时,权…

27.哀家要长脑子了!

目录 1.316. 去除重复字母 - 力扣(LeetCode) 2. 1209. 删除字符串中的所有相邻重复项 II - 力扣(LeetCode 哎哟 烦死了 刚刚不小心退出又没保存 又要写一遍 烦死了 最近刷题不得劲啊 感觉这脑子没长一点 1.316. 去除重复字母 - 力扣&am…

(实测验证)【移远EC800M-CN 】GNSS功能打开和关闭关闭步骤验证

引言 本文章使用自研“超小体积TTL转4GGPS集成模块”进行实测验证; 一、打开GNSS功能 步骤一、通过 ATQGPSCFG 配置 GNSS 参数 (1)该命令用于查询和配置 GNSS 不同的设置,包括 NMEA 语句输出端口、NMEA 语句的输出类型等。 1.1…

NSSCTF | [SWPUCTF 2021 新生赛]easyupload2.0

先传一个普通的一句话木马试一试 GIF89a <?php eval($_POST[shell]);?> 可以看到回显&#xff0c;不允许上传php文件。 使用Burpsuite抓包只修改ContentType后发现也不能绕过&#xff0c;说明服务器使用了黑名单后缀限制&#xff0c;那么我们可以使用其他的后缀代替ph…

电路板维修【四】

【开关电源输出电压偏低不稳&#xff0c;用示波器立马锁定故障范围】&#xff1a;https://www.bilibili.com/video/BV1pf421D73K?vd_source3cc3c07b09206097d0d8b0aefdf07958 可以用示波器查看MOS的输出波形来查看其是否损坏&#xff1a; 电源芯片的供电电压来回跳变&#xf…

基于卷积神经网络CNN,使用二维卷积Conv2D实现MNIST数字识别的四种方法

前言 系列专栏&#xff1a;机器学习&#xff1a;高级应用与实践【项目实战100】【2024】✨︎ 在本专栏中不仅包含一些适合初学者的最新机器学习项目&#xff0c;每个项目都处理一组不同的问题&#xff0c;包括监督和无监督学习、分类、回归和聚类&#xff0c;而且涉及创建深度学…

ROS 2边学边练(48)-- 将URDF与robot_state_publisher一起使用

前言 本篇将完成一个行走的机器人&#xff0c;并以tf2消息的方式实时发布机器人状态&#xff0c;以便我们在Rviz中同步查看。 首先&#xff0c;我们创建描述机器人装配的URDF模型。接下来&#xff0c;我们编写一个节点&#xff0c;用于模拟运动并发布JointState和位姿变换。然后…

醉了,面个功能测试,还问我Python装饰器

Python 装饰器是个强大的工具&#xff0c;可帮你生成整洁、可重用和可维护的代码。某种意义上说&#xff0c;会不会用装饰器是区分新手和老鸟的重要标志。如果你不熟悉装饰器&#xff0c;你可以将它们视为将函数作为输入并在不改变其主要用途的情况下扩展其功能的函数。装饰器可…

dhcp(接口和全局地址池模式)

接口地址池和全局地址池 dhcp应用 1.全部开启dhcp功能 2.ar5 0口接口地址池 1口全局地址池 3.ar6和ar7配置&#xff0c;查看能否自动获取ip 左右不同两个网络&#xff0c;接口和全局地址池的区别 部分截图 ar6 ar7 ar5

(实测验证)【移远EC800M-CN 】TCP 透传

引言 本文章使用自研“超小体积TTL转4GGPS集成模块”进行实测验证&#xff1b; 1、配置移远EC800M-CN TCP 透传 串口助手发送&#xff1a; ATQIOPEN1,0,"TCP","36.137.226.30",39755,0,2 //配置服务器地址和端口号&#xff1b; 4G模组返回…

07-Fortran基础--Fortran指针(Pointer)的使用

07-Fortran基础--Fortran指针Pointer的使用 0 引言1 指针&#xff08;Poionter&#xff09;的有关内容1.1 一般类型指针1.2 数组指针1.3 派生类(type)指针1.4 函数指针 2 可运行code 0 引言 Fortran是一种广泛使用的编程语言&#xff0c;特别适合科学计算和数值分析。Fortran 9…

java代码混淆工具ProGuard混淆插件

java代码混淆工具ProGuard混淆插件 介绍 ProGuard是一个纯java编写的混淆工具&#xff0c;有客户端跟jar包两种使用方式。可以将程序打包为jar&#xff0c;然后用工具进行混淆&#xff0c;也可以在maven中导入ProGuard的插件&#xff0c;对代码进行混淆。 大家都知道 java代…

[ciscn 2022 东北赛区]math

1.题目 import gmpy2 from Crypto.Util.number import * from flag import flag assert flag.startswith(b"flag{") assert flag.endswith(b"}") messagebytes_to_long(flag) def keygen(nbit, dbit):if 2*dbit < nbit:while True:a1 getRandomNBitIn…

编辑器目录树的设计,一点也不简单

朋友们好&#xff0c;我是优秀的大鹏 今天花了很长时间思考一个网页文档编辑器&#xff0c;云端目录树要怎么设计 这个看似简单的需求&#xff0c;技术上和产品上的思考却非常复杂 下面以几种编辑器为例&#xff0c;讲一下各种编辑器在技术上和产品的思考 1、以Vscode为代表的本…

【神经网络与深度学习】Transformer原理

transformer ENCODER 输入部分 对拆分后的语句x [batch_size, seq_len]进行以下操作 Embedding 将离散的输入&#xff08;如单词索引或其他类别特征&#xff09;转换为稠密的实数向量&#xff0c;以便可以在神经网络中使用。位置编码 与RNN相比&#xff0c;RNN是一个字一个字…