指令系统(408)
一、拓展操作码指令格式
【2017 统考】某计算机按字节编址,指令字长固定且只有两种指令格式,其中三地址指令29条、二地址指令107条,每个地址字段6位,则指令字长至少应该是( A)
A、24位 B、26位 C、28位 D、32位
解析:
OP(5位) | A1(6位) | A2(6位) | A3(6位) |
三地址指令共29条,操作码位,留了32 - 29 = 3条操作码给二地址.
分别是 111101、111110、111111
此时的二地址位为位,所以方案可行,所以指令字长为5 + 3 * 6 = 23位,因为按字节编址,所以取8的整数倍等于24位。
tips:三地址的位数决定着操作码最短位数
二、指令寻址方式
1、偏移量
【2014统考】某计算机有16个通用寄存器,采用32位定长指令字,操作码字段(含寻址方式位)为8位,Store指令的源操作码和目的操作数分别采用寄存器直接寻址和基质寻址方式。若基质寄存器可使用任一通用寄存器,且偏移量用补码表示,则Store指令中偏移量的取值范围是(A)
A、-32768~+32767 B、-32767~+32768
C、-65536~+65535 D、-65535~+65536
解析:
(本题考查数据表示和指令系统)
共32位
操作码:8位
寄存器直接寻址:4位
寄存器基址寻址:4位 + x位(偏移量) 8 + 4 + 4 + x =32 解得x = 16 位
16位补码能表示的最小负数为 最大正数
tips: n位补码能表示的最小负数 ,最大正数
2、基质寻址、大端存储
【2019统考】某计算机采用大端方式,按字节编址。某指令中操作数的机器数为1234 FF00H,该操作数采用基质寻址方式,形式地址(用补码表示)为FF12H,基址寄存器的内容为
F000 0000H, 则该操作数的LSB(最低有效字节)所在地址是(D)
A、F000 FF12H B、F000 FF15H C、EFFF FF12 D、EFFF FF15H
解析:
大端存储:
FF12H | FF13H | FF14H | FF15H |
12H | 34H | FFH | 00H |
补码:FF12H 原码:00EEH
基址寻址: EA = (R) + A
**形式地址R是无符号数,但偏移量(R)是有符号数,原数是负的,所以这里要减去原码**
F000 0000H - 00EEH = F000 0000H + [-0000 00EEH]补 = F000 0000 + FFFF FF12H
=EFFF FF12H,所以,所在的地址为EFFF FF15H
tips:大端存储是顺着,小端则是逆着存
3、地址格式
【2020统考】某计算机采用16位定长指令字格式,操作码位数和寻址方式位数固定,指令系统有48条指令,支持直接、间接、立即、相对4种寻址方式。在单地址指令中,直接寻址方式的可寻址范围是(A)
A、0~255 B、0~1023 C、-128~127 D、-512 ~ 511
解析:
*寻址方式位 2位
*操作码位数固定,所以48条指令需要6位操作码
地址位 16 - 6 - 2 = 8 位 地址是无符号数,大于0排除C、D,8位二进制数所能表示的最大正数= 2^8 - 1 = 255
4、
(1)操作码 4位 ,共16条指令。(操作码位数决定了指令条数)
(Ms/Md,这是Ms或Md)操作数位寻址方式位:3位,所以Rs/Rd位:3位,共2^3 = 8 个寄存器。
MAR : 字长16位 = 2B,128KB / 2B = 2^16,所以16位 (MAR:地址范围,主存的容量决定了地址的范围)
MDR = 机器字长16位(MDR:数据大小)
(2)寄存器字长16位,PC的地址范围0 ~ 2^16 - 1,Rn可表示的相对偏移量(有符号数)为-2^15 ~ 2^15 - 1,而主存地址空间为2^16,所以转移指令的目标地址范围为0000H ~ FFFFH(0~2^16 -1 )
(3)
寄存器间接寻址:Ms = 001 寄存器间接、自增: Md = 010
机器码:0010 001 100 010 101B (通过题目寻址方式,寄存器号码得出机器码)
执行结果:R5发生变化,先执行加法操作,5678H + 1234H = 68ACH,后进行自增。
执行后:R5、5678H的存储单元发生变化
R5中的内容:5678H 变为 5679H 【(R5) + 1 —— R5:带括号的是地址指向的地址的内容5678H,不带括号的是该地址】
存储单元5678H:变为该结果68ACH
1)按字节编址,8位补码能表示的最大负数为1-2^7,最多跳转2^7 - 1条指令。
2)
200CH + 2 + 2 * (- 29) = 0001 1111 1110 0100(A—B = A + B补)
200CH + 2 = 0010 0000 0000 1110
3)C = 1 , Z = 1 , N = 1
4)1:指令寄存器,存放指令
2:移位寄存器,左移一位
3:加法器,与PC + 2相加(上面的加法器是用来PC + 2)
1)16位,2^20字节;指令寄存器16位,MAR:20位,MDR:8位
2)R:0000~1111,2^4种,I:2^6 - 1种,J:2^6 - 1种。通用寄存器4个(前6位全0的编码已被R型格式占用,所以减少一种)
3)01B2H = 0000 0001 1011 0010B 带符号数减法,将1号寄存器中的内容减2号寄存器中的内容得到的结果放到3号寄存器中。R[3] <—— R[1] - R[2]。
01B2H:
B052H - 0008H = B04AH
01B3H:
B052H * 0008H = 8290H,溢出(8290 < B052)
4)符号拓展,imm为带符号整数,可以向前或向后偏移,所以需要符号拓展
5)J型
1)CISC,因为指令种类多,指令字长不定
2)0040107F - 00401020 + 1= 60H = 6 * 16 + 0 = 96B
3)CF = 1,i = 0000 0000H n - 1 = FFFF FFFFH,0减FFFF FFFF就等于0000 0001H,此时进位C = 0,借位CF = 1
4)不能,浮点数左移和定点数的左移不同,浮点数左移包含了阶码的左移,最后达不到乘2的结果。
1)10次,call f1,第十六行
2)条件转移指令:第12行;第16行,第20行,第30行都一定会跳转执行
3)第17行:第16行占了5个字节(E8 D6 FF FF FF),0040 102AH
call的偏移量:00401025 - 00401000 = 25H,向后偏移,FFFF FFD6H
小端方式
4)发生了溢出,超过了int所能表示的最大范围,把int都改成longlong。
5)乘积的高33位为非全0或非全1,则OF = 1.编译器应在imul指令后加一条"溢出自陷指令"。当OF=1时,调用"溢出异常处理"
1)因为页大小4KB,虚拟地址的高20位是虚拟页号,第一行和第三十行的高20位相同,所以在同一页。
2)64 / 4 = 16组,则组号4位,主存块64B,块内地址6位,头22位是tag位,中间4位是组号,末6位是块内地址。
3)0040 1025H,中间4位0000,低6位 10 0101,组号为0
相关文章:

