微原上机作业

合集下载

微机原理期中习题课

微机原理期中习题课

U︺E︺S︺T︺C (︺为空格符)
地址
内容
00330H
55H
00331H
20H
00332H
45H
00333H
20H
00334H
53H
00335H
20H
00336H
54H
00337H
20H
00338H
43H
微机系统原理与接口技术
2.15 存储器中每一个段最多为64KB,当某程序routadf运行后,
微机系统原理与接口技术
重点掌握内容:
1.汇编语言源程序的基本结构。 2.常用伪指令。 3.各种结构形式的汇编语言程序、子程序的设计及常用的 DOS功能调用方法。 4. 汇编语言上机调试方法。 5.几个重要概念:汇编语言,汇编语言源程序,目标程序, 汇编程序,链接程序。
了解内容:
1.汇编语言与高级语言的接口。
A.内存中固定地址的一块区域 域
B.按“后进先出”原则组织的存储区
C.必须按字操作访问的内存区域 D.遵循“向上”增长原则的存储区域
3. 8086系统中,若要使寄存器AL中的高4位不变,低4位为1,可用( ) 指令。
A.AND AL, 0FH B.AND AL, 0F0H
C.OR AL, 0FH
D.OR AL, 0F0H
2.13 有一个32位的地址指针67ABH:2D34H存放在从 00230H开始的存储器中,试画出它们的存放示意图。
地址 00230H 00231H 00232H 00233H
数据 34H 2DH 0ABH 67H
微机系统原理与接口技术
2.13将下列字符串的ASCII码依次存入从00330H开始的 字节单元中,试画出它们的存放示意图:

微机原理上机试验作业

微机原理上机试验作业

汇编源程序 MASM ABC.ASM
二.上机步骤
① D:>EDIT ABC.ASM ② D:>MASM ABC.ASM ;
有语法错,回 EDIT下改源程序 ③ D:>LINK ABC.OBJ ;
有汇编错误信息 ? Y N
形成目标程序 ABC.OBJ
连接目标程序 LINK ABC.OBJ
有连接错误信息 ? Y N
另存为……
一.上机环境
汇编语言程序设计上机步 骤与调试方法
用户程序:ABC.exe等
应用软 件 系统软件
硬件
操作系统:DOS系统 编辑器:EDIT.exe 编程序:MASM.exe 连接程序:LINK.exe
调试程序:DEBUG.exe CPU 、存储器(ROM 、RAM) 、I/O 接口、输入、输出设备
编辑源程序 EDIT ABC.ASM
形成可执行程序 ABC.EXE
有错,回在 EDIT下改源程序 ④ D:>ABC
运行结果错,回 EDIT下改源程序 或在 DEBUG 下调试,找原因。 ⑤ D:>DEBUG ABC.exe

装入可执行程序到内存,并执行 D:\>ABC
运行结果正确 ? Y
N 用 DEBUG 调试程序查错 ?
下一程序 N
Y 用 DEBUG 调试可执行程序 找到原因
D:\> DEBUG ABC.EXE
第一步:
三.具体操作步骤举例
点击“运行”
三.具体操作步骤举例
COMMAND
三.具体操作步骤举例
DOS提示符
第二步:
三.具体操作步骤举例
进入EDIT 编辑环境
三.具体操作步骤举例
三.具体操作步骤举例

病原微生物检测实验原理及流程介绍

病原微生物检测实验原理及流程介绍
测序-原理
华大
DNA纳米球:DNB技术是将基因组DNA首先经过片段化处理,再加上接头序列,并环化成单链环化DNA,随后使用PCR-Free 的滚环扩增技术将单链环化DNA扩增2-3个数量级,所产生的扩增产物为DNA纳米球。
测序-原理
华大
数据质控
表单各项
相关要求解释与要求
备注
样本
样本名称,包括NF及临床样本
敏感性和特异性差、并不是所有病原微生物都有相应抗体、有窗口期、假阳性高。
核酸检测(PCR)
简单、快速、价格低、可定量检测、准确性高。
依赖主观假设、检测已知的微生物、需要引物扩增,但引物并不总是可靠、只能检测微生物基因组的很小部分。
质谱法
过程简单、特异性和准确性高、可进行高通量分析。
基于已培养的阳性菌落,依赖培养、只能检测细菌和真菌约1000种已知微生物、部分病原体不能鉴定到种、只能定性不能定量。
感染人群多新发罕见感染源不断涌现
诊断方法找不到病原/患者等不到诊断结果
经验性用药加剧细菌耐药无药可医、不治而亡
[1]Troeger C, et al, The Lancet Infectious Diseases, 2018. [2]William OC, et al, Nature Reviews Microbiology,2017
优点:理论上能检测全部已知和未知病原体(一网打尽);缺点:灵敏度受宿主背景干扰;
病原宏基因检测(mNGS)-检测流程
1
0.5h
样本前处理+去宿主+破壁
g+DNB
8h
测序
2-3h

病原宏基因检测(mNGS)-去宿主
差异裂解法:利用人源细胞与微生物细胞结构差异,选择性的裂解宿主细胞,利用核酸酶酶解掉释放出来的宿主DNA,最后进行病原体DNA的富集纯化;

微原模拟题答案

微原模拟题答案

练习题一一.单项选择题1. DABDC 6. BADAD 11. DD二. 填空题1. Central Processing Unit,中央处理器或中央处理单元2. 0010 0111B或27H或39, 13. 32,324. 25. 20,4位(A19-A16) ,(S6-S3)状态6. 0ffffh ,167. 20,00000至0fffffh ,8. 微处理器,微型计算机,微型计算机系统三.判断题1. 对错对对对 6. 错错对四.请将下列左边的项和右边的解释联系起来1. D2. G3. E4. B5. H6. I7. A8. J9. F 10. C五.简答题1.8086 微处理器的标志寄存器的标志有哪些?状态标志位和控制标志位有什么区别?答:状态标志位有6个:零标志-ZF,符号标志-SF,进位标志-CF,溢出标志-OF,辅助进位标志-AF,奇偶标志-PF。

控制标志位有3个:方向标志-DF,中断允许标志-IF,陷阱标志-TF。

状态标志位用来反映指令执行的结果,通常是由CPU根据指令执行结果自动设置的。

控制标志位由程序通过执行特定的指令来设置的,以控制指令的操作方式。

2. Cache是什么意思? L1Cache和L2Cache有什么不同?答:Cache(高速缓冲存储器)是一种存取速度比内存更快的存储设备,用于缓解CPU和主存储器之间速度不匹配的矛盾,进而改善整个计算机系统的性能。

L1 Cache被集成到CPU内部,与CPU同步运行;L2 Cache是单独的集成电路芯片,被安装在主板上,比内存速度快,通常以CPU的半速运行。

