计组复习笔记

news2024/12/23 15:06:56

计组笔记

汇编部分

  1. 通用寄存器(General Registers):

    • AX (Accumulator): 用于累加运算,也是乘法和除法的默认寄存器。
    • BX (Base Register): 可以用作一个基址寄存器,通常用于存放数据的基地址。
    • CX (Counter Register): 通常用于循环计数。
    • DX (Data Register): 用于 I/O 操作和一些乘法与除法的高位。
  2. 指针和索引寄存器(Pointer and Index Registers):

    • SI (Source Index): 用于源数据的地址偏移,通常在字符串操作中使用。
    • DI (Destination Index): 用于目标数据的地址偏移,通常在字符串操作中使用.
    • SP (Stack Pointer): 用于指向栈顶。
    • BP (Base Pointer): 用于指向栈底。
  3. 段寄存器(Segment Registers):

    • CS (Code Segment): 代码段寄存器,操作系统决定,不能作为目的操作数,只能作为源操作数。
    • DS (Data Segment): 数据段寄存器,只能接受寄存器赋值,不接受内存或立即数直接赋值。
    • ES (Extra Segment): 附加数据段寄存器。
    • SS (Stack Segment): 栈段寄存器。
  4. 标志寄存器(Flag Register):

    • FLAGS (Flags Register): 存储条件码和一些处理器状态标志,如零标志、进位标志等。

    程序员可见的寄存器:13个通用寄存器

常用汇编指令

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  1. MOV (Move):

    用于将数据从一个地方移动到另一个地方

    eMOV AX, 5    # 将立即数5加载到寄存器AX
    MOV BX, AX   # 将寄存器AX的值移动到寄存器BX
    MOV [DI], CX # 将寄存器CX的值存储到内存地址DI中
    ##注意易错
    MOV [AX], [BX] #不能两次访存
    MOV CS,AX #不能修改CS,CS由操作系统分配
    MOB DS,DATA #不能直接对段寄存器赋值,只能用寄存器赋值 如MOV AX,1000   MOV DS,AX
    
  2. ADD (Addition):

    用于将两个数相加。

    ADD AX, BX   #将寄存器AX和BX的值相加,结果存储在AX中
    ADD [SI], 10 # 将内存地址SI中的值与立即数10相加,结果存储回SI中
    
  3. SUB (Subtraction):

    用于将一个数减去另一个数。

    SUB AX, BX   ; 将寄存器AX减去BX的值,结果存储在AX中
    SUB [DI], 5  ; 将内存地址DI中的值减去立即数5,结果存储回DI中
    
  4. MUL(Multiply)

    相乘

    MOV AX, 10        #被乘数
    MOV BX, multiplier#乘法因子
    MUL BX            #AX = AX * BX 此时 AX 中存储了结果,高位在 DX 中
    
    mul AX,BX  #AX=AX*BX
    
  5. DIV(Divide)

    相除

    MOV AX, 10      #被除数
    MOV BX, divisor #除数
    DIV BX          #AX = AX / BX, DX = AX % BX
    
  6. CMP (Compare):

    用于比较两个数的大小,设置标志位以便后续的条件跳转指令。

    CMP AX,BX; 比较AX和BX的值,设置相应的标志位
    
  7. LOOP

    MOV CX , 10 #用cx作为循环计数器
    LOP:
    #待做操作
    LOOP LOP #cx--,若cx!=0,跳转到LOP
    
  8. JMP (Jump):

    用于无条件跳转到指定的地址。

    JMP Label    ; 无条件跳转到标签Label处
    
  9. JE, JNE, JG, JL (Jump if Equal, Jump if Not Equal, Jump if Greater, Jump if Less):

    用于根据先前的比较结果有条件地跳转到指定的地址。

    JE Label     ; 如果相等,则跳转到标签Label处
    JNE Label    ; 如果不相等,则跳转到标签Label处
    JG Label     ; 如果大于,则跳转到标签Label处
    JL Label     ; 如果小于,则跳转到标签Label处
    
    MOV AL, [variable]
    CMP AL, 5  ; 比较 AL 和 5
    JE equal_label  ; 如果相等,跳转到 equal_label
    ; 其他操作
    JMP end_label    ; 如果不相等,跳转到 end_label
    equal_label:; 相等时执行的操作
    end_label:; 其他操作
    
  10. INC, DEC (Increment, Decrement):

    用于增加或减少寄存器或内存中的值。

    INC AX         ; 将寄存器AX的值加1
    DEC [SI]       ; 将内存地址SI中的值减1
    
  11. 移位操作

    SHR LX,1 #逻辑右移一位,最高位补0(Shift Right)-->无符号数*2
    SHL LX,1 #逻辑左移一位,最低位补0(Shift Left)-->无符号数/2
    ROR LX,1 #循环右移一位,被移出的会重新出现在最高位(Rotate Right)
    ROL LX,1 #循环左移一位,被移出的会重新出现在最低位(Rotate Left)
    SAR LX,1 #算数右移一位,最高位用符号位填充(Shift Arithmetic Right)-->有符号数*2
    SAL LX,1 #算数左移一位,最低位用0位填充和SHL一致(Shift Arithmetic Left)-->有符号数/2
    
  12. OUT

    MOV DX, 0x80     #将端口地址加载到 DX 寄存器
    MOV AX, 0x42     #要发送的数据加载到 AX 寄存器
    OUT DX, AX       #将 AX 寄存器中的数据发送到端口 DX 只能使用两个寄存器作为端口
    
  13. CALL, RET (Call, Return):

    用于调用和返回子程序。

    CALL Subroutine ; 调用子程序
    RET             ; 返回
    

