燕山大学微机原理作业.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
燕山大学微机原理作业

《微型计算机原理及应用》 班级:14级轧钢2班 姓名:谢文 学号:141101011011 作业指导教师:陈子明 王鑫 朱学军 张庆玲 赵玉勤 王志松 唐艳华 作业完成时间:2016/12/13 一. 题24.1问题描述 2 1.1寄存器及主存的应用说明 2 1.2程序框图 2 1.3详细程序 2 1.4程序调试情况 3 二. 题24.2问题描述 5 2.1寄存器及主存的应用说明 5 2.2程序框图 6 2.3详细程序 6 2.4程序调试状况 7 三. 题24.3问题描述 9 3.1寄存器及主存的应用说明 9 3.2程序框图 9 3.3详细程序 9 3.4程序调试情况 12 四. 体会和建议 12 题24.1问题描述 内存source处存放着20个ASCII码字符,从键盘输入一个字符,若输入的是为‘a’-‘z’之间的字符(例如g),则将source处的20个ASCII码字符传送至result处,传送时要求将‘a’-‘z’之间的字符转换成大写字符,而其他字符不变,并统计与输入字符(‘g’)相同的字符的个数,存入变量num中,程序结束;若输入的是其他字符,则在下一行显示‘ERROR!’,程序结束。 1.1寄存器及主存的应用说明 内存:source处存放待检测的字符 count处存放字符数量 result处存放修改过的新的字符 num处存放与输入字符相同的字符的个数 error处存放回车换行及字符串ERROR! 寄存器:bx用于使result指向的地址每次加1以存放下一个字符 al用于存放输入的字符 si用于存放地址 dl用于存放si指向的字符 cx用于计数 1.2程序框图(见第四页) 1.3详细程序 .model small .stack .data source db abcdgggg456789AB+-*/ count equ $-source result db count dup(?) num db 0 error db 0dh,0ah,ERROR!$ .code .startup xor bx,bx ;bx清零 mov ah,1 ;输入一个字符 int 21h cmp al,a ;输入的字符与a比较,如果比a jb done ;小或比z大则跳转至done cmp al,z ja done lea si,source ;把首地址赋值给si mov cx,count ;cx赋值循环次数 again: mov dl,[si] ;si指向的字符赋值给dl cmp dl,a ;若此字符比a小或比z大,则跳 jb one ;转至one cmp dl,z ja one cmp dl,al ;若此字符在a-z之间,则与输入 jnz two ;的字符比较,不相等则跳至two add num,1 ;若相等则num加1 two:sub dl,20h ;将小写字符转换成大写字符 one:mov result[bx],dl ;将此字符存入result处 inc bx ;地址加1以存放下一个字符 inc si ;指向下一个待检测字符 loop again ;循环 jmp three ;跳转至three done: mov dl,0dh ;回车,换行,显示ERROR! mov ah,2 int 21h mov dl,0ah mov ah,2 int 21h mov dx,offset error mov ah,9 int 21h three: ;结束 .exit end 1.4程序调试情况 第一次错误:语句one编写如下, mov result,dl inc result inc si loop again 原以为inc result会使地址加1,结果是result存储的值加1,导致第一个数加了20而其他数值没变,运行结果如图: 其中source和result有20个字符,由于图片清晰度问题,所以没有全部截图出来 第二次错误:刚开始给cx赋值为20,而实际应该赋值count,如果source存入21个字符,运行结果将只有20个字符。 正确

文档评论(0)

文档精品 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6203200221000001

1亿VIP精品文档

相关文档