3. 8086CPU从功能上分为几部分?各部分由什么组成?各部分的功能是什么?答: 两部分:总线接口部件(BIU)和执行部件(EU)总线接口部件(BIU)的功能:根据执行单元EU的请求完成CPU与存储器或IO设备之间的数据传送。

由下列几部分组成:(1)4个16位段地址寄存器,即:代码段寄存器CS,数据段寄存器DS,附加段寄存器ES,堆栈段寄存器SS(2)16位指令指针寄存器IP;(3)地址形成逻辑(20位的地址加法器);(4)6字节的指令队列;(5)总线控制逻辑。

新版西电微机原理第二次上机实验报告-新版-精选.pdf

新版西电微机原理第二次上机实验报告-新版-精选.pdf

西电微机原理第二次上机实验报告学号:姓名:一、实验目的1.熟练掌握汇编语言程序设计的方法及上机步骤。

2.掌握算术运算中,十进制数调整指令的应用。

3.掌握子程序的设计方法。

4.掌握DOS功能的调用方法。

二、实验仪器586微机 1台三、实验内容编写求十进制数12678532与21736543之和的程序,并将和以十进制数的形式送屏幕显示。

编程要求与提示:[1] 两个加数均以压缩(组合)十进制数形式存放在ADD1和ADD2为首址的存贮器单元。

[2] 和以压缩十进制数的形式存入SUM以下单元。

[3] 将和送到屏幕显示部分功能的实现采用子程序的形式。

[4] 实验步骤如下:a. 用全屏幕编辑软件建立源程序。

b.用masm.exe汇编程序对源程序进行汇编,形成目标程序。

c. 用link.exe连接程序对目标程序进行连接形成可执行文件。

d. 用DEBUG对连接通过的可执行程序进行调试。

四、实验内容对应的源程序及流程源程序如下:STACK SEGMENT STACKDB 10H DUP(00)STACK ENDSDATA SEGMENTADD1 DB 12H,67H,85H,32HADD2 DB 21H,73H,65H,43HSUM DB 4H DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART:MOV AX, DATAMOV DS, AXMOV AX, DATAMOV ES, AXMOV AX,STACKMOV SS,AXLEA SI, ADD1[3]LEA BX, ADD2[3]LEA DI,SUM[3]MOV CX,4CLCL1:MOV AL,[SI]ADC AL,[BX]DAAMOV [DI],ALDEC SIDEC BXDEC DILOOP L1CALL DISPAL; ------------EXITPROC:MOV AH,4CH ;结束程序MOV AH,1INT 21H; ------------DISPAL PROC NEARPUSH AXPUSH BXPUSH CXPUSH DXPUSH DILEA DI,SUMMOV CX,4DISPAL2:MOV AL,[DI]SHR AL,1SHR AL,1SHR AL,1SHR AL,1MOV AH,2MOV DL,ALADD DL,30HINT 21HMOV AL,[DI]AND AL,0FHMOV AH,2MOV DL,ALADD DL,30HINT 21HINC DILOOP DISPAL2POP DIPOP DXPOP CXPOP BXPOP AXRETDISPAL ENDPCODE ENDSEND START运行结果如下:五、问题讨论1.在以十进制数形式参加运算的程序设计中,应注意那些问题。

微机原理上机个人总结

微机原理上机个人总结

微机原理上机个人总结
在微机原理的上机实验中,我个人的总结如下:
1. 实验目的:通过实验了解微机原理的基本概念、组成结构和工作原理,掌握微机系统的组装与调试技术。

2. 实验内容:
- 组装微型计算机系统:了解计算机主机、外围设备的组成,学会安装和连接各种硬件设备。

- 硬件配置与调试:学会设置硬盘、光驱、显卡、内存等硬件资源,在 BIOS 中进行相应设置调整。

- 操作系统安装:了解不同操作系统的安装步骤和要求,并按照提示完成操作系统的安装。

- 系统调试与功能测试:学会使用调试工具对硬件进行测试和调试,确保计算机系统正常工作。

3. 实验收获:
- 掌握了微机系统组装与调试的基本技术,了解了硬件设备的安装、连接方法以及操作系统的安装过程。

- 熟悉了 BIOS 设置,包括启动顺序设置、硬件资源配置等。

- 学会了使用调试工具对计算机硬件进行故障排除和性能测试。

- 加深了对微机原理的理解和认识,对计算机硬件与操作系统之间的关系有了更深入的了解。

4. 实验心得:
- 实验过程中需要仔细阅读实验指导书,按照步骤进行操作,保证安装和连接的正确性。

- 遇到问题要及时和助教、同学讨论,互相帮助解决疑惑和困难。

- 实验后要及时总结和整理实验过程中遇到的问题和解决方法,加深对微机原理的理解。

通过这次上机实验,我对微机原理有了更深入的了解,也掌握了一些基本的硬件配置和调试技术,对于今后的学习和工作都会有很大的帮助。

(完整word版)西电微机原理上机

(完整word版)西电微机原理上机

4.37 (上机题)编写程序实现,将缓冲区BUFFER中的100个字按递增排序,并按下列格式顺序显示:数据1 <原序号>数据2 <原序号>……算法流程图:调试问题、心得体会:通过这道题,熟悉了流程图画法,掌握了产生随机数,“冒泡法”排序,子函数编写调用等的基本过程,尤其对于中断调用,并利用ASCII码回显和对课本字节型数据“冒泡法”排序改进为字形排序的过程,是我受益匪浅。

并且亲身实践了源程序的汇编、调试也连接。