示例:

1.选择结构

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2.循环结构

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

必背大题

CPU与指令

比较组合逻辑控制和微程序控制的优缺点及应用场合。(5分)

:组合逻辑控制和微程序控制是用来控制如何产生微命令的两种方式。

组合逻辑控制方式是直接通过逻辑门电路产生微命令的,因而它的主要优点是产生微命 令的速度很快。其主要缺点有两点:其一是设计不规整,因而难于实现设计自动化;其二是 采用硬连逻辑,不易修改和扩展指令系统的功能。组合逻辑控制方式主要用于高速计算机或 小规模计算机中。

微程序控制方式是通过执行微指令来产生微命令的,主要优点如下: ① 设计规整,设计效率高; ② 易于修改、扩展指令系统功能; ③ 结构规整、简洁,可靠性高; ④ 性价比高。 其主要缺点是:产生微命令的速度慢,因为要多次访问控存读取微指令,访存速度限制 了产生微命令的速度;另外,机器的执行效率不高,因为微指令格式较简单,没有充分发挥 数据通路本身所具有的并行能力。微程序控制方式主要用于速度要求不高、功能较复杂的机 器中,特别适合于系列机。


:简述指令流水线的工作原理。(5分)

:为提高处理器执行指令的效率,把一条指令的操作过程分成若干个子过程,且每个子过程都在专门功能电路上完成,这样指令的各子过程就能同时运行,指令的平均执行时间也能大大减少。


什么叫寻址方式?常用的寻址方式有哪些?(5分)

:寻址方式是指寻找指令中操作数所在地址的方法。(1分) 常用的寻址方式有:立即寻址.直接寻址.寄存器寻址.寄存器间接寻址.变址寻址.基址加变 址.隐含寻址等。(每项1分,答对4项以上得4分)


:什么是汇编的逻辑地址?它由哪两部分组成?8086 的物理地址是如何形成的? (5分)

:逻辑地址是将存储器分成若干个段之后而出现的一种地址形式,它由段地址和偏移地址 组成。物理地址是将逻辑地址中的段地址左移 4 个二进制位,再加上偏移地址而形成的。


:简述程序中指令和伪指令的区别。(5分)

:指令是能被计算机识别并执行的二进制代码,它规定了计算机能完成的某一操作。伪指令是对汇编起某种控制作用的特殊命令,其格式与通常的操作指令一样,并可加在汇编程序的任何地方,但它们并不产生机器指令。


:简化地址结构的基本途径是什么?

:在指令中减少显地址的数量,即使用隐地址方式给出地址,指令中的地址(段)个数就可减少。


:减少指令中一个地址信息的位数的方法是什么?

:采用寄存器寻址、寄存器间址等以寄存器为基础的寻址方式可以大大减少指令中一个地址的信息位数


:试比较超标量和超流水的异同点。

:超标量流水线值在一个处理器中针对同一种功能,设置多条并存的流水线。在每个时钟周期中可向流水线发射多条同一类指令,也能从流水线中流出多个处理结果。超流水线以增加流水线级数的方法来缩短机器周期,使相同时间内超流水线能执行更多的机器指令。

存储

问:请简述计算机系统中的三级存储体系结构模式,并分析这种模式的优点和缺点。(5分)

**答:**三级存储体系包括缓存(cache)、内存和外存,这种模式的优点是层次体系清晰、便于设计实现,也利于系统调度管理,能提高存储系统性能;缺点是结构复杂,管理和控制都比较复杂,硬件成本高。


:SRAM 和 DRAM 分别依靠什么原理存储信息?需要刷新吗?

:SRAM 即静态半导体存储器,静态半导体存储器中的一位存储单元,实际上是一个双稳态触发器,靠交叉反馈存储信息。

DRAM 即动态半导体存储器则是靠电容电荷存储信息,如电容上有电荷代表存放的信号1,电容无电荷为存放的信号 0。

SRAM 不需要刷新,而 DRAM 则需要刷新。


:主存和Cache之间的映射方式有哪几种?请简述每种方式的基本思想。(5分)

:主要有直接映射、全相联映射和组相联系映射。

直接映射:CACHE不分组而主存分组,每组包含的数据块数量等于CACHE的数据块数。主存映射到CACHE时,组内序号为K的数据块可映射到CACHE中序号为K的数据块位。

全相联映射:CACHE和主存均不分组,主存的第K个数据块可自由映射到CACHE中的任意数据块位;

组相联映射:CACHE和主存均分组,且主存各组包含的数据块数等于CACHE分组后的组数,主存某组内第K个数据块可映射到CACHE第K组任意一个块位。


总线与输入输出

:I/O接口的主要功能有哪些?(5分)

:外设寄存器寻址;数据传输和缓冲;数据格式变换等;产生中断及代码请求等控制逻辑功能。


:在DMA的初始化阶段中,主要应完成哪些任务?

:(1)向接口送出I/O设备的寻址信息。例如,要从磁盘中读出一个文件,则需送出该文件所在磁盘的驱动器号、圆柱面号、磁头号(记录面号)、起始扇区号(或数据块号)。

(2)向DMA控制器送出控制字,主要是数据的传输方向,输入主存还是从主存输出。

(3)向DMA控制器送出主存缓冲区首地址。数据的输入或输出,往往需在主存储器中设置相应的缓冲区,这是一段连续的存储区,为此在初始化时送出其首地址。

(4)向DMA控制器送出交换量,即数据的传输量。视设备的需要,传输量可以是字节数、字数、数据块数。


对 I/O 设备的编址方法有哪几种?请简要解释。

:对 I/O 设备的编址方法实际上就是对 I/O 接口中有关寄存器及相应部件的编址方法,有两大类型。

① 外围设备单独编址。早期是为每台 I/O 设备分别分配一个设备码,每个设备下属 n 个接口寄存器,在 I/O 指令中给出设备码,指明接口的哪个寄存器,从而实现 CPU 对外设的访问。现在普遍采用为各 I/O 接口的每个有关寄存器分别分配一种 I/O 端口地址,指令中给出端口地址,也就知道 CPU 访问哪一台设备及其接口寄存器。

② 外围设备与主存统一编址。将各 I/O 接口中的有关寄存器与主存的各编址单元统一编址,为它们分配统一的总线地址。在传送指令中给出这类总线地址,CPU 就可以访问相应的 I/O 设备及其接口寄存器。


I/O 指令的设置方法有哪几种?请简要解释。

:通常有三类常见的 I/O 指令设置方法。

