当前位置: 首页 > news >正文

指令系统(408)

一、拓展操作码指令格式

【2017 统考】某计算机按字节编址,指令字长固定且只有两种指令格式,其中三地址指令29条、二地址指令107条,每个地址字段6位,则指令字长至少应该是( A)

A、24位         B、26位        C、28位        D、32位

解析:

OP(5位)A1(6位)A2(6位)A3(6位)

三地址指令共29条,操作码\left \lceil log_{2}29 \right \rceil = 5位,留了32 - 29 = 3条操作码给二地址.

分别是 111101、111110、111111

此时的二地址位为3 * 2 ^ 6 = 192 > 107位,所以方案可行,所以指令字长为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位补码能表示的最小负数为 1 - 2^{15} 最大正数2^{15}

tips: n位补码能表示的最小负数  1- 2^{n-1}  ,最大正数2^{n-1}


2、基质寻址、大端存储

【2019统考】某计算机采用大端方式,按字节编址。某指令中操作数的机器数为1234 FF00H,该操作数采用基质寻址方式,形式地址(用补码表示)为FF12H,基址寄存器的内容为

F000 0000H, 则该操作数的LSB(最低有效字节)所在地址是(D)

A、F000 FF12H        B、F000 FF15H        C、EFFF FF12        D、EFFF FF15H

解析: 

大端存储:

FF12HFF13HFF14HFF15H
12H34HFFH00H

补码: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:

B​052H - 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 统考】某计算机按字节编址&#xff0c;指令字长固定且只有两种指令格式&#xff0c;其中三地址指令29条、二地址指令107条&#xff0c;每个地址字段6位&#xff0c;则指令字长至少应该是&#xff08; A&#xff09; A、24位 B、26位 …...

Pygame中Trivia游戏解析6-3

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

热释电矢量传感器设计

1 概述 使用4个热释电传感器组成一个2X2的矩阵。通过曲线的相位差、 峰峰值等特征量来计算相关信息。本文使用STM32单片机设计、制作了热释电传感器矩阵&#xff1b;使用C#.NET设计了上位机软件。为以上研究做了试验平台。 2 硬件电路设计 2.1 热释电传感器介绍 热释电红外…...

MySql学习笔记10——视图介绍

视图 概述 view view可以看作是一张“虚拟表”&#xff0c;&#xff08;但是他也是会作为文件存在的&#xff09; 当我们通过复杂的查询语句获取一张表的时候&#xff0c;可以将这张表作为一个视图&#xff0c;和创建一个新表不同&#xff0c;在视图上进行的DML操作会对数据…...

【探索Linux】—— 强大的命令行工具 P.7(进程 · 进程的概念)

阅读导航 前言一、冯诺依曼体系结构二、操作系统&#xff08;OS&#xff09;1. 概念 三、进程1. 进程的概念2. PCB&#xff08;Process Control Block&#xff09;3. 查看进程 四、fork函数1. 函数简介2. 调用方式3. 返回值4. 使用示例 五、进程的几种状态1. 状态简介2. 进程状…...

JAVA宝典----容器(理解记忆)

目录 一、Java Collections框架是什么&#xff1f; 二、什么是迭代器&#xff1f; 三、Iterator与ListIterator有什么区别&#xff1f; 四、ArrayList、Vector和LinkedList有什么区别&#xff1f; 五、HashMap、Hashtable、TreeMap和WeakHashMap有哪些区别&#xff1f; 六…...

JS中的扩展操作符...(点点点)

标题 前言概述拓展操作符&#xff08;Spread Operator&#xff09;赋值与扩展操作符的区别 剩余操作符&#xff08;Rest Operator&#xff09; 前言 大家应该都在代码中用过或者看到…方法&#xff0c;我每次用到这个方法的时候都会想到第一次见到这个方法一头雾水的样子&#…...

找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支持两种基本方式检索&#xff1b; 通过REST request uri 发送搜索参数 &#xff08;uri 检索参数&#xff09;&#xff1b;通过REST request body 来发送它们&#xff08;uri请求体&#xff09;&#xff1b; 1、信息检索 API&#xff1a; https://w…...

Nor flash 页写地址与数据大小的限制

厂商提供的flash手册如下 如果页写指令的地址不是256的整数倍&#xff0c;并且写入的数据量超过了当前地址所在页的边界&#xff0c;则超过的那些数据会重新写入当前页的首地址&#xff08;即256的整数倍地址&#xff09;&#xff0c;所以&#xff0c;在进行页写的时候&#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语言的特性&#xff1b;C在C的基础上提供了更多的语法和特性&#xff0c;C语言去除了一些C语言的不好的特性。C的设计目标是运行效率与开发效率的统一。 变化一&#xff1a;所有变量都可以在使用时定义 C中更强调语言的实用性&#xff0c;所有的变量…...

《热题101》动态规划篇

思路&#xff1a;需要一个二维数组dp来记录当前的公共子序列长度&#xff0c;如果当前的两个值等&#xff0c;则dp[i][j]dp[i-1][j-1]1,否则dp[i][j] max(dp[i-1][j],dp[i][j-1])。也就是说&#xff0c;当前的dp值是由左、上、左上的值决定的。获得dp数组之后&#xff0c;倒序…...

【综述+3D】基于NeRF的三维视觉2023年度进展报告(截止2023.06.10)

论文&#xff1a;2003.Representing Scenes as Neural Radiance Fields for View Synthesis 官方网站&#xff1a;https://www.matthewtancik.com/nerf 突破性后续改进&#xff1a; Instant Neural Graphics Primitives with a Multiresolution Hash Encoding | 展示官网&#…...