问题:将字节型冒泡法直接应用于该题,导致出错,该题存储的是字型数据!原因在于只是排列的AL中的数值,并不是产生的随机数!同时对于字型与字节型在运算类指令中的应用还是有误,以及其他的一些小错误,应加以改善!运行结果:程序代码:STACK SEGMENT STACK 'STACK'DW 100H DUP(?)TOP LABEL WORDSTACK ENDSDATA SEGMENTBUFFER LABEL WORDX=17REPT 100X=(X+80)mod 43DW XENDMBUF DW 100 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK START:MOV AX,DATAMOV DS,AXMOV ES,AXMOV AX,STACKMOV SS,AXLEA SP,TOPMOV CX,100LEA SI,BUFFERLEA DI,BUFL1:MOV AX,[SI]INC SIINC SIMOV [DI],AXINC DIINC DILOOP L1MOV CX,100DEC CXLEA SI,BUFFERPUSH CXADD CX,CXADD SI,CXPOP CXL2:PUSH CXPUSH SIL3:MOV AX,[SI]CMP AX,[SI-2]JAE NOXCHGXCHG AX,[SI-2]MOV [SI],AXNOXCHG:LOOP L3POP SIPOP CXLOOP L2MOV CX,100LEA SI,BUFFER L4:MOV AX,[SI] CALL DISPAX ADD SI,2CALL XIAOYU CALL XUHAOCALL DAYUCALL DISPCR LOOP L4MOV AH,4CHMOV AL,0INT 21H DISPAX PROC NEARPUSH AXPUSH BXPUSH CXPUSH DXPUSH DIMOV BX,10MOV CX,3L7:XOR DX,DXDIV BXMOV [DI],DX INC DIINC DILOOP L7MOV CX,3L8:DEC DIDEC DIMOV AL,[DI] ADD AL,30HMOV AH,02MOV DL,ALINT 21HLOOP L8POP DXPOP CXPOP BXPOP AXRET DISPAX ENDP DISPCR PROC NEAR PUSH AXPUSH DXMOV AH,2MOV DL,0AH INT 21HMOV AH,2MOV DL,0DH INT 21HPOP DXPOP AXRET DISPCR ENDP XIAOYU PROC NEAR PUSH AXPUSH DXMOV AH,02 MOV DL,3CH INT 21HPOP DXPOP AXRET XIAOYU ENDP XUHAO PROC NEAR PUSH AXPUSH BXPUSH CXPUSH SIMOV CX,100 MOV BX,AX LEA SI,BUF L5:CMP BX,[SI] JZ L6ADD SI,2LOOP L5L6:MOV AX,101SUB AX,CXCALL DISPAXPOP SIPOP CXPOP BXPOP AXRETXUHAO ENDPDAYU PROC NEARPUSH AXPUSH DXMOV AH,02MOV DL,3EHINT 21HPOP DXPOP AXRETDAYU ENDPCODE ENDSEND START4.38 (上机题)按同余法产生一组随机数N(1<N<=50),并按N+50赋给45名同学的5门课程的成绩,要求编程实现计算每个同学的平均成绩,并根据平均成绩统计全班的成绩各等级的人数(A:90~100,B:80~89,C:70~79,D:66~69,E:60~65,F:60分以下),按下列格式显示:Total <总人数>A: <人数1>B: <人数2>C: <人数3>D: <人数4>E: <人数5>F: <人数6>算法流程图:调试问题、心得体会:通过该问题,进一步练习了通过流程图分析设计程序的功能,掌握了随机数产生,子函数调用,分支程序,循环程序,中断调用等过程,进行了调试,找出了数值无法转化为十进制并显示的问题,原因在于未定义临时存储单元。

微机原理上机实验(八+十二)实验报告 8086中断实验 步进电机实验

微机原理上机实验(八+十二)实验报告 8086中断实验 步进电机实验

微机原理上机实验报告实验八:8086中断实验实验十二:步进电机实验微机原理上机实验(八)实验报告实验八:8086中断实验一、实验目的1、了解8086内部响应中断的机制;掌握中断向量的作用。

2、利用实验仪上单脉冲、74HC244电路,不使用8259,实现一个中断实例。

3、复习本节实验内容,可尝试自行编写程序,做好实验准备工作,填写实验报告。

二、实验内容1、编制程序:拨动单脉冲开关,“”送给8086的INTR,触发中断;8086通过INTA信号,读取中断向量;8086计数中断次数,显示于F5区的数码管上注意:给INTR高电平信号,8086就会相应中断,所以实验开始前,保证单脉冲开关给8086低电平;中断程序中,加一个较长的延时程序,在中断结束前,有时间拨动单脉冲开关,恢复给8086低电平。

三、实验原理图本实验,通过F4区的8个拨动开关,给74HC244设定中断向量;本实验的中断向量是08H,即IN7-IN0位数据是00001000。

同学可以自定义中断向量,实验程序中处理中断向量部分程序作相应调整四、实验步骤1、连线说明:B4区:CS244、BLE ——C1区:GNDB4区:RD(IO区)——A3区:INTAA3区:INTR ——B2区:单脉冲B4区:JP57(D0..D7) ——A3区:JP41B4区:JP52(IN0..7) ——F4区:JP27(1..8)D3区:CS、A0、A1 ——A3区:CS1、A0、A1D3区:PC0、PC1 ——F5区:KL1、KL2D3区:JP20、B、C ——F5区:A、B、C2、运行程序3、实验开始前,保证单脉冲开关给8086低电平;运行程序;向下拨动开关(触发中断),立即向上拨动开关,产生一个“”,观察结果,数码管上显示的次数与拨动开关次数是否对应。

五、实验代码EXTRN InitKeyDisplay:NEAR, Display8:NEAR_STACK SEGMENT STACKDW 100 DUP(?)_STACK ENDS_DATA SEGMENT WORD PUBLIC 'DATA'BUFFER DB 8 DUP(?)Counter DB ?ReDisplayFlag DB 0_DATA ENDSCODE SEGMENTSTART PROC NEARASSUME CS:CODE, DS:_DATA, SS:_STACKMOV AX,_DATAMOV DS,AXMOV ES,AXNOPCALL InitKeyDisplay ;对键盘、数码管控制器8255初始化CALL WriIntverMOV Counter,0 ;中断次数MOV ReDisplayFlag,1 ;需要显示STI ;开中断START1: LEA SI,BufferCALL Display8CMP ReDisplayFlag,0JZ START1CALL LedDisplayMOV ReDisplayFlag,0JMP START1WriIntver PROC NEARPUSH ESMOV AX,0MOV ES,AXMOV DI,20HLEA AX,INT_0STOSWMOV AX,CSSTOSWPOP ESRETWriIntver ENDPLedDisplay PROC NEARMOV AL,CounterMOV AH,ALAND AL,0FHMOV Buffer,ALAND AH,0F0HROR AH,4MOV Buffer + 1,AHMOV Buffer + 2,10H ;高六位不需要显示MOV Buffer + 3,10HMOV Buffer + 4,10HMOV Buffer + 5,10HMOV Buffer + 6,10HMOV Buffer + 7,10HRETLedDisplay ENDPINT_0: PUSH DXPUSH AXMOV AL,CounterADD AL,1DAAMOV Counter,ALMOV ReDisplayFlag,1CALL LedDisplayDELAY: PUSH BXPUSH CXPUSH DIPUSH SIMOV CX,20DELAY1: LEA SI,BufferCALL Display8loop DELAY1POP SIPOP DIPOP CXPOP BXPOP AX六、实验思考题1.绘制本实验的详细实验电路图?微机原理上机实验(十二)实验报告实验十二:步进电机实验一、实验目的1、了解步进电机的基本原理,掌握步进电机的转动编程方法2、了解影响电机转速的因素有那些二、实验内容编写程序:使用F5区的键盘控制步进电机的正反转、调节转速,连续转动或转动指定步数;将相应的数据显示在F5区的数码管上。

北理(bit)微机原理上机软件实验报告

北理(bit)微机原理上机软件实验报告

北理(bit)微机原理上机软件实验报告微机原理软件编程实验报告班级:学号:姓名:⼀、实验题⽬1、IDE86集成开发环境的学习和运⽤2、编写程序求出10个数中的最⼤值和最⼩值,并以单步形式观察如何求出最⼤值、最⼩值。

3、求1到100 的累加和,并⽤⼗进制形式将结果显⽰在屏幕上。

要求实现数据显⽰,并返回DOS状态。

4、将存储器中的⼗个字节型⼗六进制有符号数按从⼩到⼤的顺序排序并按⼗六进制显⽰出来。

(56H、0ffH、78H、82H、12H、0、95H、58H、0bcH、34H)⼆、实验⽬的1、学习并掌握IDE86集成开发环境的使⽤包括编辑、编译、链接、调试与运⾏等步骤编辑:源程序的输⼊、修改。

编译:常见编译出现的语法错误的修改。

可执⾏⽂件。

运⾏:运⾏、断点设置、单步运⾏、单步跟踪;观察寄存器、标志寄存器值;观察数据存储器中的数据。

2、完成所有题⽬,提⾼编程能⼒,加深对理论课的理解。

三、实验内容1、⽂字叙述设计思路1.1编写程序求出10个数中的最⼤值和最⼩值由于⼀共有⼗个数,所以求其最⼤数或者最⼩数需要⽐较9次。

从数据段的段⾸开取数,先取两个数进⾏⽐较,⽐较完后取其中的最⼤数或者最⼩数放⼊数据段的第⼆位中。

再取第三位数与第⼆位数⽐较,如此循环,⽐较9次后在数据段最末位的就是我们需要的数。

1.2求1到100 的累加和,并⽤⼗进制形式将结果显⽰在屏幕上求和部分:1~100⼀共有100个数,所以需要做100次加法。

做加法要有两个数,第⼀个数是第i位的数值,第⼆个数是i-1位以及之前所有数的和,所以这两个数必须分别存放在两个寄存器⾥,并且两个数相加之后的所得的值,必须放在存放“和”的寄存器中,另外⼀个寄存器每做完⼀次加法⾃加1。

显⽰部分:我们所求得的最终数值在内存中是以16进制数存放的,但是由于结果只是⼀个数,我们可以把它的每⼀位所对应的ASCII码按照⼀定的顺序存放到⼀个数据段中,再以字符串形式直接输出。

1.3将存储器中的⼗个字节型⼗六进制有符号数按从⼩到⼤的顺序排序并按⼗六进制显⽰出来⽐较部分:题⽬⼀共给了我们10个数,如果要进⾏排序的话可以先把⼗个数中最⼤的数选出来,放到数据段的最后⼀个位置,接着再选出次⼤的数放到数据段的倒数第⼆位,如此循环到最后便可成功将所给的⼗个数排序好。

我的微原作业

我的微原作业

第七章作业1.设某系统中CPU的寄存器和存储器的内容如下:(20H)=3CH (21H)=00H (22H)=86H (23H)=0EHCS=2000H IP=0010H SS=1000H SP=0100HFLAGS=0240H此时执行INT 8(1)程序转向何处执行?(2)堆栈栈顶6个单元的地址为多少?其内容分别是多少?2.什么是中断向量?什么是中断向量表?若某外部可屏蔽中断的类型号为30H,其中断服务程序的入口地址为1020H:3040H,用8086汇编语言实现将该中断服务程序的入口地址装入中断向量表中。

3.某8086系统采用单片8259A管理外部中断,其中1个中断的类型号为0DH,则它的中断向量地址指针是多少?这个中断源应该接在8259A的哪个输入端上?若该中断服务程序的入口地址为D000H:3200H,则其向量区对应的4个单元的数值依次为多少?4.某8086最小系统中有两片8259A级联,主片8259A的一个端口地址为22H,中断类型号为08H~0FH,从片8259A的一个端口地址为A0H,中断类型号为70H~77H,主片的IR2引脚连接从片的INT引脚,采用非自动结束方式和非缓冲方式;中断请求信号为电平触发,主片屏蔽1R2,IR4,IR5以外的中断源,从片屏蔽1R0,IR3,IR6以外的中断源,画出硬件连线图并分别编写主片和从片的初始化程序。

第三章作业1、若AX=AF7CH,BX=BEE7H,CPU分别执行加法指令和减法指令后各状态标志位的值是什么?2、8086系统中存储器的逻辑地址和物理地址之间有什么关系?3、设段地址为4ABFH,物理地址为50000H,求有效地址是什么?4、设CS=3100H,DS=3140H,两个段的空间均为64K个单元,问两个段重叠区为多少个单元?两个段的段空间之和为多少?5、在8086系统中,已知当前SS寄存器的内容为2345H,SP的内容0100H,请说明该堆栈段在存储器中的物理地址的范围。

微机原理上机实验报告

微机原理上机实验报告

微机原理上机实验报告姓名:孙叠学号:12121700请完成课件"第四章汇编语言程序设计_2"第44页例子上机实验调试。

已知数据段和堆栈段的定义如下:DATA SEGMENTD1 DB -1,-3,5,6,-9 ;定义数组COUNT EQU $-D1 ; 数组元素个数RS DW ? ;存放负数个数DATA ENDSSTACK SEGMENT PARA STACK 'STACK'DB 256 dup (?)STACK ENDS请写出统计数据块D1中负数个数的程序count.asm,并写出使用masm, link 和debug 生成和调试count.exe的过程。

注:本题的流程图请画在纸上,需要交纸质报告。

答案:实验步骤1:任选熟悉的编辑环境,输入示例程序,取名为count.asm2:利用MASM进行汇编,3:用连接程序对生成的EX.OBJ文件进行连接:4.在debug下加载EX.EXE文件5. 在debug下调试、执行文件程序流程图:程序代码DATA SEGMENTD1 DB -1,-3,5,6,-9COUNT EQU $ -D1RS DW ?DATA ENDSSTACK SEGMENT PARA STACK 'STACK' DB 256 dup (?)STACK ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA, SS:STACKBEGIN: MOV AX,DATAMOV DS,AXMOV BX,OFFSET D1MOV CX, COUNTMOV DX,0LOP1: MOV AL,[BX]CMP AL,0JGE JUSINC DXJUS: INC BXLOOP LOP1MOV RS,DXMOV AH,4CHINT 21HCODE ENDSEND BEGIN调试步骤:C:\DOCUME~1\USER>e:E:\>cd\masmE:\masm>notepad count.asmE:\masm>masm countMicrosoft (R) Macro Assembler Version 5.00Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved.Object filename [count.OBJ]:Source listing [NUL.LST]:Cross-reference [NUL.CRF]:48738 + 394222 Bytes symbol space free0 Warning Errors0 Severe Errors-u1610:0000 B80F16 MOV AX,160F1610:0003 8ED8 MOV DS,AX1610:0005 BB0000 MOV BX,00001610:0008 B90500 MOV CX,00051610:000B BA0000 MOV DX,00001610:000E 8A07 MOV AL,[BX]1610:0010 3C00 CMP AL,001610:0012 7D01 JGE 00151610:0014 42 INC DX1610:0015 43 INC BX1610:0016 E2F6 LOOP 000E1610:0018 89160500 MOV [0005],DX1610:001C B44C MOV AH,4C1610:001E CD21 INT 21-rAX=0000 BX=0000 CX=0030 DX=0000 SP=0100 BP=0000 SI=0000 DI=0000 DS=15FF ES=15FF SS=1612 CS=1610 IP=0000 NV UP EI PL NZ NA PO NC 1610:0000 B80F16 MOV AX,160F-pAX=160F BX=0000 CX=0030 DX=0000 SP=0100 BP=0000 SI=0000 DI=0000 DS=15FF ES=15FF SS=1612 CS=1610 IP=0003 NV UP EI PL NZ NA PO NC 1610:0003 8ED8 MOV DS,AX-pAX=160F BX=0000 CX=0030 DX=0000 SP=0100 BP=0000 SI=0000 DI=0000 DS=160F ES=15FF SS=1612 CS=1610 IP=0005 NV UP EI PL NZ NA PO NC 1610:0005 BB0000 MOV BX,0000-pAX=160F BX=0000 CX=0030 DX=0000 SP=0100 BP=0000 SI=0000 DI=0000 DS=160F ES=15FF SS=1612 CS=1610 IP=0008 NV UP EI PL NZ NA PO NC 1610:0008 B90500 MOV CX,0005-pAX=160F BX=0000 CX=0005 DX=0000 SP=0100 BP=0000 SI=0000 DI=0000 DS=160F ES=15FF SS=1612 CS=1610 IP=000B NV UP EI PL NZ NA PO NC 1610:000B BA0000 MOV DX,0000-pAX=160F BX=0000 CX=0005 DX=0000 SP=0100 BP=0000 SI=0000 DI=0000 DS=160F ES=15FF SS=1612 CS=1610 IP=000E NV UP EI PL NZ NA PO NC 1610:000E 8A07 MOV AL,[BX] DS:0000=FF-pAX=16FF BX=0000 CX=0005 DX=0000 SP=0100 BP=0000 SI=0000 DI=0000 DS=160F ES=15FF SS=1612 CS=1610 IP=0010 NV UP EI PL NZ NA PO NC 1610:0010 3C00 CMP AL,00-pAX=16FF BX=0000 CX=0005 DX=0000 SP=0100 BP=0000 SI=0000 DI=0000 DS=160F ES=15FF SS=1612 CS=1610 IP=0012 NV UP EI NG NZ NA PE NC 1610:0012 7D01 JGE 0015-pAX=16FF BX=0000 CX=0005 DX=0000 SP=0100 BP=0000 SI=0000 DI=0000 DS=160F ES=15FF SS=1612 CS=1610 IP=0014 NV UP EI NG NZ NA PE NC 1610:0014 42 INC DX-pAX=16FF BX=0000 CX=0005 DX=0001 SP=0100 BP=0000 SI=0000 DI=0000 DS=160F ES=15FF SS=1612 CS=1610 IP=0015 NV UP EI PL NZ NA PO NC 1610:0015 43 INC BX-pAX=16FF BX=0001 CX=0005 DX=0001 SP=0100 BP=0000 SI=0000 DI=0000 DS=160F ES=15FF SS=1612 CS=1610 IP=0016 NV UP EI PL NZ NA PO NC 1610:0016 E2F6 LOOP 000E-pAX=16F7 BX=0005 CX=0000 DX=0003 SP=0100 BP=0000 SI=0000 DI=0000 DS=160F ES=15FF SS=1612 CS=1610 IP=0018 NV UP EI PL NZ NA PE NC 1610:0018 89160500 MOV [0005],DX DS:0005=0000-pAX=16F7 BX=0005 CX=0000 DX=0003 SP=0100 BP=0000 SI=0000 DI=0000 DS=160F ES=15FF SS=1612 CS=1610 IP=001C NV UP EI PL NZ NA PE NC 1610:001C B44C MOV AH,4C-pAX=4CF7 BX=0005 CX=0000 DX=0003 SP=0100 BP=0000 SI=0000 DI=0000 DS=160F ES=15FF SS=1612 CS=1610 IP=001E NV UP EI PL NZ NA PE NC 1610:001E CD21 INT 21-pProgram terminated normally-在书写程序段时一定要注意该固定部分的书写形式,同时要注重格式的书写。

微机原理汇编语言的上机过程 实验报告

微机原理汇编语言的上机过程 实验报告

微机原理技术与接口实验报告学院:专业:班级:姓名:学号:汇编语言程序的上机过程实验目的通过简单地操作了解汇编语言程序的基本内容,体会汇编语言的运行,为以后的实验打下一定的基础。

实验原理及操作步骤一、上机环境❖要运行调试汇编语言程序,至少需要以下程序文件:▪编辑程序:或其他文本编辑工具软件,用于编辑源程序。

▪汇编程序:MASM.EXE,用于汇编源程序,得到目标程序。

▪连接程序:LINK.EXE,用于连接目标程序,得到可执行程序。

▪调试程序:DEBUG.EXE,用于调试可执行程序。

二、上机过程❖汇编语言程序上机操作包括:编辑、汇编、连接和调试几个阶段。

1.编辑源程序❖用文本编辑软件创建、编辑汇编源程序。

常用编辑工具有:、记事本、Word等。

❖无论采用何种编辑工具,生成的文件必须是纯文本文件,所有字符为半角,且文件扩展名为.asm(文件名不分大小写,由1~8个字符组成)。

2.汇编❖用汇编工具对上述源程序文件(.asm)进行汇编,产生目标文件(.obj)等文件。

❖汇编程序的主要功能是:检查源程序的语法,给出错误信息;产生目标程序文件;展开宏指令。

❖汇编过程如下:❖在DOS状态下,输入命令:MASM MYFILE.ASM(回车),即启动了汇编程序。

❖此命令执行后,会出现下面的3行信息,依次按回车键(即选择默认值)即可建立3个输出文件,其扩展名分别为:.OBJ(目标文件),.LST(列表文件)和.CRF(交叉引用文件)。

Object Filename [MYFILE.OBJ]:Source Listing [Nul.LST]:Cross Reference [Nul.CRF]:依次按回车键,进行选择后,汇编程序就对汇编源程序进行汇编。

如果汇编过程中发现有语法错误,则屏幕上会显示出错语言的位置和出错的类型。

此时,需要进行修改,然后再进行汇编。

❖如此进行,直至汇编无错误,得到目标文件为止。

3.连接❖汇编产生的目标文件(.obj)并不是可执行的程序,还要用连接程序把它转换为可执行的EXE文件。

西电微机原理上机作业完整版

西电微机原理上机作业完整版

