计组复习笔记

计组笔记

汇编部分

  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.rhkb.cn/news/437355.html

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

相关文章

【零散技术】Odoo PDF 打印问题问题合集

序言:时间是我们最宝贵的财富,珍惜手上的每个时分 Odoo PDF打印 是一个必备功能,但是总会遇到一些奇奇怪怪的问题,此帖仅做记录,方便查阅。 目录 1、样式丢失 2、部分结构丢失 3、没有中文字体 1、样式丢失 这种情况一般是由于 …

Redis: Sorted Set 底层算法的简单分析

概述 我们先看下 Shorted Set 有序集合的内部数据结构所谓有序集合,比如有个容器,容器里边都已经排好序了,那无非就是快速的查找和插入不管你是查找还是插入,肯定要确定那个位置最简单的办法就是从最开头开始,挨个比较…

查找与排序-插入排序

排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序…

2024年10月2日历史上的今天大事件早读

1683年10月2日 清朝康熙帝统一台湾 1869年10月2日 印度民族解放运动领袖甘地诞辰 1890年10月2日 中共创始人之一李达诞生 1895年10月2日 天津中西学堂(天津大学前身)开学 1901年10月2日 郑士良等发起惠州起义 1909年10月2日 京张铁路正式通车 1920…

LeetCode[中等] 238. 除自身以外数组的乘积

给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂…

java常用框架结构

1. Spring框架 特色:Spring框架就像是一个万能工具箱,提供了丰富的功能来满足开发者的各种需求。它支持面向切面编程(AOP)、依赖注入(DI)等特性,使得代码更加模块化和可维护。Spring还提供了对数…

calibre-web的翻译translations

calibre-web的翻译translations Windows安装calibre-web,Python-CSDN博客文章浏览阅读539次,点赞10次,收藏11次。pip install calibreweb报错:error: Microsoft Visual C 14.0 or greater is required. Get it with "Microso…

【QT 开发日志】QT 基础控件详解:按钮、文本框与标签的使用

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 博主简介 博主致力于嵌入式、Python、人工智能、C/C领域和各种前沿技术的优质博客分享,用最优质的内容带来最舒适的…

【C语言】数组(下)

6、二维数组的创建 6.1二维数组的概念 通过数组(上)介绍,我们学习了一维数组,数组的元素都是内置类型的,如果我们把一维数组作为数组的元素,这时就是二维数组,以此类推,如果把二维…

鸿蒙开发(NEXT/API 12)【状态查询与订阅】手机侧应用开发

注意 该接口的调用需要在开发者联盟申请设备基础信息权限与穿戴用户状态权限,穿戴用户状态权限还需获得用户授权。 实时查询穿戴设备可用空间、电量状态。订阅穿戴设备连接状态、低电量告警、用户心率告警。查询和订阅穿戴设备充电状态、佩戴状态、设备模式。 使…

《蓝桥杯算法入门》(C/C++、Java、Python三个版本)24年10月出版

推荐:《算法竞赛》,算法竞赛大全书,网购:京东 天猫  当当 文章目录 《蓝桥杯算法入门》内容简介本书读者对象作者简介联系与交流《蓝桥杯算法入门 C/C》版目录 《蓝桥杯算法入门 Java》版目录 《蓝桥杯算法入门 Python》版目录 …

调用飞书接口导入供应商bug

1、业务背景 财务这边大部分系统都是供应商项目,由于供应商的研发人员没有飞书项目的权限,涉及到供应商系统需求 财务这边都是通过多维表格进行bug的生命周期管理如图: 但多维表格没有跟飞书项目直接关联,测试组做bug统计的时候无…

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-09-30

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-09-30 目录 文章目录 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-09-30目录1. Proof Automation with Large Language Models概览:论文研究背景:技术挑战:如何破局…

成都睿明智科技有限公司赋能商家高效变现

在这个日新月异的数字时代,抖音电商正以不可阻挡之势崛起,成为众多品牌与商家竞相角逐的新战场。在这片充满机遇与挑战的蓝海中,成都睿明智科技有限公司如同一颗璀璨新星,凭借其专业的服务、创新的策略和敏锐的市场洞察&#xff0…

关联式容器:map和set

引言: 在计算机科学中,我们经常需要处理一系列具有关键字的元素,并希望对这些元素进行高效的查找、插入和删除操作。为了满足这些需求,我们可以使用BSTree来实现。BSTree作为一种基础的数据结构,它不仅能够帮助我们快…

基于 C# 的文本文件的编码识别

基于 C# 的文本文件的编码识别 前言一、有 BOM 文件头二、无 BOM 文件头三、简体中文汉字编码四、C# 程序对编码的识别1、文件选择按钮代码:2、获取文件编码,有 BOM 的文件识别3、获取文件编码,UTF8 无 BOM 文件的识别4、获取文件编码&#x…

【在Linux世界中追寻伟大的One Piece】System V共享内存

目录 1 -> System V共享内存 1.1 -> 共享内存数据结构 1.2 -> 共享内存函数 1.2.1 -> shmget函数 1.2.2 -> shmot函数 1.2.3 -> shmdt函数 1.2.4 -> shmctl函数 1.3 -> 实例代码 2 -> System V消息队列 3 -> System V信号量 1 -> Sy…

成都睿明智科技有限公司抖音电商服务靠谱吗?

在这个电商风起云涌的时代,抖音作为短视频直播的超级流量池,正深刻改变着人们的购物习惯。无数商家蜂拥而至,渴望在这片蓝海中找到属于自己的岛屿。而提及抖音电商服务,成都睿明智科技有限公司无疑是一个备受瞩目的名字。那么&…

掌控物体运动艺术:图扑 Easing 函数实践应用

现如今,前端开发除了构建功能性的网站和应用程序外,还需要创建具有吸引力且尤为流畅交互的用户界面,其中动画技术在其中发挥着至关重要的作用。在数字孪生领域,动画的应用显得尤为重要。数字孪生技术通过精确模拟现实世界中的对象…

OpenCV与AI深度学习 | YOLOv11来了:将重新定义AI的可能性

本文来源公众号“OpenCV与AI深度学习”,仅用于学术分享,侵权删,干货满满。 原文链接:YOLOv11来了:将重新定义AI的可能性 Ultralytics YOLOv11的问世标志着人工智能领域,尤其是计算机视觉领域的一个突破性时…