微机原理与技术基础大作业北邮
- 格式:docx
- 大小:15.07 KB
- 文档页数:3
1. 已知AL=6AH,BL=78H,执行指令ADD AL,BL后,CF、OF和AF的值为()。
A. 1,0,0B. 0,1,0C. 0,0,1D. 0,1,12. 堆栈操作的特点是()。
A. 先进先出B. 后进先出C. 随机进出D. 后进后出3. 下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是()。
A. AX,BX,CX,DXB. BX,BP,SI,DIC. SP,IP,BP,DXD. CS,DS,ES,SS4. 具有多次擦写功能的光盘片是()。
A. CDB. CD―RC. CD-RWD. DVD5. 常见的人机交互设备是()。
A. 多媒体设备B. 外存储设备C. 输入/输出设备D. 数据通信设备6. CPU相应外部中断请求是在()。
A. 一条指令执行结束B. 一个机器周期结束C. 一旦请求,立即响应D. 中断类型码n引起7. 无条件程序传送()。
A. 用于“外设的定时”是固定的,且是已知的场合B. 需要查询程序查询外设的状态C. 其外设的控制逻辑要向CPU发出中断请求D. 其外设的控制逻辑要挪用CPU的总线周期8. 在进入中断相应以后,CPU内部指令指针IP的值()。
A. 必然为0000HB. 为一确定值C. 肯定不变D. 不能确定9. 若程序将某16位带符号数直接加到8086CPU的IP上,会()。
A. 是程序发生转移,其范围为32KB. 是程序转移,其范围为-128~+127C. 使数据发生变化,其范围为32KD. 不允许(或不可能)将16位带符号数进行这样的操作10. 在下列指令中,属于减法指令的是()。
A. 移位指令B. 求补指令C. 换码指令D. 测试指令1. 8255A的工作方式选择控制字的正确值为()。
A. 60HB. 7FHC. 70HD. 83H2. 8255A设置C口按位置位/复位字时,写入的端口地址是(),设8255A的4个端口地址分别为80H、81H、82H、83H。
2011春北邮函授微机原理与接口技术阶段作业1一、单项选择题(共20道小题,共100.0分)1. 当RESET信号有效后,CS内容为A. 0000HB. FFFF0HC. FFFFHD. FFFFFH知识点: 单元1-2习题学生答案: [B;] 标准答案: B;得分: [5] 试题分值: 5.02. 8086/8088微处理器要求RESET有效维持时间至少要有个T状态A. 5B. 6C. 4D. 7知识点: 单元1-2习题学生答案: [C;] 标准答案: C;得分: [5] 试题分值: 5.03. 若欲使RESET有效,只要即可。
A. 接通电源或按RESET键B. 接通电源或执行HLT指令C. 将RESET接地或执行HLE指令D. 按RESET键和将RESET引脚接地知识点: 单元1-2习题学生答案: [A;] 标准答案: A;得分: [5] 试题分值: 5.04. 8086微处理器中的ES是寄存器A. 数据段B. 附加段C. 扩展附加段D. 附加数据段知识点: 单元1-2习题学生答案: [D;] 标准答案: D;得分: [5] 试题分值: 5.05. 8086微处理器以BP内容作为偏移量,则段基址是由寄存器提供A. CSB. ESC. SS知识点: 单元1-2习题学生答案: [C;] 标准答案: C;得分: [5] 试题分值: 5.06. 8086/8088微处理器顺序执行程序时,当遇到指令时,指令队列会自动复位,BIU会接着往指令队列中装入新的程序段指令A. XLATB. LDSC. JCXZD. JCXZ知识点: 单元1-2习题学生答案: [C;] 标准答案: C;得分: [5] 试题分值: 5.07. 8086微处理器读总线周期中地址信号AD15~AD0在期间处于高阻A. T2B. T3C. T4D. T3~T4知识点: 单元1-2习题学生答案: [A;] 标准答案: A;得分: [5] 试题分值: 5.08. 8086/8088 微处理器引脚中信号线能够反映标志寄存器中断允许标志IF的当前值A. S7B. S5C. S4D. S6知识点: 单元1-2习题学生答案: [B;] 标准答案: B;得分: [5] 试题分值: 5.09. 8086/8088微处理器地址线共有条A. 20B. 16C. 8D. 24知识点: 单元1-2习题学生答案: [A;] 标准答案: A;得分: [5] 试题分值: 5.010. 8086/8088微处理器中的寄存器可以作为8位或16位寄存器,如____A. SIC. IPD. CX知识点: 单元1-2习题学生答案: [D;] 标准答案: D;得分: [5] 试题分值: 5.011. 8086/8088 微处理器可访问内存储器地址为A. 00000~FFFFFHB. 0000H~FFFFHC. 0~256D. 0~200知识点: 单元1-2习题学生答案: [A;] 标准答案: A;得分: [5] 试题分值: 5.012. 8086/8088微处理器中堆栈段SS作为段基址,则偏移量为A. BPB. SPC. SID. DI知识点: 单元1-2习题学生答案: [B;] 标准答案: B;得分: [5] 试题分值: 5.013. 8086/8088微处理器中的段寄存器中CS作为段基址,偏移地址允许使用 ___A. IPB. DIC. SID. BX知识点: 单元1-2习题学生答案: [A;] 标准答案: A;得分: [5] 试题分值: 5.014. 若进行加法运算的两个操作数ABH和8BH其结果使得CF和OF为A. 0;0B. 0;1C. 1;0D. 1;1知识点: 单元1-2习题学生答案: [D;] 标准答案: D;得分: [5] 试题分值: 5.015. 若有两个带有符号数ABH和FFH相加,其结果使F中CF和OF位为A. 0;0B. 0;1C. 1;0D. 1;1知识点: 单元1-2习题学生答案: [C;] 标准答案: C;得分: [5] 试题分值: 5.016. 8086微处理器内部具有自动加1功能的寄存器是A. SIB. AXC. BPD. IP知识点: 单元1-2习题学生答案: [D;] 标准答案: D;得分: [5] 试题分值: 5.017. 8086/8088微处理器内部能够计算出访问内存储器的20位物理地址的附加机构是A. EU中的地址加法器B. BIU中的地址加法器C. 指令队列D. 内部通用寄存器知识点: 单元1-2习题学生答案: [B;] 标准答案: B;得分: [5] 试题分值: 5.018. 用于8086/8088系统时钟发生器/驱动器芯片是A. 8284B. 8282C. 8286D. 8288知识点: 单元1-2习题学生答案: [A;] 标准答案: A;得分: [5] 试题分值: 5.019. 微型计算机各部件之间是用连接起来的。
北邮《微机原理与接口技术》期末复习题(含答案)《微机原理与接口技术》复习题一、填空习题讲解1.计算机由运算器、控制器、存储器、输入设备和输出设备五大部分组成。
2.运算器和控制器合称为中央处理器。
3.8086CPU是由总线接口部件BIU和执行部件EU两个部件组成的。
4.根据传送的信息类型,系统总线可以分为三类:数据总线、地址总线和控制总线。
5.半导体存储器按存取方式不同,分为随机存取存储器和只读存储器(ROM)。
6.8086的存储器采用段结构方式,一个段的最大长度为64K。
7.PC机中将物理地址分为两个部分:段地址和偏移地址。
8.有效地址中可有三个地址分量,分别为位移量、基址和变址。
二、选择1.十进制数123的八位二进制补码为(A)。
A.011110112.BCD码的十进制数为(C)。
C.913.堆栈操作的特点是(B)。
B.后进先出4.8086CPU的地址总线为(B)位。
B.205.通常,一个总线周期读取一个(B)的指令代码。
B.字6.IP是由(C)修改,使它总是指向下一条待取的指令。
C.BIU7.指令MOV AX,TABLE[BX][SI]的寻址方式是(B )。
B.相对基址变址寻址8.指令JMP BX的寻址方式是(B )。
B.段内间接寻址9.CPU中运算器的主要功能是(D)。
D.算术运算和逻辑运算10.8086是(B)。
B.微处理器11.8086处理器有20条地址线,可寻址访问的最大存储器空间为(D)。
D.1M12.8086处理器中通常用作数据寄存器,且隐含用法为计数寄存器的是(B)。
B.CX13.微型机的存储器地址为2000H~5FFFH,存储容量为(D)KB。
D.1614.微处理器用13条地址线寻址,其寻址范围为(C)。
C.4KB15.哪些存储器在断电(或关机)后,仍保留原有信息(C)。
C.ROM,,EPROM16.8086CPU寻址I/O端口最多使用地址线(B)条。
B.10三、请写出下列指令中源操作数的寻址方式,并计算物理地址。
微机原理与接口技术(北邮阶段作业4)-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII一、单项选择题(共20道小题,共100.0分)1.8086的中断优先级由低到高的顺序为______A.单步中断、可屏蔽中断、不可屏蔽中断、内部中断B.可屏蔽中断、不可屏蔽中断、单步中断、内部中断C.内步中断、单部中断、不可屏蔽中断、可屏蔽中断D.内部中断、单步中断、可屏蔽中断、不可屏蔽中断知识点:单元5、6、7习题学生答案:[A;]得分:[5]试题分值:5.0提示:2.3.占有CPU时间最小的数据传送方式是______A.同步传送B.查询传送C.中断传送D.DMA传送知识点:单元5、6、7习题学生答案:[D;]得分:[5]试题分值:5.0提示:4.5.微型计算机输入/输出的控制方式有4种,其中以______控制的输入/输出是一种最主要的控制方式,因为其实时性强,效率高A.无条件传送B.程序查询C.中断D.DMA知识点:单元5、6、7习题学生答案:[C;]得分:[5]试题分值:5.0提示:6.7.8086CPU寻址I/O端口最多使用______条地址线。
A.8B.10C.16D.20知识点:单元5、6、7习题学生答案:[C;]得分:[5]试题分值:5.0提示:8.9.若8086处理器改为统一编址方式,可使用______条地址线来寻址端口A.8B.10C.16D.20知识点:单元5、6、7习题学生答案:[D;]得分:[5]试题分值:5.0提示:10.11.8086/8088的中断是向量中断,其中断服务程序的入口地址是由______提供A.外设中断源B.CPU的中断逻辑电路C.从中断控制器读中断类型号左移两位D.由中断型号指向的中断向量表中读出知识点:单元5、6、7习题学生答案:[D;]得分:[5]试题分值:5.0提示:12.13.采用DMA方式传送数据时,每传送一个数据要占用______的时间A.一个指令周期B.一个机器周期C.一个时钟周期D.一个存储周期知识点:单元5、6、7习题学生答案:[D;]得分:[5]试题分值:5.0提示:14.15.系统总线中地址线的功能是_____A.用于选择主存单元地址B.用于选择进行信息传输的设备C.用于选择外存地址D.用于指定主存和I/O设备接口电路的地址知识点:单元5、6、7习题学生答案:[D;]得分:[5]试题分值:5.0提示:16.17.8253芯片有______个端口地址A. 2B. 3C. 4D. 6知识点:单元5、6、7习题学生答案:[C;]得分:[5]试题分值:5.0提示:18.19.8255芯片有______种基本工作方式。
北邮微机原理实验报告微原软件实验报告班级:序号:学号:姓名:实验⼆分⽀,循环程序设计⼀.实验⽬的:1.开始独⽴进⾏汇编语⾔程序设计;2.掌握基本分⽀,循环程序设计;3.掌握最简单的DOS 功能调⽤.⼆.实验内容:1.安排⼀个数据区(数据段),内存有若⼲个正数,负数和零.每类数的个数都不超过9.2.编写⼀个程序统计数据区中正数,负数和零的个数.3.将统计结果在屏幕上显⽰.三.预习题:1.⼗进制数0 -- 9 所对应的ASCII 码是什么? 如何将⼗进制数0 -- 9 在屏幕上显⽰出来?答:0—9对应的ASCII码是30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,将⼗进制数转换成相应的ASCII码并调⽤字符显⽰功能即能实现⼗进制数在屏幕上的显⽰。
2.如何检验⼀个数为正,为负或为零? 你能举出多少种不同的⽅法?答:将该数与0字符(ASCII码为30H)⽐较,根据⽐较的结果转⼊不同的分⽀。
四.流程图:开始初始化CX,BX,AH,DH,DL[BX] 0?[BX]=0?DH++DH 记录等于零的个数BX++BX++CX--AH++AH 记录⼩于零的个数DL++DL 记录⼤于零的个数CX 0?将AH,DH,DL 中的数转成ASCII 码并存储显⽰结束YES YES NOYESNO NO CX 是待处理的数的个数,BX 是这串数的⾸地址五.代码:六.运⾏结果:七.总结:第⼀次在DOS窗⼝下⽤汇编编程,⼀些基本的操作和以前的⾼级语⾔迥然不同,如建⽴⽂件,编译,链接,调试,这些操作都是要在DOS窗⼝中键⼊语⾔指令来完成的,不像⾼级语⾔的编译器只要按下相关的键就好了,⽤语⾔指令能更加明⽩编译,调试这些操作真正的含义。
更重要的是调试指令,通过这些指令,可以直接看到寄存器,内存中真真切切的变化,对硬件的⼯作机制特别是cpu的指令运⾏,内存的数据存储与读取,整个程序运⾏的本质过程有了更加透彻的了解和认识。
阶段作业一一、单项选择题(共20道小题,共100.0分)1. 当RESET信号有效后,CS内容为A. 0000HB. FFFF0HC. FFFFHD. FFFFFH2. 16 位带有符号数的补码数据范围为A. -32767~ +32767B. +32768~ -32767C. +32767~ -32768D. +32769~ -327663. 8086 微处理器中BP 寄存器是A. 基址指针寄存器B. 基址寄存器C. 计数寄存器D. 堆栈基址寄存器4. 8086/8088 微处理器中的BX是A. 基址寄存器B. 计数寄存器C. 变址寄存器D. 基址指针寄存器5. 8086/8088 微处理器引脚中信号线能够反映标志寄存器中断允许标志IF的当前值A. S7B. S5C. S4D. S66. 8086/8088微处理器地址线共有条A. 20B. 16C. 8D. 247. 8086/8088微处理器中的寄存器可以作为8位或16位寄存器,如____A. SIB. SPC. IPD. CX8. 8086/8088 微处理器可访问内存储器地址为A. 00000~FFFFFHB. 0000H~FFFFHC. 0~256D. 0~2009. 8086/8088微处理器中堆栈段SS作为段基址,则偏移量为A. BPB. SPC. SID. DI10. 8086/8088微处理器中的段寄存器中CS作为段基址,偏移地址允许使用___A. IPB. DIC. SID. BX11. 若有两个带有符号数ABH和FFH相加,其结果使F中CF和OF位为A. 0;0B. 0;1C. 1;0D. 1;112. 当标志寄存器F中OF=1时,表示带有符号的字运算超出范围A. -128---+127B. -32768---32767C. 0000H---FFFFHD. 0---FFH13. 编程人员不能直接读写的寄存器是A. DIB. CXC. IPD. SP14. 8086微处理器内部具有自动加1功能的寄存器是A. SIB. AXC. BPD. IP15. 8086/8088微处理器内部能够计算出访问内存储器的20位物理地址的附加机构是A. EU中的地址加法器B. BIU中的地址加法器C. 指令队列D. 内部通用寄存器16. 当标志寄存器TF=1时,微处理器内部每执行完一条指令便自动进行一次A. 复位B. 内部中断C. 外部中断D. 寄存器传送17. 8086/8088微处理器内部寄存器中的累加器是寄存器A. 16位数据寄存器B. 16位段寄存器C. 16位变址寄存器D. 16位基址指针寄存器18. 8086中指令队列和堆栈特点分别是A. 先进后出;先进先出B. 先进先出;先进后出C. 先进先出;后进先出D. 先进后出;先进后出19. 微处理器内部的控制器是由组成A. 寄存器阵列B. 指令寄存器、指令译码器和定时控制电路C. ALU和内存D. ALU和寄存器20. 若把组成计算机中的运算器和控制器集成在一块芯片上称为A. 微型计算机B. 单片机C. 微处理器D. 单板机阶段作业二一、单项选择题(共20道小题,共100.0分)1. 相联存储器是指按______进行寻址的存储器。
汇编语言程序的上机过程姓名:班号:04 学号:86 班序:15一、上机环境要运行调试汇编语言程序,至少需要以下程序文件:编辑程序:或其他文本编辑工具软件,用于编辑源程序。
汇编程序:,用于汇编源程序,得到目标程序。
连接程序:,用于连接目标程序,得到可执行程序。
调试程序:,用于调试可执行程序。
二、上机过程汇编语言程序上机操作包括:编辑、汇编、连接和调试几个阶段。
1.编辑源程序用文本编辑软件创建、编辑汇编源程序。
常用编辑工具有:、记事本、Word等。
无论采用何种编辑工具,生成的文件必须是纯文本文件,所有字符为半角,且文件扩展名为.asm(文件名不分大小写,由1~8个字符组成)。
2.汇编用汇编工具对上述源程序文件(.asm)进行汇编,产生目标文件(.obj)等文件。
3.连接汇编产生的目标文件(.obj)并不是可执行的程序,还要用连接程序把它转换为可执行的EXE文件。
4.程序运行在DOS提示符下输入可执行程序的文件名即可运行程序。
若程序能够运行但不能得到预期结果,则就需要检查源程序,改错后再汇编、连接、运行。
5.程序调试在程序运行阶段,有时不容易发现问题,尤其是碰到复杂的程序更是如此,这时就需要使用调试工具进行动态查错。
常用的动态调试工具为DEBUG。
三、运行调试DEBUG是为汇编语言设计的一种调试工具,它通过单步、设置断点等方式为汇编语言程序员提供了非常有效的调试手段,它可以直接调试COM文件和EXE文件。
DEBUG状态下的所有数据都采用十六进制形式显示,无后缀H。
的运行在DOS状态下,输入下列命令之一,就可以进入DEBUG调试状态。
命令一:DEBUG ↙ (回车)格式二:DEBUG 可执行文件名↙(回车)进入DEBUG调试状态后,将显示提示符“-”,此时,可输入所需的DEBUG命令。
2.DEBUG的主要命令(1)显示内存单元内容的命令D格式为:-D [地址] 或 -D [范围]说明:上面格式中的“-”符号是DEBUG的提示符,下同。
微机原理与接口技术硬件实验报告目录3.实验三8253计数器/定时器的应用 (3)3.1.实验目的 (3)3.2.实验内容 (3)3.2.1.连接电路并测试 (3)3.2.2.音乐播放 (6)3.2.3.弹琴 (17)3.3.思考题 (27)3.4.心得体会 (27)参考资料 (28)声明与致谢 (28)3.实验三8253计数器/定时器的应用3.1.实验目的学习掌握8253用作定时器的编程原理。
3.2.实验内容3.2.1.连接电路并测试8253的CS接译码器输出Y1(其地址为E820-E827H);8253的OUT接蜂鸣器的BELL端;8253的门控信号GATE接+5V;8253的CLK端接Q7(32KHz);清零复位电路中的T/C端接地(或接RESET端)。
图13电路连接示意(局部)图14线路连接在本实验中,只采用定时器0,方式3,只用低字节初始化,故初始化控制字为00010110B,即16H。
它发往控制口E803H。
初值赋给端口E800H。
利用下表,在debug模式下,测试8253与蜂鸣器工作状况。
表4不同音高对应分频数(基频32KHz)音名分频数(十六进制)低音中音高音更高音甚高音Do80402010Re72391C0EMi663319Fa603018So552B15La4D2613Si87442211 CODE(debug mode)MOV DX,E823MOV AL,16OUT DX,ALMOV DX,E820MOV AL,80OUT DX,AL经检验,蜂鸣器发声正常。
3.2.2.音乐播放完成一个音乐发生器,通过蜂鸣器放出音乐,并在数码管上显示乐谱。
程序设计:音乐为巴赫的小步舞曲,只放一遍。
放音乐时,在最左边的数码管上显示播放的音符。
放完音乐或用户敲击键盘时退出程序返回DOS。
返回DOS 前,数码管全灭,蜂鸣器静音。
流程图如下:图15音乐播放流程图程序源代码:CODE(minuet.asm);FILENAME:minuet.asm;AUTHOR:XIAO,Zhiqing(No.13,Cl.07105);DATE:20091223;DESCRIPTION:play music;=============macro=============;macro:myOut(WARNING:it may change the value of AL);it's strongly recommended that data be ALmyOut MACRO portAddr,dataPUSH DXMOV DX,portAddrMOV AL,dataOUT DX,ALPOP DXENDM;macro:myLutOut(WARNING:it may change the value of AL);it's strongly recommended that data be ALmyLutOut MACRO portAddr,lut,dataPUSH DXPUSH BXMOV BX,OFFSET lutMOV AL,dataXLAT lutMOV DX,portAddrOUT DX,ALPOP BXPOP DXENDM;macro:myIn(WARNING:it may change the value of AL);it's strongly recommended that data be ALmyIn MACRO portAddr,dataPUSH DXMOV DX,portAddrIN AL,DXMOV data,ALPOP DXENDM;=============data segment=============Data SEGMENT;Segments Lookup TableSegLut DB0EDH,21H,0F4H,0F1H,39H;"01234"DB0D9H,0DDH,61H,0FDH,0F9H;"56789"DB7DH,9DH,0CCH,0B5H,0DCH,5CH; "ABCDEF"DB3DH,8CH;'H'(10H)'L'(11H)DB00H,10H;''(12H)'-'(13H)space EQU12Hbar EQU13H;Content index array to printContent DB12H,12H,12H,12H,12H,12H;Voice to playFreq DB0H;freqsiF EQU87H;32k/240;0do0EQU80H;32k/256;1re0EQU72H;32k/288;2mi0EQU66H;32k/320;3fa0EQU60H;32k/341;4so0EQU55H;32k/384;5la0EQU4DH;32k/427;6si0EQU44H;32k/480;7do1EQU40H;32k/512;8re1EQU39H;32k/576;9mi1EQU33H;32k/640;Afa1EQU30H;32k/682;Bso1EQU2BH;32k/768;Cla1EQU26H;32k/853;Dsi1EQU22H;32k/960;Edo2EQU20H;32k/1024;Fre2EQU1CH;mi2EQU19H;fa2EQU18H;so2EQU15H;la2EQU13H;si2EQU11H;do3EQU10H;re3EQU0EH;;music freq lookup tableFreqLut DB siF; (00H)DB do0,re0,mi0,fa0,so0,la0,si0;(01H-07H)DB do1,re1,mi1,fa1,so1,la1,si1;(08H-0EH)DB do2;(0FH)DB re2,mi2,fa2,so2,la2,si2DB do3,re3;music display lookup tableTubeLut DB 61H;(00H)DB21H,0F4H,0F1H,39H,0D9H,0DDH,61H; (01H-07H)DB21H,0F4H,0F1H,39H,0D9H,0DDH,61H; (08H-0EH)DB21H;(0FH)DB0F4H,0F1H,39H,0D9H,0DDH,61HDB21H,0F4H,0F1H,39H,0D9H,0DDH,61H ;button matrixbuttonPressed DB0;0FFH for pressed,00H for not.buttonRow DB0buttonCol DB0buttonIndex DB0buttonEnable DW0000Hlab EQU1;1stand for Xue9,0stand for Jiao2IF lab;Xue9PortSw EQU0E8E0H;8255PortA EQU0E800HPortB EQU0E801HPortC EQU0E802HPortControl EQU0E803H;8253Timer0EQU0E820HTimer1EQU0E821HTimer2EQU0E822HTimerControl EQU0E823HELSE;Jiao2PortSw EQU0EEE0H;8255PortA EQU0EE00HPortB EQU0EE01HPortC EQU0EE02HPortControl EQU0EE03H;8253Timer0EQU0EE20HTimer1EQU0EE21HTimer2EQU0EE22HTimerControl EQU0EE23HENDIFNotes DB07H+5,07H+1,07H+2,07H+3,07H+4,07H+5, 07H+1,07H+1DB07H+6,07H+4,07H+5,07H+6,07H+7,0EH+1, 07H+1,07H+1DB07H+4,07H+5,07H+4,07H+3,07H+2,07H+3, 07H+4,07H+3,07H+2,07H+1DB00H+7,07H+1,07H+2,07H+3,07H+1,07H+2DB07H+5,07H+1,07H+2,07H+3,07H+4,07H+5, 07H+1,07H+1DB07H+6,07H+4,07H+5,07H+6,07H+7,0EH+1, 07H+1,07H+1DB07H+4,07H+5,07H+4,07H+3,07H+2,07H+3, 07H+4,07H+3,07H+2,07H+1DB07H+2,07H+3,07H+2,07H+1,00H+7,07H+1DB0EH+1,07H+7,07H+6,07H+7,07H+3,07H+3DB07H+6,00H+6,00H+7,07H+1,07H+2,07H+3, 07H+3,07H+2,07H+3DB07H+4,07H+5,07H+4,07H+3,07H+2,07H+3, 07H+4,07H+3,07H+2,07H+1DB07H+2,07H+3,07H+2,07H+1,07H+2,00H+7DB0EH+1,07H+7,07H+6,07H+7,07H+3,07H+3DB07H+6,00H+6,00H+7,07H+1,07H+2,07H+3, 07H+3,07H+2,07H+3DB07H+4,07H+5,07H+4,07H+3,07H+2,07H+3, 07H+4,07H+3,07H+2,07H+1DB07H+2,07H+3,07H+2,07H+1,00H+7,07H+1 LengthOfSong EQU$-NotesDuration DB4,2,2,2,2,4,4,4DB4,2,2,2,2,4,4,4DB4,2,2,2,2,4,2,2,2,2DB4,2,2,2,2,12DB4,2,2,2,2,4,4,4DB4,2,2,2,2,4,4,4DB4,2,2,2,2,4,2,2,2,2DB4,2,2,2,2,12DB4,4,4,4,4,4DB4,2,2,2,2,4,2,2,4DB4,2,2,2,2,4,2,2,2,2DB4,2,2,2,2,12DB4,4,4,4,4,4DB4,2,2,2,2,4,2,2,4DB4,2,2,2,2,4,2,2,2,2DB4,2,2,2,2,12Data ENDS;=============stack segment============= Stack SEGMENT STACK'STACK'DB100H DUP(?)Stack ENDS;=============code segment============= Code SEGMENTASSUME CS:Code,DS:Data,SS:StackMain PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DataMOV DS,AXmyOut PortControl,80H;8255:10000000B means:;A--mode0,output;B--mode0,output;C High--output(it will change during running);C Low--output(it will change during running)myOut PortB,01H;show the left most digitCALL PlaymyOut PortB,00HRETMain ENDPPlay PROCPUSH SIXOR SI,SInextTune:CALL ShowTubeCALL PlayNoteCALL NoteDurationCALL PlayHushCALL HushDurationCALL CheckExitINC SICMP SI,LengthOfSongJB nextTunePOP SIRETPlay ENDPShowTube PROCPUSH AXPUSH BXPUSH SIMOV BX,OFFSET NotesMOV AX,SIXLAT NotesmyLutOut PortA,TubeLut,ALPOP SIPOP BXPOP AXRETShowTube ENDPPlayNote PROCPUSH AXPUSH BXPUSH SIMOV BX,OFFSET NotesMOV AX,SIXLAT NotesPUSH AXmyOut TimerControl,16HPOP AXmyLutOut Timer0,FreqLut,ALPOP SIPOP BXPOP AXRETPlayNote ENDPNoteDuration PROCPUSH AXPUSH BXPUSH CXPUSH SIMOV BX,OFFSET DurationMOV AX,SIXLAT DurationXOR AH,AH;useless instruct indeed,since high byte of SI is zeroMOV CX,0100HMUL CXSUB CX,10HnextSubNoteDelay:CALL BasicDelayDEC AXJNZ nextSubNoteDelayPOP SIPOP CXPOP BXPOP AXRETNoteDuration ENDPPlayHush PROCPUSH AXPUSH BXPUSH SImyOut TimerControl,16H;00:Timer0;01:Lower Byte only;011:Mode3;0:Binary CountingmyOut Timer0,1POP SIPOP BXPOP AXRETPlayHush ENDP HushDuration PROCPUSH AXPUSH BXPUSH CXPUSH SIMOV CX,10H nextSubHushDelay:CALL BasicDelayJNZ nextSubHushDelayPOP SIPOP CXPOP BXPOP AXRETHushDuration ENDP BasicDelay PROCPUSH CXMOV CX,0080H myLoopLabel:PUSH CXMOV CX,1000H myLoopLabel2:DEC CXJNZ myLoopLabel2POP CXDEC CXJNZ myLoopLabelPOP CXRETBasicDelay ENDPCheckExit PROCPUSH AXMOV AH,0BH;check whether user input something from keyboardINT21HOR AL,AL;if he does,then return to DosJZ exitCheckAndQuitmyOut PortA,00HmyOut PortB,00HCALL PlayHushMOV AX,4C00HINT21HexitCheckAndQuit:POP AXRETCheckExit ENDPCode ENDSEND Main;=============end of file=============经过测验,程序运行正常。
微机原理与接口技术实验
学院:
班级:
学号:
班内序号:
姓名:
1.实验任务
一个学生的信息包括姓名、班级、学号(班内序号)、成绩。
试编写程序实现以下功能:
(1)能录入学生成绩(十进制形式);提示:输入形如:tom 205 16 95回车,每名学生用一行;选择一个特殊符表示输入结束
(2)能按要求(如班内序号或成绩)进行排序显示;
(3)能统计平均成绩;
(4)能按分数段统计人数,不及格、60~70、70~80、80~90、90~100各分数段的人数。
提示:要有必要的提示信息。
应该按至上而下规划程序结构,划分各个子程序的功能和调用关系。
要求
写出实验报告,报告中包括算法思想、流程图,并附上源程序文件
提交方式
采用电子文档:以附件的形式发到以下邮箱,附件命名规则为:班号-姓名-学号.docx、班号-姓名-学号.asm,例:205-张三
最后截止日4月28日23点前
2.算法思想
首先输入学生人数,输入数据位1~99,输入超出该范围时调用ERROR函数,提示错误,回车后退出DOS界面。
程序利用INPUT函数,对学生信息的输入进行提示,由于后面要对成绩进行一系列处理,为简便起见,将班级、学号、姓名分为一次输入,成绩单独输入。
子程序STORE_STUDENT_NUM用于储存输入学生总人数,在下面的操作中会用于执行次数的相关操作。
这个函数的算法思想如下:用NUMBER(三字节变量)储存输入学生总数,若输入为一位数,将输入的字符(ASCII码)存在NUMBER[0]中,如果输入学生人数为两位数,则将十位数(ASCII码)存到NUMBER[1]中,个位数存在NUMBER[0]中,再利用二进制转十进制操作,将学生总数存在NUMBER[2]中。
子程序STORE_STUDENT_INFORMATION用于存储学生班级、学号、姓名信息。
算法思想:INFORMATION,用20字节单元表示学生信息,0-19中:0对应最大字符,1对应实际输入,2-18对应输入信息,19对应'$'每个存储单元的最后一个字节置为’$’以便输出。
子程序STORE_STUDENT_GRADE用于存储学生分数。
算法思想:GRADE[0-4]中存放了输入的成绩,GRADE[5]中存放了小数点之前的数字信息,GRADE[6]中存放了小数点之后的数字信息。
子程序SORT使用冒泡排序按照成绩从高到低的顺序对学生信息进行排列。
算法思想:利用冒泡排序,每次从两个相邻学生信息中找出成绩较高的一个,若其位置靠后,则将其与其之前的一项相交换,每趟都比较信息数目与当前趟次数,直到所有的成绩信息排序完成。
子程序FIND_RESULT,对分数所属分数段进行判定,并统计每个分数段人数。
算法思想:遍历整个存储信息表,判断分数所属分数段,并在此过程中记录总成绩,计算平均成绩。
子程序DISPLAY用于将排序好的学生信息按排序输出。
算法思想:遍历排序完成后的存储信息表,并逐个输出。
子程序SHOW用于将分数输出。
算法思想:判断分数位数,分别将每一位输出。