上机作业(一)指令SRC寻址方式SRC的地址AX推算值AX实际值MOV AX, CX 寄存器寻址0005 0005 MOV AX, 500H 立即寻址0500 0500 MOV AX, TABLE 直接寻址1541:0004 A5A4 A5A4 MOV AX, ES:[BX] 寄存器间接寻址1542:0004 C5C4 C5C4 MOV AX, [BX+05H] 寄存器相对寻址1541:0009 AAA9 AAA9 MOV AX, SS:[BX]+03H 寄存器相对寻址153F:0007 B8B7 B8B7 MOV AX, TABLE [BX] 寄存器相对寻址1541:0008 A9A8 A9A8 MOV AX, 07H [BX] 寄存器相对寻址1541:000B ACAB ACAB MOV AX, [BP] 寄存器间接寻址153F:0003 B4B3 B4B3 MOV AX, TABLE [BP] 寄存器相对寻址1541:0007 A8A7 A8A7 MOV AX, 08H [BP] 寄存器相对寻址153F:000B BCBB BCBB MOV AX, [BP+06H] 寄存器相对寻址153F:0009 BAB9 BAB9 MOV AX, DS:[BP+03H] 寄存器相对寻址1541:0006 A7A6 A7A6 MOV AX, [BP]+05H 寄存器相对寻址153F:0008 B9B8 B9B8 MOV AX, ES: [SI+03H] 寄存器相对寻址1542:0005 C6C5 C6C5 MOV AX, [DI+06H] 寄存器相对寻址1541:0007 A8A7 A8A7 MOV AX, [DI]+05H 寄存器相对寻址1541:0006 A7A6 A7A6MOV AX, TABLE [SI] 寄存器相对寻址1541:0006 A7A6 A7A6MOV AX, [SI] 寄存器间接寻址1541:0002 A3A2 A3A2 MOV AX, TABLE [DI] 寄存器相对寻址1541:0005 A6A5 A6A5 MOV AX, [SI]+05H 寄存器相对寻址1541:0007 A8A7 A8A7 MOV AX, [BX] [DI+01H] 基址变址且相对寻址1541:0006 A7A6 A7A6 MOV AX, [BX] [SI]+03H 基址变址且相对寻址1541:0009 AAA9 AAA9 MOV AX, TABLE [BX] [SI] 基址变址且相对寻址1541:000A ABAA ABAA MOV AX, ES:[BX] [DI] 基址变址寻址1542:0005 C6C5 C6C5 MOV AX, [BP] [DI+02H] 基址变址且相对寻址153F:0006 B7B6 B7B6 MOV AX, TABLE [BP] [DI] 基址变址且相对寻址1541:0008 A9A8 A9A8 MOV AX, ES:[BP] [SI] 基址变址寻址1542:0005 C6C5 C6C5 MOV AX, [BP] [SI+05H] 基址变址且相对寻址153F:000A BBBA BBBA MOV AX, 03H [BP] [DI] 基址变址且相对寻址153F:0007 B8B7 B8B7 MOV AX, [BP] [SI] 基址变址寻址153F:0005 B6B5 B6B5 MOV AX, [BP+02H] [DI+03H] 基址变址且相对寻址153F:0009 BAB9 BAB9MOV AX, TABLE [BP+02H][DI+03H]基址变址且相对寻址1541:000D AEAD AEAD1.编写求十进制数12678532与21736543之和的程序,并将和以十进制数的形式送屏幕显示。

32位微机原理上机实验报告:基本IO接口电路设计实验

32位微机原理上机实验报告:基本IO接口电路设计实验

西北工业大学明德学院实验报告实验项目微机原理及应用班级 121204姓名田家豪王辰硕学号 ****** ******指导老师伍明高时间 2015-4-14实验题目基本I/O接口电路设计实验实验目的(1) 掌握基本I/O接口电路的设计方法。

(2) 熟练汇编语言I/O端口操作指令的使用。

实验内容利用三态缓冲器74LS245、锁存器74LS374设计微机总线和外部设备的数据通道,实现微机对外部输入数据的读取和对输出数据的输出。

用开关及LED显示单元的开关和数据灯作为输入和输出显示设备,将读到开关的数据显示在数据灯上。

实验原理1.输入接口设计输入接口一般用三态缓冲器实现,外部设备输入数据通过三态缓冲器,通过数据总线传送给微机系统。

74LS245是一种8通道双向的三态缓冲器。

DIR引脚控制缓冲器数据方向,DIR为1表示数据由A[7:0]至B[7:0],DIR为0表示数据由B[7:0]至A[7:0]。

G引脚为缓冲器的片选信号,低电平有效。

2.输出接口设计输出接口一般用锁存器实现,从总线送出的数据可以暂存在锁存器中。

74LS374是一种8通道上沿触发锁存器。

D[7:0]为输入数据线,Q[7:0]为输出数据线。

CLK引脚为锁存控制信号,上升沿有效。

当上升沿到时,输出数据线锁存输入数据线上的数据。

OE引脚为锁存器的片选信号,低电平有效。

3.输入输出接口设计用74LS245和74LS374可以组成一个输入输出接口电路,既实现数据的输入又实现数据的输出,输入输出可以占用同一个端口。

是输入还是输出用总线读写信号来区分。

总线读信号IOR 和片选信号CS相“或”来控制输入接口74LS245的使能信号G。

总线写信号IOW和片选信号CS 相“或”来控制输出接口74LS374的锁存信号CLK。

实验系统中基本输入输出单元就实现了两组这种的电路。

实验说明及步骤本实验实现的是将开关K[7:0]的数据通过输入数据通道读入CPU的寄存器,然后再通过输出数据通道将该数据输出到数据灯显示,该程序循环运行,直到按动键盘上任意按键再退出程序。

微机原理上机实验(六+十)实验报告 74HC138译码器实验 16x16点阵显示实验

微机原理上机实验(六+十)实验报告 74HC138译码器实验 16x16点阵显示实验

微机原理上机实验报告实验六:74HC138译码器实验实验十:LED 16x16点阵显示实验微机原理上机实验(六)实验报告实验六:74HC138译码器实验一、实验目的1、掌握74HC138译码器的工作原理,熟悉74HC138译码器的具体运用连接方法,了解74HC138是如何译码的。

2、认真预习本节实验内容,尝试自行编写程序,填写实验报告二、实验内容1、编写程序:使用8255的PC0、PC1、PC2控制74HC138的数据输入端,通过译码产生8选1个选通信号,轮流点亮8个LED指示灯。

2、运行程序,验证译码的正确性。