基于JavaScript粒子流动效果

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

【U盘】实现U盘清空并重置恢复存储

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

基于Hugo 搭建个人博客网站

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

Springboot + Sqlite实战(离线部署成功)

最近有个需求&#xff0c;是手机软件离线使用&#xff0c; 用的springboot mybatis-plus mysql&#xff0c;无法实现&#xff0c;于是考虑使用内嵌式轻量级的数据库SQLlite 引入依赖 <dependency><groupId>org.xerial</groupId><artifactId>sqlite-…...

【后量子密码】CRYSTALS-KYBER 算法(一):MLWE 问题与NTT(附源码分析)

一、前言 大多数基于数论的密码学,如Diffie-Hellman协议和RSA加密系统,依赖于大整数因子分解或特定群的离散对数等困难问题。然而,Shor 在1997年给出了对所有这些问题的高效量子算法,这将使得基于数论的密码系统在未来量子计算机时代变得不安全。相比之下,目前对于格密码…...

VTK——angleWidget的3D转换

文章目录 3D空间坐标转换例程心得 3D空间坐标转换 在冠状图、矢状面、横截面等创建的角度组件的三个端点坐标&#xff0c;不能直接用在3D视图中。这是因为2D切片的坐标是基于像素的&#xff0c;而3D空间的坐标可能是基于实际物理尺寸的。 解决方案是使用2D点的坐标、切片的物理…...

HDFS 集群动态节点管理

目录 一、动态扩容、节点上线 1.1 背景 1.2 扩容步骤 1.2.1 新机器基础环境准备 1.2.2 Hadoop 配置 1.2.3 手动启动 DataNode 进程 1.2.4 Web 页面查看情况 1.2.5 DataNode 负载均衡服务 二、动态缩容、节点下线 2.1 背景 2.2 缩容步骤 2.2.1 添加退役节点 …...

postman9.12.汉化版(附有下载链接)

想用英文版本的可以直接点击下载最新版本 这里直接付上9.12.2版本的下载链接&#xff0c;如果大家要下载别的版本&#xff0c;可以直接修改链接里面的版本号即可 &#xff0c;下面是汉化包下载 链接&#xff1a;https://pan.baidu.com/s/1izK3HfqlfXJdq6KIYeJ2zw?pwdpetk 提…...

mysql与msql2数据驱动

mysql基本使用 数据库操作&#xff08;DDL&#xff09; -- 数据考操作 -- 1.查询所有数据库 SHOW DATABASES;-- 2.选择数据库 USE learn_mysql;-- 3.当前正在使用的数据库 SELECT DATABASE();-- 4.创建数据库 CREATE DATABASE IF NOT EXISTS learn_mysql;-- 5.删除数据库 DRO…...

解决微信小程序回调地狱问题

一、背景 小程序开发经常遇到根据网络请求结果&#xff0c;然后继续 处理下一步业务操作&#xff0c;代码如下&#xff1a; //1第一个请求 wx.request({url:"https://example.com/api/",data:data,success:function(res){//2第二个请求 wx.request({url:"http…...

cron介绍

cron表达式在线生成 在使用定时调度任务的时候&#xff0c;我们最常用的&#xff0c;就是cron表达式了。通过cron表达式来指定任务在某个时间点或者周期性的执行。 cron表达式的组成 cron表达式是一个字符串&#xff0c;由6到7个字段组成&#xff0c;用空格分隔。其中前6个字…...

mkp勒索病毒的介绍和防范,勒索病毒解密,数据恢复

mkp勒索病毒是一种新兴的电脑病毒&#xff0c;它会对感染的电脑进行加密&#xff0c;并要求用户支付一定的赎金才能解锁。这种病毒已经引起了全球范围内的关注&#xff0c;因为它不仅具有高危害性&#xff0c;而且还有很强的传播能力。本文将对mkp勒索病毒进行详细介绍&#xf…...

【面试精品】关于面试会遇到的Apache相关的面试题

1. Apache HTTP Server 基于什么协议提供网页浏览服务&#xff1f; 答&#xff1a;基于标准的http网络协议提供网页浏览服务。 2. 简述编译安装httpd软件包的基本过程&#xff1f; 答&#xff1a;解包&#xff0c;配置&#xff0c;编译&#xff0c;安装。 3. 编译安装httpd软…...

python对文件转md5,用于文件重复过滤

直接上代码 import hashlibdef calculate_md5(file_path):# 创建 MD5 哈希对象md5_hash hashlib.md5()# 打开文件并逐块读取&#xff0c;更新哈希值with open(file_path, rb) as file:while True:data file.read(8192) # 逐块读取文件&#xff0c;每块大小为 8192 字节if n…...

mac苹果电脑删除顽固残留软件图标

核心&#xff1a;删除“启动台”数据库里对应app的信息 1、打开访达&#xff08;Finder&#xff09;&#xff0c;点击最顶部菜单栏的【前往》前往文件夹】&#xff0c;接着输入【/private/var/folders】 2、在弹出的访达&#xff08;Finder&#xff09;窗口搜索栏输入【com.ap…...

【jsvue】联合gtp仿写一个简单的vue框架,以此深度学习JavaScript

用 gtp 学习 Vue 生命周期的原理 lifecycle.js function Vue(options) {// 将选项保存到实例的 $options 属性中this.$options options;// 若存在 beforeCreate 钩子函数&#xff0c;则调用之if (typeof options.beforeCreate function) {options.beforeCreate.call(this);…...