① 在指令系统中设置专门的 I/O 指令,可对外围设备单独分配设备码,或给 I/O 接口的有关寄存器分配专门的端口地址,这种 I/O 指令称为显式 I/O 指令。

② 采用通用的数据传送指令实现 I/O 操作,相应地将外围设备接口的有关寄存器与主存统一编址。这种 I/O 指令是隐含在传送指令中,所以又称为隐式 I/O 指令。

③ 通过 I/O 处理器(或 I/O 处理机)控制 I/O 操作。这种方式下,I/O 指令可分为两级:CPU 调用 IOP 的指令和 IOP 本身的指令。


I/O 指令的设置方法有哪几种?请简要解释。

:通常有三类常见的 I/O 指令设置方法。

① 在指令系统中设置专门的 I/O 指令,可对外围设备单独分配设备码,或给 I/O 接口的有关寄存器分配专门的端口地址,这种 I/O 指令称为显式 I/O 指令。

② 采用通用的数据传送指令实现 I/O 操作,相应地将外围设备接口的有关寄存器与主存统一编址。这种 I/O 指令是隐含在传送指令中,所以又称为隐式 I/O 指令。

③ 通过 I/O 处理器(或 I/O 处理机)控制 I/O 操作。这种方式下,I/O 指令可分为两级:CPU 调用 IOP 的指令和 IOP 本身的指令。

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

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

相关文章

Lab3 【哈工大_操作系统】系统调用

本节将更新哈工大《操作系统》课程第三个 Lab 实验 系统调用。按照实验书要求,介绍了非常详细的实验操作流程,并提供了超级无敌详细的代码注释。文末附完整标准答案代码,包括系统调用实现 who.c 和测试函数 iam.c、whoami.c 以及超详细注释。…

mac M2安装单机版 MongoDB 7.x

1. 通过tgz包安装MongoDB 1.1 下载并解压缩安装包 官网下载 mac OS 的 MongoDB 安装包,这里选择7.x版本进行安装(下载链接) 下载好的tgz包,双击解压缩,并重命名为mongdb 将安装包拷贝到安装目录,笔者的…

深入解析开源大模型的GPU资源需求与优化策略

随着大模型的火热很多项目中都使用到了开源大模型,这时候准确评估大模型的GPU资源非常重要,主要有下面几个方面 成本效率:GPU是昂贵的资源。高估内存需求可能导致在硬件上的不必要支出,而低估则可能导致系统故障或性能下降。 性…

【数据结构】什么是红黑树(Red Black Tree)?

🦄个人主页:修修修也 🎏所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 目录 📌红黑树的概念 📌红黑树的操作 🎏红黑树的插入操作 🎏红黑树的删除操作 结语 📌红黑树的概念 我们之前学过了…

资源《Arduino 扩展板3-WS2812》说明。

资源链接: Arduino 扩展板3-WS2812 1.文件明细: 2.文件内容说明 包含:AD工程、原理图、PCB。 3.内容展示 4.简述 该文件为PCB工程,采用AD做的。 该文件打板后配合Arduino使用,属于Arduino的扩展板。 该文件主要…

通义千问“百宝箱”:效率神器,解放你的双手!

你在为播客转文字、音视频转写和长文本阅读而烦恼吗?今天,就让通义千问的“百宝箱”来帮你解决这些难题! 最近,我发现通义千问首页隐藏着一个效率神器——“百宝箱”(现在更名为工具箱),简直是…

batch和momentum

🚀 机器学习系列前期回顾 1、初识机器学习 2、线性模型到神经网络 3、local minima的问题如何解决 🚀在初识机器学习中,了解了机器学习是如何工作的并引入了线性模型,在线性模型到神经网络这节,将线性模型进一步改进为…

FireRedTTS - 小红书最新开源AI语音克隆合成系统 免训练一键音频克隆 本地一键整合包下载

小红书技术团队FireRed最近推出了一款名为FireRedTTS的先进语音合成系统,该系统能够基于少量参考音频快速模仿任意音色和说话风格,实现独特的音频内容创造。 FireRedTTS 只需要给定文本和几秒钟参考音频,无需训练,就可模仿任意音色…