三、实验原理图四、实验步骤1、连线说明:F7区:A、B、C ——D3区:PC0、PC1、PC2F7区:G1、G2A、G2B ——C1区:VCC、GND、GNDF7区:JP63 ——F4区:JP18(LED指示灯)D3区:CS、A0、A1 ——A3区:CS1、A0、A12、调试程序,查看运行结果是否正确五、实验代码Con_8255 EQU 0273H ;8255控制口PC_8255 EQU 0272H ;8255 PC口_STACK SEGMENT STACK ;设置堆栈段DW 100 DUP(?)_STACK ENDSCODE SEGMENTSTART PROC NEARASSUME CS:CODE, SS:_STACKMOV DX,Con_8255MOV AL,80HOUT DX,AL ;8255初始化,PC口作输出用,向8255的控制口输入置位/复位控制字10000000B,PC0~PC7全部复位MOV DX,PC_8255MOV AL,0START1: OUT DX,AL 将00000000B输入8255的PC口CALL Delay 延时INC AL AL加一JMP START1 循环Delay PROC NEAR ;延时Delay1: XOR CX,CX ;CX清零LOOP $ 当前位置循环一次后推出RETDelay ENDPSTART ENDPCODE ENDSEND START六、实验思考题1.在应用系统中,74HC138通常用来产生片选信号,请读者考虑一下,应如何处理?将输入信号转换为三位无符号二进制数,将转换后的数据由低到高分别输入74HC138的A、B、C口,即可实现对最多8的模块的片选功能。

初一微机上机试题及答案

初一微机上机试题及答案

初一微机上机试题及答案一、选择题(每题2分,共10分)1. 计算机的中央处理器(CPU)主要负责什么?A. 存储数据B. 处理数据C. 显示数据D. 传输数据答案:B2. 在计算机系统中,RAM表示什么?A. 随机存取存储器B. 只读存储器C. 可编程只读存储器D. 硬盘存储器答案:A3. 以下哪个软件不是操作系统?A. WindowsB. macOSC. LinuxD. Photoshop答案:D4. 计算机病毒主要通过什么方式传播?A. 空气B. 网络C. 声音D. 触觉答案:B5. 在Word文档中,要将文本加粗,应该使用哪个快捷键?A. Ctrl+BB. Ctrl+IC. Ctrl+UD. Ctrl+P答案:A二、填空题(每题2分,共10分)1. 计算机的硬件系统主要由________、内存、输入设备和输出设备组成。

答案:中央处理器2. 计算机的存储设备分为________和外部存储设备。

答案:内部存储设备3. 在Excel中,要对数据进行排序,可以使用“数据”菜单下的________功能。

答案:排序4. 在PowerPoint中,要插入一张新幻灯片,可以使用快捷键________。

答案:Ctrl+M5. 计算机网络按照覆盖范围可以分为局域网(LAN)、城域网(MAN)和________。

答案:广域网(WAN)三、简答题(每题5分,共15分)1. 请简述计算机的工作原理。

答案:计算机的工作原理基于冯·诺依曼体系结构,主要包括输入、处理、存储和输出四个部分。

用户通过输入设备输入数据,中央处理器(CPU)对数据进行处理,处理后的数据存储在内存或硬盘中,最后通过输出设备展示处理结果。

2. 什么是二进制数?它在计算机中的作用是什么?答案:二进制数是一种仅使用0和1两个数字的计数系统。

在计算机中,所有的数据最终都转换为二进制形式进行存储和处理,因为计算机的基本组件如晶体管只能处理两种状态:开和关,这与二进制的0和1相对应。

通信工程专业微机原理与应用上机考试题目及答案代码

通信工程专业微机原理与应用上机考试题目及答案代码

1、(80分)(1)编程将D1、D2两个存储单元中的无符号字节数相加,结果放到D3存储单元(结果不超过255)。

(2)设8255A的A口接8个发光二极管,B口接8个开关,要求编一程序使8个开关控制对应的发光二极管的亮和灭。

已知8255A的端口地址从300H-303H。

2、(80分)(1)编程将D1、D2两个存储单元中的无符号字节数相减,结果放到D3存储单元(结果不超过255)。

(2)设8255A的B口接8个发光二极管,A口接8个开关,要求编一程序使8个开关控制对应的发光二极管的亮和灭。

已知8255A的端口地址从300H-303H。

3、(80分)(1)假设0~9的平方值存放在DATA1开始的内存中,取出“3”所对应的平方值。

(2)设8255A的C口的8根数据线接8个发光二极管,A口的8根数据线接8个开关,要求编一简单程序使8个开关控制对应的发光二极管的亮和灭。

已知8255A的端口地址从300H-303H。

4、(80分)(1)设8255A的C口的8根数据线接8个发光二极管,A口的8根数据线接8个开关,要求编一简单程序使8个开关控制对应的发光二极管的亮和灭。

已知8255A的端口地址从300H-303H。

(2)X、Y、Z都为字节定义的数据,将X+Y+Z将结果放在SUM单元中(结果不超过255)。

5、(80分)(1)设8255A的B口接8个发光二极管,C口接8个开关,要求编一程序使8个开关控制对应的发光二极管的亮和灭。

已知8255A的端口地址从300H-303H。

(2)X、Y、Z都为字节定义的数据,将X+Y-Z将结果放在SUM单元中(结果不超过255)。

6、(80分)(1)8253的计数器2工作在方式0,设计数初值为4,输出OUT2接发光二极管,CLK2接手动脉冲信号,请问,按几下手动脉冲发生器使发光二极管熄灭?电路连接如下图所示。

(2)编程将缓冲区buf1中的8个字数据传送到buf2开始的缓冲区中。

7、(80分)(1)8253的计数器1工作在方式3,设计数初值为4,输出OUT1接发光二极管,CLK1接手动脉冲信号,按几下手动脉冲发生器,可改变发光二极管的状态?电路连接如下图所示。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.程序一
程序二 程序三 程序四:
程序五:
4.18
data segment KEYBUFFER DB 100 DB ? DB 100 DUP(?) STRING1 DB 'Please input decimal data:$'
data ends
stack segment STACK'STACK' DW 100H DUP(?)
stack segment DW 100H dup(0)
stack ends
code segment start:
mov ax, data mov ds, ax mov es, ax
MOV CX,N LEA SI,BUFFER MOV AX,1234H
LP: MOV [SI],AX SUB AX,1 INC SI INC SI LOOP LP
CX=0?

输出转化后的字符串

按键 ESC 是
返回主菜单
程序二
开始
输入字符串,放 在 BUFFER 中
取出字符串长, 即 CX=BUFFR+1
将指针指向第 一个字符,即 SI=BUFFER+2
SI≥SI+1