指令系统(408)
一、拓展操作码指令格式 【2017 统考】某计算机按字节编址,指令字长固定且只有两种指令格式,其中三地址指令29条、二地址指令107条,每个地址字段6位,则指令字长至少应该是( A) A、24位 B、26位 …...

Pygame中Trivia游戏解析6-3
3.3 Trivia类的show_question()函数 Trivia类的show_question()函数的作用是显示题目。主要包括显示题目框架、显示题目内容和显示题目选项等三部分。 3.3.1 显示题目的框架 在show_question()函数中,通过以下代码显示题目的框架。 print_text(font1, 210, 5, &q…...

热释电矢量传感器设计
1 概述 使用4个热释电传感器组成一个2X2的矩阵。通过曲线的相位差、 峰峰值等特征量来计算相关信息。本文使用STM32单片机设计、制作了热释电传感器矩阵;使用C#.NET设计了上位机软件。为以上研究做了试验平台。 2 硬件电路设计 2.1 热释电传感器介绍 热释电红外…...
MySql学习笔记10——视图介绍
视图 概述 view view可以看作是一张“虚拟表”,(但是他也是会作为文件存在的) 当我们通过复杂的查询语句获取一张表的时候,可以将这张表作为一个视图,和创建一个新表不同,在视图上进行的DML操作会对数据…...

【探索Linux】—— 强大的命令行工具 P.7(进程 · 进程的概念)
阅读导航 前言一、冯诺依曼体系结构二、操作系统(OS)1. 概念 三、进程1. 进程的概念2. PCB(Process Control Block)3. 查看进程 四、fork函数1. 函数简介2. 调用方式3. 返回值4. 使用示例 五、进程的几种状态1. 状态简介2. 进程状…...

JAVA宝典----容器(理解记忆)
目录 一、Java Collections框架是什么? 二、什么是迭代器? 三、Iterator与ListIterator有什么区别? 四、ArrayList、Vector和LinkedList有什么区别? 五、HashMap、Hashtable、TreeMap和WeakHashMap有哪些区别? 六…...
JS中的扩展操作符...(点点点)
标题 前言概述拓展操作符(Spread Operator)赋值与扩展操作符的区别 剩余操作符(Rest Operator) 前言 大家应该都在代码中用过或者看到…方法,我每次用到这个方法的时候都会想到第一次见到这个方法一头雾水的样子&#…...

找redis大key工具rdb_bigkeys
github官网 https://github.com/weiyanwei412/rdb_bigkeys 在centos下安装go [roothadoop102 rdb_bigkeys-master]# wget https://dl.google.com/go/go1.13.5.linux-amd64.tar.gz [roothadoop102 rdb_bigkeys-master]# tar -zxf go1.13.5.linux-amd64.tar.gz -C /usr/local将g…...

ElasticSearch进阶
一、 search检索文档 ES支持两种基本方式检索; 通过REST request uri 发送搜索参数 (uri 检索参数);通过REST request body 来发送它们(uri请求体); 1、信息检索 API: https://w…...

Nor flash 页写地址与数据大小的限制
厂商提供的flash手册如下 如果页写指令的地址不是256的整数倍,并且写入的数据量超过了当前地址所在页的边界,则超过的那些数据会重新写入当前页的首地址(即256的整数倍地址),所以,在进行页写的时候&#x…...

python 深度学习 解决遇到的报错问题4
目录 一、DLL load failed while importing _imaging: 找不到指定的模块 二、Cartopy安装失败 三、simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 四、raise IndexError("single positional indexer is out-of-bounds") 五、T…...

C到C++的升级
C和C的关系 C继承了所有C语言的特性;C在C的基础上提供了更多的语法和特性,C语言去除了一些C语言的不好的特性。C的设计目标是运行效率与开发效率的统一。 变化一:所有变量都可以在使用时定义 C中更强调语言的实用性,所有的变量…...

《热题101》动态规划篇
思路:需要一个二维数组dp来记录当前的公共子序列长度,如果当前的两个值等,则dp[i][j]dp[i-1][j-1]1,否则dp[i][j] max(dp[i-1][j],dp[i][j-1])。也就是说,当前的dp值是由左、上、左上的值决定的。获得dp数组之后,倒序…...

【综述+3D】基于NeRF的三维视觉2023年度进展报告(截止2023.06.10)
论文:2003.Representing Scenes as Neural Radiance Fields for View Synthesis 官方网站:https://www.matthewtancik.com/nerf 突破性后续改进: Instant Neural Graphics Primitives with a Multiresolution Hash Encoding | 展示官网&#…...

基于JavaScript粒子流动效果
这是一个HTML文件,主要包含了一些CSS样式和JavaScript代码,用于创建一个动画效果。 在CSS部分,定义了一些基本的样式,包括页面的背景颜色、位置、大小等。特别的,定义了两种球形元素(.ball_A 和 .ball_B&am…...

【U盘】实现U盘清空并重置恢复存储
打开电脑,将U盘插入USB端口,点按快捷键【WinR】,弹出运行对话框,输入命令 diskpart 进入命令提示符窗口 输入指令 list disk 查看现在的硬盘 这里显示的U盘编号是“1”,因此输入select disk “1”,就是选择…...

基于Hugo 搭建个人博客网站
目录 1.环境搭建 2.生成博客 3.设置主题 4.将博客部署到github上 1.环境搭建 1)安装Homebrew brew是一个在 macOS 操作系统上用于管理软件包的包管理器。类似于centos下的yum或者ubuntu下的apt,它允许用户通过命令行安装、更新和管理各种软件工具、…...

Springboot + Sqlite实战(离线部署成功)
最近有个需求,是手机软件离线使用, 用的springboot mybatis-plus mysql,无法实现,于是考虑使用内嵌式轻量级的数据库SQLlite 引入依赖 <dependency><groupId>org.xerial</groupId><artifactId>sqlite-…...
【后量子密码】CRYSTALS-KYBER 算法(一):MLWE 问题与NTT(附源码分析)
一、前言 大多数基于数论的密码学,如Diffie-Hellman协议和RSA加密系统,依赖于大整数因子分解或特定群的离散对数等困难问题。然而,Shor 在1997年给出了对所有这些问题的高效量子算法,这将使得基于数论的密码系统在未来量子计算机时代变得不安全。相比之下,目前对于格密码…...
VTK——angleWidget的3D转换
文章目录 3D空间坐标转换例程心得 3D空间坐标转换 在冠状图、矢状面、横截面等创建的角度组件的三个端点坐标,不能直接用在3D视图中。这是因为2D切片的坐标是基于像素的,而3D空间的坐标可能是基于实际物理尺寸的。 解决方案是使用2D点的坐标、切片的物理…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...

7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...

Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...

无人机侦测与反制技术的进展与应用
国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...