【Golang】关于Go语言字符串转换strconv

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

ProtoBuf快速上手

文章目录 创建 .proto文件编译 .proto文件编译后生成的文件序列化与反序列化的使用 此篇文章实现内容: 对一个通讯录的联系人信息,使用PB进行序列化,并将结果输出对序列化的内容使用PB进行反序列化,解析联系人信息并输出联系人信…

【成神之路】Ambari实战-015-代码生命周期-metainfo-category详解

1.Redis 集群 metainfo.xml 示例 <?xml version"1.0"?> <metainfo><schemaVersion>2.0</schemaVersion><services><service><!-- Redis 集群服务的基本信息 --><name>REDIS</name><displayName>Redi…

MongoDB的安装与增删改查基本操作

MongoDB是一种非关系型数据库&#xff0c;是NoSQL语言&#xff0c;但是又是最接近关系型数据库的。内部存储不是表结构&#xff0c;但是可以对数据进行表结构的操作。 一、安装 在官网&#xff1a;Download MongoDB Community Server | MongoDB下载系统对应的版本进行安装即可…

html+css+js实现Collapse 折叠面板

实现效果&#xff1a; HTML部分 <div class"collapse"><ul><li><div class"header"><h4>一致性 Consistency</h4><span class"iconfont icon-jiantou"></span></div><div class"…

UFS 3.1架构简介

整个UFS协议栈可以分为三层:应用层(UFS Application Layer(UAP)),传输层(UFS Transport Layer(UTP)),链路层(UIC InterConnect Layer(UIC))。应用层发出SCSI命令(UFS没有自己的命令使用的是简化的SCSI命令),在传输层将SCSI分装为UPIU,再经过链路层将命令发送给Devices。下…

通信工程学习:什么是TCP传输控制协议

TCP&#xff1a;传输控制协议 TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09;是因特网协议套件中最重要的协议之一&#xff0c;它为应用程序提供了可靠、面向连接的通信服务。以下是TCP协议的详细解释&#xff1a; 一、TCP传输控制协议的…

双十一有哪些值得入手的好物?这五款宝藏好物不容错过!

在这个金秋送爽、收获满满的季节里&#xff0c;我们迎来了万众瞩目的双十一购物狂欢节。这不仅仅是一场简单的消费盛宴&#xff0c;更是每一位消费者期待已久、精心筹备的年度购物盛典。随着电商平台的不断革新与优惠力度的持续加码&#xff0c;双十一已经从一个简单的促销日成…

使用百度文心智能体创建多风格表情包设计助手

文章目录 一、智能定制&#xff0c;个性飞扬二、多元风格&#xff0c;创意无限 百度文心智能体平台为你开启。百度文心智能体平台&#xff0c;创建属于自己的智能体应用。百度文心智能体平台是百度旗下的智能AI平台&#xff0c;集成了先进的自然语言处理技术和人工智能技术&…

单目3d重建DUSt3R 笔记

目录 DUSt3R 三维重建 报错RecursionError: maximum recursion depth exceeded in comparison 报错 numpy.core.multiarray failed to import 报错Numpy is not available 解决 升级版mast3r 速度变慢 修改了参数设置脚本&#xff1a; 测试效果 操作技巧 DUSt3R 三维重…

[已解决] Install PyTorch 报错 —— OpenOccupancy 配环境

目录 关于 常见的初始化报错 环境推荐 torch, torchvision & torchaudio cudatoolkit 本地pip安装方法 关于 OpenOccupancy: 语义占用感知对于自动驾驶至关重要&#xff0c;因为自动驾驶汽车需要对3D城市结构进行细粒度感知。然而&#xff0c;现有的相关基准在城市场…

torchvision.transforms.Resize()的用法

今天我在使用torchvision.transforms.Resize()的时候发现&#xff0c;一般Resize中放的是size或者是(size,size)这样的二元数。 这两个里面&#xff0c;torchvision.transforms.Resize((size,size))&#xff0c;大家都很清楚&#xff0c;会将图像的h和w大小都变成size。 但是…