[SI]与[SI+1]交换内容
SI=SI+1
否 CX=0? 是
将[SI]放入 DL
AH=02H,调用 INT21H 显示
TOP LABEL WORD stack ends
code segment ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
start: mov ax, data mov ds, ax mov es, ax mov ax,STACK mov ss,ax lea sp,TOP
字符串(以回车结束),找出最大值后按下列格式在屏幕上显示:
<原字符串>
The maximum is <最大值>
按任意键重做;按 ESC 键返回主菜单。
(3)按数字键 3,完成输入数组的排序。用户输入一组十进制数值(小于 255),然后变换
成十六进制数,并按递增方式进行排序,按下列格式在屏幕上显示:
<原数值串>
结束
心得体会: 1. 此程序主要是采用冒泡排序法实现的,采用双重循环的排序:从后往前,每 两个数据相比较,当前者大于后者,两者交换位置,否则不变,这样,经过 N-1 次, 就将最小的数取出来。对剩下的 N-1 的数据,重复上面的步骤,将次小值 放到了第二个位置,依次类推,进行 N-1 次比较,可将数据从小到大排列好。 2. 原序号的显示。未排序前将原序列复制一份放在另一个存储单元 OUTPUT 中, 每次内循环结束后,将取得的数与 OUTPUT 中的数循环比较,相同时,可得其序 号为 N+1-CX,这样就得出了排序后的数在排序前的序号。 3. 采用了尖括号显示,空格显示,回车显示等子程序。 4. 在编程中,采用例 4.5 时,没有将字节换成字,导致不匹配,无法正常排序。 下图为运行结果:(以十个数为例)
现场保护 (保护 CX,SI)
将指针指向最后一个数,并 将最后一个数放在 AX 中
AX>[SI-1]
f否 是
将 AX 与[SI-1]互换 否
SI=SI-1 CX=CX-1
CX==0?
是 在 AX 中得到最小的数
CX 不为 0
将 AX 中的数与 OUTPUT 中的数相 比较,相同时得到原序号
调用子程序显示 弹出 CX,SI
环时循环 5 次,求出每个同学的 5 门成绩之和,大循环是在求平均数 45 次。 3. 比较每个同学的成绩,利用条件跳转到相应的等级,在对应的等级加 1,这
样得出了每个等级的人数。 4. 在编程中,没有定义临时存储单元,导致无法显示。在数据段定义存储单
元后,解决了该问题。
运行结果:
4.39 编写程序实现下列 5 项功能,通过键盘输入 1~5 进行菜单式选择:
输入 7、8 位数值
重置系统时间
输出系统时间

按键 ESC

返回主菜单
心得体会: 1. 该程序共有五个功能,是利用跳转表实现的(例 4.25)。再通过调用各个功能 的子程序,来跳转实现功能。执行完后,根据选择来决定重新执行还是退出程序。 2. 由于总程序的功能较多,所以要申请好地址空间,避免重复,无法显示。 3. 在字符串显示时,未在其后加”$”符号,导致显示出错。 4. 在执行功能四时,由于电脑系统时间无法改变,导致显示出错。 运行结果: 1. 主程序:
<新数值串>
按任意键重做;按 ESC 键返回主菜单。
(4)按数字键 4,完成时间显示。首先提示用户对时,即改变系统的定时器 HH:MM:SS(以
冒号间隔,回车结束),然后在屏幕的右上角显示出时间:HH:MM:SS。
按任意键重新对时;按 ESC 键返回主菜单。
(5)按数字键 5,结束程序的运行,返回操作系统。
MOV CX,N LEA SI,BUFFER LEA DI,OUTPUT L0: MOV AX,[SI] ADD SI,2 MOV [DI],AX ADD DI,2 LOOP L0
MOV CX,N+1 DEC CX
LEA SI,OUTPUT MOV DX,N-1 SHL DX,1 ADD SI,DX LP1: PUSH CX PUSH SI
(1)按数字键 1,完成将字符串的小写字母变换成大写字母。用户输入由英文大写字母或
数字 0~9 组成组成的字符串(以回车结束),变换后在屏幕上显示:
<原字符串> 例如:abcdgyt0092
<新字符串>
ABCDGTY0092
按任意键重;按 ESC 键返回主菜单。
(2)按数字键 2,完成在字符串中找最大值。用户输入由英文小写字母或数字 0~9 组成的
JMP TRANSF_OK TRANSF_ERR:
MOV BX,-1 TRANSF_OK:
POP SI POP DX POP CX RET TRANS10TO16 ENDP
code ends end start
4.37
N=100 data segment BUFFER DW N DUP(?) OUTPUT DW N DUP(?) DECIMAL DB 5 DUP(?) data ends
LP2: MOV Ax,[SI] CMP Ax,[SI-2] JAE NOXCHG XCHG Ax,[SI-2] MOV [SI],Ax
NOXCHG: DEC SI DEC SI LOOP LP2
CALL DISPAX CALL KONG CALL ZUO CALL XUHAO CALL YOU CALL DISPCR POP SI POP CX LOOP LP1 mov ax, 4c00h ; exit to operating system. int 21h
将十进制转换为十六进制 (调用子程序 TRANS10TO16)
(例题 4.12)
显示十六进制内容 (调用子程序 DISPAX)
(例题 3.14)
结束
心得体会:
1. 该题的主要思路就是将十进制数转化为十六进制数,并显示出来,所以可以 用到例 4.12 和例 3.14 的子程序,又另外加了光标换行子程序 DISPCR,调用 INT 21H 就可实现。 2.十进制变换十六进制的算法为 y=10 x (10 x (10 x (10 x X5+X4)+X3)+X2)+X1, X1 为最低位,X5 为最高位,据此可以编写出子程序 TRANS10TO16。 3. 在调试过程中,出现了子程序入口参数和出口参数和主程序对不上,经过 single step 调试,T DISPCR ENDP TRANS10TO16 PROC NEAR PUSH CX PUSH DX PUSH SI XOR AX,AX XOR CX,CX MOV CL,[SI] INC SI MOV AL,[SI] INC SI SUB AL,30H DEC CX JCXZ TRANSF2 MOV BX,10 TRANSF1: MUL BX JC TRANSF_ERR MOV DL,[SI] INC SI SUB DL,30H ADD AL,DL ADC AH,0 JC TRANSF_ERR LOOP TRANSF1 MOV BX,0 TRANSF2:
下图为运行结果: 0000 表示变换结果正确,即输入的正整数在 0~65535 之间; FFFF 表示输入的正整数超出了范围。
4.37 编写程序实现,将缓冲区 BUFFER 中的 100 个字按递增排序,并按下列格式顺序显 示:
数据 1 <原序号> 数据 2 <原序号>……
开始
在 BUFFER 中产生 100 个字, 复制一份放在 OUTPUT 中
否 按键 ESC

返回主菜单
程序三
开始
输入数值串,并回显 统计数据个数,并 存入 CX
依次比较两个数的大小
前一个大于 后一个数



两个数调换次序
CX=0? 是
将排好序的数值串转 化为十六进制
调用 DISPAX 显示

按键 ESC
是 返回主菜单
程序四
开始 显示提示字符串 输入 1、2 位数值
输入 4、5 位数值
4.38 按同余法产生一组随机数 N(1<N≤50),并按 N+50 赋给 45 名同学的 5 门课程成绩, 要求编程实现计算每个同学的平均成绩,并根据平均成绩统计全班同学的成绩各等级的人数 (A:90~100, B:80~89; C:70~79; D:66~69; E:60~65; F:60 以下),按下列要求显示:
相关文档
最新文档