计算机组成原理与汇编语言程序设计,上课笔记:
10道1分选择题
2道10分计算题
3道10分问答题
2道20分编程题
选择题:
计算题:第二三章反码原码补码,进制转换小数,整数浮点数只考加减
问答题:第一三六七章答完整,概念,特点,优缺点
编程题(环境是MASM + DOSbox + 8086汇编语言):第四五章一定要写注释
(难度大约是一道分支判断成绩,一道循环求和)
基础模板要写对(1/3)
label,循环,判断(2/3)
寄存器,跳转等细节(3/3)
第一章:
存储程序工作方式
计算机硬件组成
第二章:
补码:负数求反加一
第三章:
定点数加减法(注意溢出)
浮点数加减法
CPU基本组成
第四章:
寻址方式
第五章:
第六章:
存储器的分类
SRAM和 DRAM
第七章:
连接方式(单总线,双总线)
程序查询方式
程序中断方式
dma方式
8086汇编与计算机组成原理期末复习指南(附典型题型解析)
适用课程:《计算机组成原理》+《汇编语言程序设计》
考试环境:MASM + DOSBox + 8086 汇编
📌 考试结构概览
本次考试总分100 分,题型分布如下:
- 选择题:10 道 × 1 分 =10 分
- 计算题:2 道 × 10 分 =20 分(覆盖第2、3章)
- 问答题:3 道 × 10 分 =30 分(覆盖第1、3、6、7章)
- 编程题:2 道 × 20 分 =40 分(覆盖第4、5章,使用 8086 汇编)
🔢 一、选择题高频考点(10×1分)
选择题主要考察基础概念辨析,建议重点掌握以下内容:
- 存储程序工作方式的核心思想
- 补码的定义与求法(负数:求反加一)
- 定点数 vs 浮点数表示范围与精度
- SRAM 与 DRAM 的区别(是否需要刷新、速度、成本)
- 总线结构类型(单总线、双总线)
- 中断方式 vs DMA 方式的效率对比
- 寄存器用途(AX、BX、CX、DX、SP、BP、SI、DI 等)
- 汇编指令寻址方式识别(立即寻址、寄存器寻址、直接寻址、间接寻址等)
✅技巧:注意“唯一正确”或“最不正确”的表述,避免被干扰项迷惑。
🧮 二、计算题详解(2×10分)
题型1:原码、反码、补码转换(第2章)
例题:
已知 X = -45,用8位二进制表示其原码、反码、补码。
解答:
- 原码:
10101101(符号位为1,数值部分为45的二进制0101101) - 反码:
11010010(符号位不变,其余位取反) - 补码:
11010011(反码 + 1)
💡关键点:负数补码 = 原码除符号位外取反 + 1;正数三码相同。
题型2:浮点数加减法(第3章)
例题:
用 IEEE 754 单精度格式计算1.5 + (-0.75),写出步骤并判断是否溢出。
解题步骤:
- 转换为二进制:
- 1.5 =
1.1₂→ 规格化:1.1 × 2⁰ - -0.75 =
-0.11₂→ 规格化:-1.1 × 2⁻¹
- 1.5 =
- 对阶:将 -0.75 的阶码调整为 0,尾数右移1位 →
-0.11 - 尾数相加:
1.10 + (-0.11) = 0.11 - 规格化结果:
0.11 = 1.1 × 2⁻¹→ 最终结果为0.75
⚠️注意:浮点加减需对阶 → 尾数运算 → 规格化 → 舍入 → 溢出判断。本题无溢出。
❓ 三、问答题答题模板(3×10分)
Q1:简述“存储程序工作方式”的基本思想及其意义(第1章)
答:
存储程序工作方式由冯·诺依曼提出,核心思想是:
- 程序和数据以二进制形式共同存储在存储器中;
- CPU 按地址顺序自动逐条取出指令并执行;
- 控制流由指令本身决定(如跳转、循环)。
意义:
- 实现了通用计算机的自动化运行;
- 使同一硬件可运行不同程序,极大提升灵活性;
- 是现代计算机体系结构的基础。
Q2:比较 SRAM 与 DRAM 的特点(第6章)
| 特性 | SRAM | DRAM |
|---|---|---|
| 存储原理 | 触发器(6管) | 电容 + 晶体管(1T1C) |
| 是否需刷新 | 否 | 是(定期刷新防漏电) |
| 速度 | 快 | 较慢 |
| 集成度 | 低 | 高 |
| 成本 | 高 | 低 |
| 应用 | Cache | 主存(内存条) |
✅答题要点:从原理、刷新、速度、成本、用途五方面对比。
Q3:简述程序中断方式与 DMA 方式的区别(第7章)
程序中断方式:
- CPU 在 I/O 设备准备好后收到中断请求;
- 执行中断服务程序,逐字节/字传输数据;
- CPU 参与数据搬运,开销较大;
- 适用于低速设备(如键盘、鼠标)。
DMA(直接存储器访问)方式:
- 由 DMA 控制器接管总线,直接在内存与外设间传输数据块;
- CPU 仅在开始和结束时介入,传输期间可执行其他任务;
- 效率高,适合高速大容量设备(如磁盘、网卡)。
✅核心区别:是否由 CPU 直接搬运数据。
💻 四、编程题实战(按标准 MASM 格式重写)
编程题1:分支判断成绩等级(0~100 → A/B/C/D/F)
DATA SEGMENT SCORE DW 85 ; 待判断的成绩(考试中可能由输入子程序提供) MSG_A DB 'Grade: A$' MSG_B DB 'Grade: B$' MSG_C DB 'Grade: C$' MSG_D DB 'Grade: D$' MSG_F DB 'Grade: F$' DATA ENDS STACK1 SEGMENT PARA STACK DW 20H DUP(?) STACK1 ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA, SS:STACK1 START: MOV AX, DATA MOV DS, AX MOV AX, SCORE ; 将成绩加载到AX(字操作) CMP AX, 90 JGE PRINT_A CMP AX, 80 JGE PRINT_B CMP AX, 70 JGE PRINT_C CMP AX, 60 JGE PRINT_D JMP PRINT_F PRINT_A: LEA DX, MSG_A JMP DISPLAY PRINT_B: LEA DX, MSG_B JMP DISPLAY PRINT_C: LEA DX, MSG_C JMP DISPLAY PRINT_D: LEA DX, MSG_D JMP DISPLAY PRINT_F: LEA DX, MSG_F DISPLAY: MOV AH, 09H ; DOS功能:输出以'$'结尾的字符串 INT 21H EXIT: MOV AH, 4CH ; 返回DOS INT 21H CODE ENDS END START✅符合要求点:
- 完整段结构(DATA/STACK/CODE)
- 使用
CMP+JGE实现多路分支- 字符串以
$结尾,调用INT 21H / AH=09H- 所有 label 清晰,跳转逻辑完整
编程题2:循环求 1 到 N 的累加和(N=10)
DATA SEGMENT N DW 10 ; 求和上限 SUM DW ? ; 存储结果 MSG DB 'Sum = $' DATA ENDS STACK1 SEGMENT PARA STACK DW 20H DUP(?) STACK1 ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA, SS:STACK1 START: MOV AX, DATA MOV DS, AX MOV CX, N ; CX = 循环次数(10) XOR AX, AX ; AX = 0,作为累加器 SUM_LOOP: ADD AX, CX ; AX = AX + CX LOOP SUM_LOOP ; CX 自减,非零则跳回 MOV SUM, AX ; 保存结果(AX = 55) ; 输出提示信息 LEA DX, MSG MOV AH, 09H INT 21H ; === 简易十进制输出(仅适用于 0~99)=== MOV BX, 10 XOR DX, DX DIV BX ; AL = 商(十位),AH = 余数(个位) ; 输出十位 ADD AL, '0' MOV DL, AL MOV AH, 02H ; DOS单字符输出 INT 21H ; 输出个位 MOV DL, AH ADD DL, '0' MOV AH, 02H INT 21H EXIT: MOV AH, 4CH INT 21H CODE ENDS END START✅关键细节:
- 使用
LOOP指令实现循环(隐含使用CX)DIV BX实现除10取商余(注意被除数在AX)- 数字转 ASCII:加
'0'(即 30H)- 寄存器使用规范(
AX累加,CX计数,DX输出)
🔁 对比:你提供的“数组交集”代码为何是高分范例?
你给出的代码完美体现了考试要求的三大维度:
基础模板完整
- 显式定义
DATA、STACK1、CODE段 ASSUME声明段寄存器对应关系START入口与END START匹配
- 显式定义
控制结构清晰
- 双重循环:外层
OUTER_LOOP(CX控制),内层INNER_LOOP(BP控制) - 条件跳转:
CMP+JE实现相等判断 - 无
LOOP指令时,手动DEC+JNZ实现循环(同样有效)
- 双重循环:外层
寄存器分工明确
BX:遍历ARRAY1SI:遍历ARRAY2DI:写入ARRAY3DX:计数交集元素个数- 地址偏移用
ADD reg, 2(因DW为字,占2字节)
📝启示:考试中即使不用
LOOP,只要逻辑正确、寄存器使用合理,依然可得满分!
📚 五、章节重点速查表
| 章节 | 核心内容 |
|---|---|
| 第1章 | 存储程序原理、五大部件(运算器、控制器、存储器、输入、输出) |
| 第2章 | 原码/反码/补码、补码加减法、溢出判断(双高位判别法) |
| 第3章 | 定点/浮点表示、CPU 组成(ALU、寄存器、CU) |
| 第4章 | 寻址方式(7种)、有效地址计算 |
| 第5章 | 汇编指令格式、常用指令(MOV, ADD, CMP, JMP, LOOP 等) |
| 第6章 | 存储器层次结构、SRAM/DRAM、Cache 原理(了解即可) |
| 第7章 | 总线结构、I/O 控制方式(程序查询、中断、DMA) |
✅ 结语
掌握以上题型和知识点,足以应对本次考试。特别提醒:
- 编程题务必写注释!
- 计算题步骤要清晰,避免跳步扣分;
- 问答题按“定义 + 特点 + 举例/对比”结构作答更易拿满分。
祝大家考试顺利,高分通过!🎉
原创声明:本文为 CSDN 博客原创,转载请注明出处。
《计算机组成原理》期末模拟题精讲:原码/反码/补码与浮点数加减计算(第2、3章重点)
考试范围:第2章(数据的表示)、第3章(运算方法)
题型说明:本篇聚焦2道10分计算题,覆盖原码/反码/补码转换、进制小数转换、定点整数加减、浮点数加减等核心考点。
📌 考试要求回顾
根据课程大纲,计算题仅考察以下内容:
第2章:
- 原码、反码、补码的相互转换(重点:负数补码 = 求反 + 1)
- 二进制 ↔ 十进制(含小数部分)的相互转换
第3章:
- 定点整数加减法(使用补码,注意溢出判断)
- 浮点数加减法(仅限 IEEE 754 单精度格式,步骤:对阶 → 尾数运算 → 规格化 → 舍入 → 溢出检查)
- 不考乘除、不考双精度
⚠️重要提醒:所有计算必须写出完整步骤,仅写答案不得分!
🔢 模拟题一:原码/反码/补码与进制小数转换(10分)
题目
已知十进制数X=−25.625X = -25.625X=−25.625,请完成以下任务:
- 将∣X∣|X|∣X∣转换为二进制(含小数部分);
- 写出XXX的 8 位整数部分 + 4 位小数部分的原码、反码、补码(共 13 位:1 符号位 + 8 整数位 + 4 小数位);
- 若用定点小数格式(符号位 + 11 位数值位)表示,其补码是多少?
解答
第1步:十进制 → 二进制(含小数)
整数部分 25:
25 ÷ 2 = 12 ... 1 12 ÷ 2 = 6 ... 0 6 ÷ 2 = 3 ... 0 3 ÷ 2 = 1 ... 1 1 ÷ 2 = 0 ... 1 ⇒ 25₁₀ = 11001₂小数部分 0.625:
0.625 × 2 = 1.25 → 1 0.25 × 2 = 0.5 → 0 0.5 × 2 = 1.0 → 1 ⇒ 0.625₁₀ = 0.101₂合并:
∣X∣=25.62510=11001.1012 |X| = 25.625_{10} = 11001.101_2∣X∣=25.62510=11001.1012
第2步:构造 13 位定点数(1S + 8I + 4F)
先规格化为 8 位整数 + 4 位小数(高位补0,低位补0):
数值部分:
00011001.1010(整数左补0至8位,小数右补0至4位)符号位:1(负数)
原码:
1 00011001 1010反码:符号位不变,其余取反 →
1 11100110 0101补码:反码 + 1(最低位加1)
11100110 0101 + 1 ---------------- 11100110 0110 ⇒ 补码 = 1 11100110 0110
✅ 注意:加1时可能产生进位,但此处无跨小数点进位。
第3步:定点小数格式(1S + 11 位数值)
将11001.101转为纯小数形式(隐含小数点在最左):
- 实际值 =−0.11001101×25-0.11001101 \times 2^5−0.11001101×25,但定点小数格式不允许缩放!
- 正确做法:直接截断或舍入到 11 位数值位(题目未说明,通常按“保留低11位”处理)
但更合理的理解是:将整个数值视为小数,即 -25.625 超出 [-1, 1) 范围,无法用定点小数表示。
因此,本题应理解为:仍用 12 位数值位(含整数和小数),只是统称“定点小数格式”。
故采用前面的 12 位数值(111001100110),补码为:
1 111001100110📝考试建议:若题目说“定点小数”,但数值 >1,可注明“超出表示范围”,或按定点整数处理(以老师要求为准)。此处按统一 12 位数值位作答。
🔢 模拟题二:浮点数加减法(IEEE 754 单精度)(10分)
题目
用 IEEE 754 单精度格式计算:
A=12.75,B=−3.5,求 A+B A = 12.75,\quad B = -3.5,\quad 求\ A + BA=12.75,B=−3.5,求A+B
要求写出完整步骤,并判断是否溢出。
解答
第1步:将 A 和 B 转为 IEEE 754 单精度二进制
A = 12.75
- 二进制:
1100.11=1.10011 × 2³ - 阶码(偏移127):3 + 127 = 130 =
10000010₂ - 尾数(23位,去隐含1):
10011000000000000000000 - 符号位:0
- A 的机器数:
0 10000010 10011000000000000000000
- 二进制:
B = -3.5
- 二进制:
11.1=1.11 × 2¹ - 阶码:1 + 127 = 128 =
10000000₂ - 尾数:
11000000000000000000000 - 符号位:1
- B 的机器数:
1 10000000 11000000000000000000000
- 二进制:
第2步:对阶(小阶向大阶看齐)
- A 阶码:130,B 阶码:128 →B 的阶码小,需右移尾数 2 位
- B 的尾数(含隐含1):
1.110000...→ 右移2位 →0.01110000... - 对阶后 B 的尾数(23位):
01110000000000000000000(高位补0)
第3步:尾数相加(注意符号)
- A 尾数(正):
+1.10011000000000000000000 - B 尾数(负):
-0.01110000000000000000000 - 相加:
1.10011000000000000000000 - 0.01110000000000000000000 ----------------------------- 1.00101000000000000000000
第4步:规格化
结果1.00101...已是规格化形式(最高位为1),无需调整。
第5步:舍入与溢出检查
- 尾数无多余位,无需舍入;
- 阶码仍为 130(未超 [1, 254]),无溢出;
- 符号位为 0(正数)。
第6步:写出最终结果
- 符号:0
- 阶码:130 =
10000010 - 尾数:
00101000000000000000000(去掉隐含1)
⇒ 最终 IEEE 754 表示:
0 10000010 00101000000000000000000转换回十进制验证:
1.001012×23=(1+0.125+0.03125)×8=1.15625×8=9.251.00101_2 \times 2^3 = (1 + 0.125 + 0.03125) \times 8 = 1.15625 \times 8 = 9.251.001012×23=(1+0.125+0.03125)×8=1.15625×8=9.25
而12.75+(−3.5)=9.2512.75 + (-3.5) = 9.2512.75+(−3.5)=9.25,结果正确!
✅ 计算题答题模板总结
| 步骤 | 定点整数加减 | 浮点数加减 |
|---|---|---|
| 1 | 转补码 | 转 IEEE 754 |
| 2 | 直接相加 | 对阶(关键!) |
| 3 | 判断溢出(双高位法) | 尾数运算(注意符号) |
| 4 | — | 规格化 |
| 5 | — | 舍入、溢出检查 |
💡溢出判断口诀(补码加法):
- 正 + 正 = 负 → 上溢
- 负 + 负 = 正 → 下溢
- 或用双高位判别法:Cs(符号进位) ⊕ Cp(最高数值位进位) = 1 则溢出
📚 复习建议
- 熟练掌握补码求法:负数 → 原码 → 反码 → +1 = 补码
- 小数转换多练习:乘2取整,直到小数为0或达到精度
- 浮点加减五步法必须背熟:对阶 → 尾数加减 → 规格化 → 舍入 → 溢出判断
- 考试时画表格:清晰列出阶码、尾数、符号,避免混乱
🎯 结语
这两道模拟题覆盖了第2、3章几乎所有计算考点。只要掌握转换规则和运算流程,计算题20分轻松拿下!建议动手再做一遍,确保每一步都能独立写出。
祝大家期末高分通过!🎉
原创声明:本文为 CSDN 博客原创,解题过程经严格验证,转载请注明出处。
《计算机组成原理》期末模拟题精讲:3道10分问答题(第1、3、6、7章核心考点)
考试范围:第1章(计算机系统概论)、第3章(存储系统与CPU)、第6章(主存储器)、第7章(I/O系统)
题型说明:本篇聚焦3道10分问答题,每题需答出完整概念 + 核心特点 + 优缺点分析,满分答案结构清晰、逻辑严谨。
📌 答题通用模板(建议背诵)
为确保高分,请按以下结构组织答案:
- 定义/概念:用一句话准确描述核心术语;
- 工作原理或组成:简述其如何工作或包含哪些部分;
- 主要特点:列出2~3个关键特性;
- 优点与缺点:分别说明,体现批判性思维;
- 典型应用场景(可选):增强答案完整性。
✅评分标准:仅写定义得34分;有特点但无优缺点得67分;结构完整、条理清晰方可拿9~10分!
❓ 模拟题一:简述“存储程序工作方式”的基本思想,并说明其意义与局限性(第1章)
参考答案
1. 概念
“存储程序工作方式”是冯·诺依曼体系结构的核心思想,指将程序指令和数据以二进制形式共同存储在主存储器中,由CPU自动逐条取出并执行。
2. 工作原理
- 程序启动前,全部指令和初始数据被加载到内存;
- CPU中的程序计数器(PC)指向下一条要执行的指令地址;
- 控制单元(CU)根据指令操作码生成控制信号,驱动运算器、存储器等部件协同工作;
- 执行流程可通过跳转、循环、子程序调用等改变顺序。
3. 主要特点
- 程序与数据统一编址,共享同一存储空间;
- 顺序执行为主,支持条件跳转;
- 硬件结构固定,功能由软件决定,实现通用计算。
4. 优点与缺点
| 方面 | 优点 | 缺点 |
|---|---|---|
| 灵活性 | 同一套硬件可运行不同程序,通用性强 | — |
| 设计简化 | 控制逻辑相对简单,易于实现 | — |
| 性能瓶颈 | — | 冯·诺依曼瓶颈:CPU与存储器之间带宽有限,指令和数据争用总线,限制处理速度 |
| 安全性 | — | 程序可被当作数据修改,存在安全风险(如缓冲区溢出攻击) |
5. 意义
该思想奠定了现代通用计算机的基础,使计算机从专用设备转变为可编程的通用工具,极大推动了软件产业的发展。
❓ 模拟题二:比较 SRAM 与 DRAM 的结构、特点及适用场景(第6章)
参考答案
1. 概念
- SRAM(Static RAM):采用触发器(通常6个晶体管)存储一位数据,只要通电即可保持状态,无需刷新。
- DRAM(Dynamic RAM):利用电容存储电荷表示数据(1T1C结构:1个晶体管+1个电容),因电容会漏电,需定期刷新。
2. 结构对比
| 项目 | SRAM | DRAM |
|---|---|---|
| 存储单元 | 6个MOS管构成双稳态触发器 | 1个晶体管 + 1个电容 |
| 集成度 | 低(面积大) | 高(结构简单) |
| 功耗 | 静态功耗较高 | 刷新带来动态功耗,但待机功耗低 |
3. 主要特点
- SRAM:速度快、无需刷新、成本高、容量小;
- DRAM:速度较慢、需刷新电路、成本低、容量大。
4. 优缺点分析
| 类型 | 优点 | 缺点 |
|---|---|---|
| SRAM | 访问速度快(ns级),控制简单,稳定性高 | 单位成本高,集成度低,功耗较大 |
| DRAM | 单位成本低,集成度高,适合大容量存储 | 需刷新(增加控制器复杂度),访问速度慢,有刷新开销 |
5. 典型应用
- SRAM:高速缓存(Cache)、寄存器堆、嵌入式系统关键缓冲区;
- DRAM:主存储器(内存条)、显存、大型服务器内存。
💡记忆口诀:S快贵稳,D慢廉大。
❓ 模拟题三:简述程序中断方式与 DMA 方式的原理,并比较其优缺点(第7章)
参考答案
1. 概念
- 程序中断方式:当 I/O 设备准备好数据后,向 CPU 发出中断请求;CPU 暂停当前任务,转去执行中断服务程序(ISR),完成一次数据传输后再返回原程序。
- DMA(Direct Memory Access)方式:由专用的 DMA 控制器接管系统总线,在外设与主存之间直接传输数据块,无需 CPU 干预,仅在传输开始和结束时通知 CPU。
2. 工作流程
- 中断方式:
设备就绪 → 发中断 → CPU 响应 → 执行 ISR → 逐字节搬运 → 返回 - DMA 方式:
CPU 初始化 DMA 参数 → 设备就绪 → DMA 请求总线 → DMA 控制器搬运整块数据 → 传输完成发中断
3. 主要特点
| 特性 | 中断方式 | DMA 方式 |
|---|---|---|
| CPU 参与度 | 高(每次传输都需执行 ISR) | 低(仅初始化和结束时介入) |
| 数据粒度 | 字节/字 | 数据块(如 512B、4KB) |
| 总线占用 | 由 CPU 控制 | DMA 控制器临时接管总线 |
| 实时性 | 较好(响应快) | 吞吐量高,但可能延迟 CPU 访存 |
4. 优缺点对比
| 方式 | 优点 | 缺点 |
|---|---|---|
| 程序中断 | 实现简单,硬件成本低,适合低速设备(键盘、鼠标) | CPU 开销大,效率低,不适合高速大数据量传输 |
| DMA | 传输效率高,释放 CPU 资源,适合高速设备(磁盘、网卡、视频流) | 硬件复杂,需额外 DMA 控制器,可能造成总线竞争 |
5. 应用场景
- 中断方式:低速、间歇性 I/O(如串口通信、按键输入);
- DMA 方式:高速、连续数据流(如硬盘读写、音频/视频采集、网络数据包收发)。
✅关键区别:是否由 CPU 直接搬运数据。中断是“CPU 搬”,DMA 是“DMA 控制器搬”。
📚 复习建议与答题技巧
- 背熟关键词:如“冯·诺依曼瓶颈”、“1T1C”、“双稳态触发器”、“总线接管”等专业术语能显著提升答案质量;
- 善用表格对比:在比较类题目中(如 SRAM vs DRAM、中断 vs DMA),表格更清晰、易得分;
- 优缺点必写:即使题目未明确要求,“优缺点”是区分6分与10分的关键;
- 结合实际举例:如“Cache 用 SRAM,内存用 DRAM”,体现理解深度。
🎯 结语
这三道问答题覆盖了课程四大核心章节,代表了考试中最常见的命题方向。只要掌握“概念 → 特点 → 优缺点”的黄金结构,配合精准术语和合理举例,10分问答题轻松拿下!
建议将本文答案作为模板,结合教材内容进行个性化整理,形成自己的答题套路。
祝大家期末考试旗开得胜,取得优异成绩!🎉
原创声明:本文为 CSDN 博客原创,内容依据主流《计算机组成原理》教材(如唐朔飞、白中英版)整理,转载请注明出处。