首页 2_字符及字符串输入输出与顺序程序设计实验

2_字符及字符串输入输出与顺序程序设计实验

举报
开通vip

2_字符及字符串输入输出与顺序程序设计实验2_字符及字符串输入输出与顺序程序设计实验 2.2字符及字符串输入输出与顺序程序设计实验 班级:软件1101 学号:04113033 姓名:岳彦利 1. 实验目的 1、学习和掌握字符及字符串的输入输出方法。 2、掌握顺序程序的设计方法。 3、进一步掌握调试工具的使用方法。 2. 实验预习要求 1、复习DOS功能调用中用于字符输入(功能号01H)、字符输出(功能号02H)、字符串输入(功能号 为0AH)以及字符串输出(功能号09H)的调用方法(详见教材5.5.6)。 2、复习BCD码运算调整指令...

2_字符及字符串输入输出与顺序程序设计实验
2_字符及字符串输入输出与顺序程序 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 实验 2.2字符及字符串输入输出与顺序程序设计实验 班级:软件1101 学号:04113033 姓名:岳彦利 1. 实验目的 1、学习和掌握字符及字符串的输入输出方法。 2、掌握顺序程序的设计方法。 3、进一步掌握调试工具的使用方法。 2. 实验预习要求 1、复习DOS功能调用中用于字符输入(功能号01H)、字符输出(功能号02H)、字符串输入(功能号 为0AH)以及字符串输出(功能号09H)的调用方法(详见教材5.5.6)。 2、复习BCD码运算调整指令。 3、根据“2.2.3 实验 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 ”中给出的源程序框架编写完整的源程序,以便实验时调试。 3.实验内容 从键盘输入两个一位十进制数,计算这两个数之和,并将结果在屏幕上显示出来。 1、 问题分析 比如使用功能号为01H的用于实现单个字符输入的DOS功能调用接收从键盘输入的两个十进制数8和6,这时计算机内部得到的是这两个数的ASCII码值38H和36H。由于数字0,9的ASCII码值与其代表的数值之间相差30H,因此将其减去30H即可得到以非压缩型BCD数形式表示的十进制数08H和06H,使用ADD指令对它们进行相加后结果为0EH(00001110B),显然需要用非压缩型BCD数加法调整指令对ADD的运算结果进行调整,调整后得到两个非压缩型BCD数01H和04H,将它们分别加上30H后变为其对应的ASCII码31H(1的ASCII码)和34H(4的ASCII码),然后调用功能号为02H用于单个字符输出的DOS功能调用将它们显示出来。综上所述,需要考虑以下问题。 (1)从键盘输入一个一位十进制数的方法 通过功能号为1的DOS功能调用实现从键盘输入一个字符,格式如下: MOV AH, 01H INT 21H ;此时程序等待用户键入,键入字符的ASCII码值存在AL中 SUB AL, 30H ;减去30H后得到键入数字所代表的数值 (2) 提示信息字符串的显示 通过功能号为9的DOS功能调用实现字符串显示,注意字符串的最后一个字符必需为’$’。指令格式如下: MOV DX, OFFSET INFOR1 ;INFOR1为在数据段中定义的要显示的字符串 MOV AH, 09H INT 21H (2)非压缩型BCD数加法调整指令的使用 设从键盘输入的数值已存放在寄存器AL, BL中,可用下列程序完成数据相加和调整操作: XOR AH,AH ADD AL, BL AAA ;执行该指令后,AH中为和的十位上的数字,AL中为个位上的数字 请读者考虑,为什么要使用指令“XOR AH,AH”,不用行否, (3)计算结果的显示 执行完AAA指令后,只需分别将AH(十位上的数值)和AL(个位上的数值)加上30H,并依次调用功能号为2的DOS功能调用来显示字符。 2、 程序调试 源程序编写完成后,先静态检查,无误后,对源程序进行汇编和连接,生成可执行文件。在DOS 命令提示符下运行该程序,分析运行结果是否正确。若结果不正确,使用DEBUG对其进行调试。 4.我的程序: datasegment infor1 db "please input the first data(<10):$" infor2 db 0ah,0dh,"please input the second data(<10):$" infor3 db 0ah,0dh,"the result is:$"; dataends codesegment assume cs:code,ds:data start: mov ax,data mov ds,ax ;显示提示信息1 mov dx,offset infor1 mov ah,09h int 21h ;从键盘输入一个数字 mov ah,01h int 21h sub al,30h ;将第一个数字放进bl里边 mov bl,al ;显示提示信息2并且输入第二个数字放入al里边 mov dx,offset infor2 mov ah,09h int 21h mov ah,01h int 21h sub al,30h ;两个数字相加结果放入ax里边 xor ah,ah add al,bl aaa push ax ;第三个提示信息输出 mov dx,offset infor3 mov ah,09h int 21h pop ax push ax mov dl,ah add dl,30h mov ah,02h ;cmp ah,'0' ;jbe other ;jmp low int 21h pop ax mov dl,al add dl,30h mov ah,02h int 21h mov ah,4ch int 21h code ends end start 5.我选做的题: 设a,b,c,d为四个压缩型BCD数,它们被存放在内存dbcd开始的4个存储单元中,计算a+b+c+d,并将 结果在屏幕上显示出来(注意压缩型BCD数的表示方法:十进制数38表示成压缩型BCD数时应写成38H)。 程序编写完成并运行正确后,打开源程序,改变a,b,c,d的内容,然后重新进行汇编、连接并运行程序, 检查程序运行结果与手工计算结果是否相符。下面给出几组实验用数据: (1) a=11, b=23, c=25, d=31 (2) a=10, b=20, c=30, d=40 (3) a=45, b=45, c=45, c=45 (4) a=88, b=99, c=77, d=66 (注意压缩型BCD数的表示方法:十进制数38表示成压缩型BCD数时应写成38H) 我的程序: DATAS SEGMENT tem db 10 db ? db 10 dup(0) tem1 db 0ah,0dh ;用来存放加完的和 db 3 dup(0) db '$' DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS MOV DS,AX mov dx,offset tem;变量地址放入dx mov ah,0ah;输入那四个两位的数字 int 21h mov bx,offset tem;变量地址放入bx mov dx,0;清零 xor ax,ax;清零 mov cx,4 mov si,3 loo1:;loo1用来相加全部数的个位数字 mov dl,[bx+si] sub dl,30h add al,dl aaa add si,2 loop loo1 lea bx,tem1;加完,放入tem1也就是和里 add [bx+4],al;放入个位 add [bx+3],ah;放入十位,因为可能进位 mov bx,offset tem mov dx,0;清零 xor ax,ax;清零 mov cx,4 mov si,2 loo2:;loo1用来相加全部数的十位数字 mov dl,[bx+si] sub dl,30h add al,dl aaa add si,2 loop loo2 lea bx,tem1;加完,放入tem1也就是和里 add [bx+3],al;放入十位 add [bx+2],ah;放入百位,因为可能进位 mov ah,30h add [bx+2],ah;加30h变成ascll码 add [bx+3],ah add [bx+4],ah lea dx,tem1;和的地址放入dx用于调用9号功能 mov ah,09h int 21h MOV AH,4CH INT 21H CODES ENDS END START 6. 进行实验时候,我把两个数都放到al中然后进行想加,结果总是第二个数的整数倍,然后检查 没有发现问题。在经过老师的分析指导后才发现问题所在,然后进行改正,答案正确。所以在下次实验 室一丁丁要注意数字的存放位置。
本文档为【2_字符及字符串输入输出与顺序程序设计实验】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_196623
暂无简介~
格式:doc
大小:21KB
软件:Word
页数:8
分类:初中语文
上传时间:2017-12-05
浏览量:16