微机原理作业
Posted 数学小学霸
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微机原理作业相关的知识,希望对你有一定的参考价值。
微机原理作业
2020-10
一.计算机技术调研论文
题目
报告选题:从绪论《计算机器之路》的内容中选取一个知识点,展开讨论,阐述一个与计算机技术相关的论点。
报告要求:
① 必须提出观点,观点清晰,有论证过程,不能仅罗列事实。
② 需查阅不少于1篇的参考文献,并标注引用。
③ 字数不少于300字,不多于1000字。
④ 雷同者一律计0分。
- 史话机器计算之路:①机器计算的梦想家 ②辅助计算工具 ③现代计算机雏形 ④电子计算机
①机器计算的梦想家
了解4位机器计算的先驱思考者:Ramon Llull, Thomas Hobbes, Athanasius Kircher, Gottfried Leibniz对机器计算的思考和尝试。
1.机器计算的前提是要对各种现象和事物进行编码,实际上人类最早的文字正是为了解决计算问题而出现。
2.理解机器计算的本质是将人脑的计算思维过程物质化,用非人的物质结构模拟人脑的思维活动。
3.机器计算的目标是“替代”或者“模拟”人类。了解图灵的人工智能检验标准。
②辅助计算工具
1.机器计算需要3个部分,一个是需要可计算的符号,或者说数学编码;一个是计算的法则,物理规律和数学定律;一个是可代替人的工具,并且是自动化工具。
2.辅助计算工具这一节就是介绍可进行计算的工具的历史:了解算盘,计算尺,机械计算器;理解计算机器从人控制向机器自主控制过渡;掌握数的进制编码规则,分析0,1二进制,0-9十进制,罗马计数进制三种进制的区别。
③现代计算机的雏形
1.通过对比“差分机”和“分析机器”来说明程序存储原理,“差分机”算法是固定的,只能输入不同的x,得到不同的y。而“分析机器”程序也是一种数据,可以动态写入,改变程序这种数据就可以实现不同的计算功能,这就是程序存储原理。
2.了解巴比奇的“差分机”和“分析机器”,熟悉“差分机”的基本工作原理,理解为什么将“分析机器”称为现代计算机的雏形。掌握“分析机器”的指令序列分步骤计算数学公式的方法,程序概念的成型。
④电子计算机的产生
1.电子计算机的几个特点注定了电子技术是最适合实现计算机功能的技术。
2.了解boole代数,boole代数将二进制运算表示为逻辑运算,而逻辑运算可以用电子开关实现,只要电子开关的数量足够,用于计算的时间足够,就可以完成复杂的计算。
3.John von Neumann计算机结构,实现了程序存储原理,计算机的中心是存储器,计算机的关键是处理器,计算机的灵魂是程序。
4.Turing概念计算机,说明了简单计算模型与复杂计算模型并没有本质区别。
电子计算机ENIAC和SSEM。掌握现代电子计算机的5大功能模块;对比ROM+RAM和RAM+RAM的两种程序存储方式的特点。
辅助计算与工具
自计算工具产生开始,人类就随着应用范围的扩大不断对其进行改进。从最原始的计算工具石子、手指到结绳记数,从算筹到算盘,从计算尺到差分机,从机械式计算机一直到 1946 年第一台电子计算机诞生,最后到今天电子计算机的广泛应用,计算工具的发展经历从简单、手动到复杂、自动的过程。这一过程完成了计算工具从低级到高级的演变,并且还在继续向更高级发展。辅助计算工具与方法分为计算方法和计算工具。
机器计算分为三个部分,第一个是需要可计算的符号,常见的编码计数有阿拉伯计数,罗马计数,BCD码。第二个是根据不同辅助计算工具的计算法则。阿拉伯计数采用十进制计数,使用了10个基码,使用位置计数法来扩展数值的权重,可表示所有数量。罗马计数基码中只有1和5,采用了加减组合的方式来表示数值。BCD码首先把数字分解为一个独立的数字,然后根据二进制的计数方式计数。第三个是自动化工具,是一个可代替人的工具。
常见的辅助计算工具有算筹,算盘,计算尺,近代发明的机械计算器,计算机。在古代就有了算盘,比如公元前4世纪的中国算筹,公元1世纪的古罗马算盘,汉代的中国算盘,16世纪的日本算盘,17世纪的俄罗斯算盘。计算尺有对数计算尺和乘法计算尺。对数计算尺根据对数表,根据查表得到结果。乘法计算尺可以解决多位数的乘法问题。近代发明的机械计算的人有德国科学家Wilhelm Schickard ,他是第一台机械计算装置的发明者。还有法国科学家Blaise Pascal,他研制自己的机械计算工具。
辅助计算工具与方法对我们的启发很大。使用了算盘,数据不仅可以用具体的装置来表示和存储,而且复杂计算可以分解为简单计算,并且计算的流程是标准化的。使用了计算尺,数值计算可以利用不同方法实现,可以利用装置的物理特性来固化计算的规则。机械计算器应用了机械装置的运动来实现数值运算,本质上是数学规律在机械运动规律中的体现,可以看做是机械运动过程对人脑思维过程的模拟。我们应该好好利用辅助计算工具,提高对计算的认知。
参考文献
【1】 刘博. 计算工具发展研究[D].辽宁师范大学,2015.
【2】 董三锋,尹若丹.古代计算工具的发展与变迁[J].兰台世界,2011(11):65-66.
【3】 吴为平,严万宗.从算盘到电脑[M].湖南:湖南教育出版社,1986,30-31.
【4】 李俨.计算尺发展史[M].上海:上海科学技术出版社,1962,11.
二.思考题
选择清洁方案
有一个清洁公司派了3个员工去打扫30个房间的地板。地板的打扫方法是这样的,有3道工序,必须顺序进行:第1步:清扫垃圾 -> 第2步:拖地去灰尘 -> 第3步:打蜡抛光
这里有两套打扫方案,一种是3个员工每个人负责10个房间,各做各的;一种是3个员工分别负责3种工序,流水作业。
请问如果你是清洁方案负责人,你选择哪种方案,为什么?
(5.0分)
我会选择个3个员工每个人负责10个房间,同时作业方案。 根据题目知道,有3个员工去打扫30个房间,打扫有3道工序。打扫的3个步骤有先后之分,每个房间都得按照严格的顺序来打扫。做这3个工序的加工时间,每个工人的熟练度都是未知的。
3个员工分别负责3种工序,工作人数比较少,作业规模比较小,作业工序之间有着较大的相关性。每个步骤所需要的时间不同,很可能会出现有人持续等待的情况,增加整个工作完成的时间。因此该清洁方案不适合流水作业。流水作业适用于工作人数比较多,加工工序比较大,加工工序之间相关性小,规模比较大的作业,流水施工的优点是:各工作队可以实行专业化施工,工人可以提高技术熟练程度以及改进操作方法,可充分提高劳动生产率。相应可以减少工人人数和施工设施数量,从而可以节约投资,降低成本。同时流水施工的专业化施工,有助于保证工程质量。
可以选择同时作业方案。3个员工每个人负责10个房间,各做各的。选择这个方案,每个员工不需要等待其他员工,可以一直工作,直到完成自己的工作。由于不需要有相互合作,方便清洁方案负责人检查清理工作情况。
分发馒头
一位慈善家要给1000名灾民分发馒头,每个灾民可以领取[1,127]区间内的任意整数个馒头(假设实际领取数平均分布在[1,127]之间),由于灾民众多,请问如何设计提前打包方案,才能在不提高服务窗口数量的前提条件下,尽可能提高分发馒头的速度。(1分)
(思路提示:比如一个灾民要119个馒头,如果一个一个清点馒头后打包,若每点一个馒头耗时0.5秒,则清点装袋119个馒头将耗时1分钟,服务效率极低。如果能提前将100个馒头打包好,则可以将100作为整数直接分发,然后再清点19个馒头,只需耗时10秒)
(5.0分)
分配馒头跟计算机分配内存是的方法是相似的,要求所有大小数据都可以表示和尽可能不浪费内存。
因为二进制可以表示任意大小的数字,领取馒头的数量范围是[1, 127],可以分成2,4,8,16,32,64共6堆。比如抽取到65,65就可以由64 + 1 组成,共需要1秒。抽取到127,127就可以由64 + 32 + 16 + 8 + 4 + 2 + 1组成,共需要3.5秒。选择这种分配方法,消耗时间是最小的。
三.汇编程序1
用汇编语言编程实现:人机交互,按提示输入你的学号,然后计算学号中所有单个数字的累加和并显示。
请用DOSBOX编译运行程序,然后提交程序源代码和程序运行后的屏幕截图(如下图所示)。
Please input your student ID:
201921111076
Sum of your ID is 31.
.model small
.stack
.data
input_str DB 20 ;设置缓冲区
; DB ?
; 初值
DB 20 dup(0)
input_message DB 'Please input your student ID:', 0ah, 0dh, '$'
ouput_message DB 0ah, 0dh, 'Sum of your ID is ', '$'
; 总和
sum DW ?
; 商
quotient DB ?
; 余数
remainder DB ?
;用来检测sum_number总共有多少位
cnt DW 0
.code
start:
mov ax, @data
mov ds, ax
;打印提示信息1
mov ah, 09h
mov dx, offset input_message
int 21h
;键盘开始输入
mov dx, offset input_str
mov ah, 0ah
int 21h
;设置提取字符串的循环次数
mov bx, offset input_str + 1
; cl 是低8位
mov cl, [bx]
mov ch, 0
mov dx, 0
; 不断累加
get_sum:
inc bx
mov ax, [bx]
; '0'
sub ax, 30h
mov ah, 0
add dx, ax
loop get_sum
; 结果赋值为sum_number
mov sum,dx
; 显示输出字符串2
mov ah, 09h
mov dx, offset ouput_message
int 21h
;将sum分离
; 低位、高位依次入栈
get_num:
; dl = 10
mov dl, 0ah
mov ax, sum
; 201821111082
; sum除以dl 得到商和余数
div dl
; 商和余数得寄存器
; 低位
mov quotient, al
; 高位
mov remainder, ah
mov cx, 0
mov bx, 0
mov cl, quotient
mov bl, remainder
; 压入栈
push bx
push cx
pop ax
; cnt++
inc cnt
; 更新值
mov sum, ax
; sum == 0 就退出
cmp sum, 0
jnz get_num
; 跳出循环后才执行
; 得到字符串中数字得个数
; 设置循环次数
mov cx, cnt
;依次出栈逐个显示
show_num:
mov dx, 0
pop dx
; 30h 是 '0'
add dx, 30h
; 打印1个字符
mov ah, 02h
int 21h
loop show_num
;显示句号
mov ah, 02h
mov dx, 2eh
int 21h
; 结束程序
mov ax, 4c00h
int 21h
end start
四.存储器
一.单选题(共2题,10.0分)
1
在学习通上观看第5章视频《computer memory》,回答视频1:36处视频中提到的memory latency是指的什么?
(5.0分)
A、
内存地址容量
B、
内容的数据存储类型
C、
内存访问延时
D、
内容字长
正确答案: C 我的答案:C得分: 5.0分
2
在学习通上观看第5章视频《computer memory》,回答视频1:48处视频中提到的RAM是什么意思?
(5.0分)
A、
可以高速访问的存储器
B、
可以访问任意地址的存储器
C、
只具有短期记忆能力的存储器
D、
必须连续访问的存储器
正确答案: B 我的答案:B得分: 5.0分
五.按键驱动
- 到教学QQ群下载PROTEUS软件,自学学习通第6章第2节内容,按要求安装软件,并自学软件基本用法。
- 到教学QQ群下载io-test.dsn电路图,打开电路图,并将U11或门的输入引脚连接到正确的位置(可参考U9的连线),从而为图中的输入接口电路74LS244分配一个地址。
3.编写开关输入,发光二极管输出的控制程序,实现开关闭合时8个发光全亮,开关断开时,8个发光二极管全熄灭。
4.注意,答案需提供程序代码以及3张电脑截图,第1张是U11的连线截图,第2张是程序运行时,开关闭合,发光二极管全亮图;第3张是程序运行时,开关断开,发光二极管全熄灭图。
(5.0分)
见Word版本
.model small
.stack
.data
.code
LED equ 0800h
KEY equ 0800h
start:
mov ax, @data
mov ds, ax
again:
mov dx, KEY
in al, dx
; al == 01h?
cmp al, 01h
; 等于就跳转
je stat_off
; 否则就执行到这
stat_on:
; 全亮
mov al, 0ffh
; jmp 无条件跳转
jmp output
stat_off:
; 全灭
mov al, 00h
jmp output
output:
mov dx, LED
out dx, al
jmp again
; mov ax, 4c00h
; int 21h
end start
以上是关于微机原理作业的主要内容,如果未能解决你的问题,请参考以下文章