77范文网 - 专业文章范例文档资料分享平台

北邮微机原理软件实验报告(4)

来源:网络收集 时间:2019-03-28 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

MOV AH,1 ;保存需要判断大小的字符 INT 21H CMP AL,39H JA ERO CMP AL,30H JB ERO

MOV [BX],AL MOV AH,1 INT 21H CMP AL,39H JA ERO CMP AL,30H JB ERO

MOV [BX+1],AL MOV AH,1 INT 21H

CMP AL,0DH JZ FINISH CMP AL,' ' JZ RE JMP ERO RE:

INC BX INC BX JMP RE1

ERO: MOV DX,OFFSET STR4 MOV AH,09H INT 21H

MOV DX,OFFSET STR3 MOV AH,09H INT 21H

MOV DX,OFFSET STR4 MOV AH,09H INT 21H JMP RE1 FINISH:

MOV [BX+2],AL RET INPUT ENDP ;比较大小子程序 COMPARE PROC

LEA BX,BUFFER MOV AH,[BX] MOV AL,[BX+1]

;判断是否符合条件 ;保存结束符 RE2:

ADD BX,2 ;比较高位 CMP AH,[BX] JZ RE3 JB RE4

MOV AH,[BX] MOV AL,[BX+1] JMP RE4

RE3: ;高位相等,比较低位 CMP AL,[BX+1] JB RE4

MOV AL,[BX+1] JMP RE4

RE4: MOV CL,[BX+2] CMP CL,0DH JNE RE2

MOV MIN,AX RET

COMPARE ENDP ;输出子程序

OUTPUT PROC

MOV AH,09H

MOV DX,OFFSET STR4 INT 21H

MOV AH,09H

MOV DX,OFFSET STR2 INT 21H

LEA SI,MIN+1 MOV DL,[SI] MOV AH,02H INT 21H

MOV SI,OFFSET MIN MOV DL,[SI] MOV AH,02H INT 21H RET

OUTPUT ENDP CODE ENDS

END START

四、程序流程图

;判断是否结束 ;保存最小值 ;先输出高位 ;再输出低位 开始 结束程序 程序初始化 显示输出最小值 调用输入子程序 调用显示子程序 显示提示语 返回主程序 报错提示重新输入 否 输入字符判断是否为0~9 是 是否结束 否 继续输入字符判断 空格 比较低位 是 保存较小的数 否 比较高位是否相等 否 否 输入结束符或间隔符 提取前一个数与后一个数比较 回车 返回主程序 调用比较子程序

五、程序运行结果

六、预习题:

1.如何将输入的两个字符(0 -- 9)变为十进制或二进制数?

答:可以通过将字符的减去30H再乘以10D,加上个位的值(同样要将ASCII码减去30H变为十进制数)即可得两个字符的十进制数。

2.如何将选出的最小值(二进制或十进制)变为 ASCII 码再进行显示?

答:选出最小十进制数后可以通过除十得到余数和商,商为高位,余数为低位,分别对这两个加30H即可到得其ASCII码。

3.你觉得采用二进制运算还是十进制运算更适合于这个实验?

答:个人觉得采用二进制运算更简便,这样可以直接使用ASCII码比较,使问题简化。

七、心得体会: 做这个实验的过程中出了一些错误,最开始的代码在运行时输出乱码,这个问题困扰了我很久。后来我通过单步调试,发现是因为调用子程序时没有注意现场保护,几个寄存器被多次赋值,导致结果显示时不仅不能输出正确结果,程序还跑飞了。所以比较和显示时都出现了问题。经过这次实验,我发现汇编编程过程中一定要注意,在子程序调用时要做好现场保护,毕竟汇编不像高级语言,子程序压栈出栈的过程对编程者并不是透明的。

实验四 子程序设计 一、实验目的:

1.进一步掌握子程序设计方法;

2.进一步掌握基本的 DOS 功能调用.

二、实验内容:

1.从键盘上输入某班学生的某科目成绩.输入按学生的学号由小到大的顺序输入. 2.统计检查每个学生的名次. 3.将统计结果在荧幕上显示.

4.为便于观察,输入学生数目不宜太多,以不超过一屏为宜.输出应便于阅读.尽可能考虑美观. 5.输入要有检错手段

三、源程序

DATA SEGMENT BUFFER DB 100 ;定义缓冲区,最多允许输入100个字符(包括回车) DB ? ;存放实际输入的字符数(不包括回车) DB 100 DUP (?) ;存放输入的字符串 STR1 DB 'Input the score of the students:',0DH,0AH,'$'

STR2 DB 0DH,0AH,'Error! Please input the score again:',0DH,0AH,'$' VAR1 DW ? VAR2 DW ? FLA DB ?

NUM DB 100 DUP(?) DATA ENDS

STACK SEGMENT STACK 'STACK' DB 100 DUP ('s') STACK ENDS

CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV AH,09H ;输出提示语 MOV DX,SEG STR1 MOV DS,DX MOV DX,OFFSET STR1 INT 21H

INPUT: MOV DX,SEG BUFFER ;输入成绩 从BUFFER+2开始的单元存放 MOV DS,DX MOV DX,OFFSET BUFFER MOV AH,0AH INT 21H LEA DI,NUM ;DI指向存放区域首地址

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库北邮微机原理软件实验报告(4)在线全文阅读。

北邮微机原理软件实验报告(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/548943.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: