版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、燕山大学微型计算机原理及应用班级:14级轧钢 2 班姓名:谢文学号:141101011011作业指导教师:陈子明 王鑫 朱学军 张庆玲 赵玉勤 王志松唐艳华作业完成时间: 2016/12/13燕山大学一 题 24.1 问题描述 21.1 寄存器及主存的应用说明 21.2 程序框图 21.3 详细程序 21.4 程序调试情况 3二题 24.2 问题描述 52.1 寄存器及主存的应用说明 52.2 程序框图 62.3 详细程序 62.4 程序调试状况 7三题 24.3 问题描述 93.1 寄存器及主存的应用说明 93.2 程序框图 93.3 详细程序 93.4 程序调试情况 12四体会和建议 12
2、8一 题24.1 问题描述内存source处存放着20个ASCII码字符,从键盘输入一个字符,若输入的 是为a - z之间的字符(例如g),则将source处的20个ASCII码字符传 送至result处,传送时要求将 a - z之间的字符转换成大写字符,而其 他字符不变,并统计与输入字符(g)相同的字符的个数,存入变量nun中, 程序结束;若输入的是其他字符,则在下一行显示ERROR,程序结束。1.1 寄存器及主存的应用说明 内存: source 处存放待检测的字符count 处存放字符数量result 处存放修改过的新的字符nun 处存放与输入字符相同的字符的个数error 处存放回车换行
3、及字符串 ERRO!R寄存器:bx用于使result指向的地址每次加1以存放下一个字符al用于存放输入的字符si用于存放地址dl用于存放 si 指向的字符cx用于计数1.2程序框图 (见第四页 )1.3 详细程序.nodel snall.stack.datasource db abcdgggg456789AB+-*/count equ $-sourceresult db count dup(?)nun db 0error db 0dh,0ah,ERROR!$.code.startupxor bx,bx;bx 清零nov ah,1; 输入一个字符cnp al,a jb done cnp al,z
4、 ja done lea si,sourceint 21h;输入的字符与a比较,如果比a;小或比z大则跳转至done ; 把首地址赋值给 simov cx,count again: mov dl,si cmp dl,a jb one cmp dl,z ja one cmp dl,al jnz two add num,1 two:sub dl,20h one:mov resultbx,dl inc bx inc si loop again jmp three done:mov dl,0dhmov ah,2 int 21h mov dl,0ah mov ah,2 int 21h mov dx,of
5、fset error mov ah,9 int 21h;cx 赋值循环次数;si 指向的字符赋值给 dl;若此字符比a小或比z大,则跳; 转至 one; 若此字符在 a-z 之间,则与输入; 的字符比较,不相等则跳至 two;若相等则num加1; 将小写字符转换成大写字符; 将此字符存入 result 处; 地址加 1 以存放下一个字符; 指向下一个待检测字符; 循环; 跳转至 three; 回车,换行,显示 ERRO!R; 结束result 存储的值加 1,导致第一个数three: .exit end 1.4 程序调试情况 第一次错误:语句one编写如下, mov result,dl inc
6、 result inc si loop again 原以为 inc result 会使地址加 1,结果是 加了 20而其他数值没变,运行结果如图:偏揖 show |he)t二粽ULT黏4h630hh6222hh7262hh672232hh4232其中source和result有20个字符,由于图片清晰度问题,所以没有全部截图 出来第二次错误:刚开始给ex赋值为20,而实际应该赋值count,如果source存入 21个字符,运行结果将只有20个字符。正确的运行结果如下图:elements:漏辑show as: hexRESULTlhlh黑640也62h42h64hh23题24.2问题描述内存中
7、source处存放着一个以0为结束标志的ASCII码字符串,该字符串 表示的是一个字型有符号整数。请将其转换为对应的有符号整数,存放到自 变量result处。转换过程中,若遇到 0 - 9及 + ,-以为的字符, 或者转换结果超过了字型有符号数的范围(-32768-+32767 ),则显示 ERROR ,程序结束。2.1寄存器及主存的应用说明内存source处存放待检测字符result 处存放转换后的字型 error 处存放字符串 寄存器: bx 存放取出的数值 cx 存放标志数值 si 存放地址 2.2程序框图 (见第八页) 2.3 详细程序 .model small .stack .dat
8、asource db -12345,0 result dw ?error db ERROR!$ .code .startuplea si,sourcexor bx,bxxor dx,dx cmp byte ptrsi,0 jz done cmp byte ptrsi,- mov cx,-1 jz one cmp byte ptrsi,+ mov cx,0 jz one cmp byte ptrsi,31h jb four cmp byte ptrsi,39h ja four dec si one:inc sicmp byte ptrsi,0 jz two shl bx,1 mov dx,bx
9、shl bx,1; 首地址赋值给 si;bx, dx分别清零; 第一个字符是 0,则跳转至 done; 若不是 0 则与 - 比较;cx 赋值 -1 作为标志; 跳转至 one; 与 +比较;cx 赋值 0 作为标志; 跳转至 one; 若既不是 - 也不是 +则; 与 1 比较,比 1 小,跳至 four; 若比 1 大,则与 9 比较,比 9; 大,则跳转至 four; 第一个字符为数字,则 si 减 1 ;si 加 1指向下一个字符; 与 0 比较,相等则结束; 以下 5 句将 bx 通过移位乘 10; 但第一次 bx 为 0ax 的高 8 位没有清零,使 ax 存储的数据不正确,结果与
10、1和9比较大小时应用它们的 ASCII码31h和39h,而不是直shl bx,1 add bx,dx mov ax,si xor ah,ah sub ax,30h add bx,ax jmp one two:cmp cx,-1 jnz five cmp bx,32768ja four jmp nega five:cmp bx,32767ja four jmp three nega:not bx add bx,1 three: mov result,bx jmp done four: mov dx,offset error mov ah,9 int 21h done: .exit End 2.4
11、 程序调试状况 第一次错误:寄存器 出现错误。 第二次错误: 接用 1 和 9。;si 指向的数赋值给 ax; 只保留低位;ASCII 码减 30 取出第一个数; 赋值给 bx;cx 与-1 比较; 不相等跳转至 five;cx=-1 ,则 bx 与 32768 比较;比 32768大则跳转至 four; 否则跳转至 nega;cx=0 ,则 bx 与 32767 比较; 大于 32767 则跳转至 four; 否则跳转至 three;bx 取反;b 加 1;bx 赋值给 result; 跳转至 done; 显示错误; 结束输出错误Si指向第一个字符 燕山大学Y等于0?Y等于-NY等于 +小于
12、1?大于9?NNbx=bx+si1pbx=lbx*101FSi指向下一个字符存入result结束燕山大学12正确运行结果截图:SOURCE2DFTt 31h,32h ._33h3h, 35h, 00h题24.3问题描述内存中source处存放着一个以0为结束标志的ASCII码字符串。请统计 该字符串中字母,数字,空格和其他字符的个数,统计结果分别存放到字节 型变量result 处。3.1寄存器及主存的应用说明 内存:source处存放待检测字符串Result处存放各种字符数量 寄存器:si存储地址cl存放si指向的字符3.2程序框图(见第十一页)3.3详细程序.model small.stac
13、k.datasource db ABC abc 123 +-*/,0 result db 4 dup(0).code.startup;si赋值source的首地址减1;地址加1指向下一个字符;将指向的字符赋值给cl;与0比较,如果是0,结束;分别于加减乘除比较,如果是其中的;一个字符,跳转到otherslea si,source-1aga in: inc simov cl,sicmp cl,0jz donecmp cl,2BHjz otherscmp cl,2DHjz otherscmp cl,2AH jz otherscmp cl,2FHjz others cmp cl,20h jz spa
14、ce cmp cl,39h jbe num jmp words others:; 与空格比较,相等则跳转到 space; 以上字符都不是则与 9 比较,; 小于等于 9 则跳转到 num; 如果以上都不是则为字母,跳转到 wordsadd result+3,1 jmp again space:; 其他字符数量加 1 并存到 result 第四个字节处 ; 继续执行搜索下一个字符add result+2,1 jmp again num:; 空格数量加 1 并存到 result 第三个字节处; 继续执行搜索下一个字符add result+1,1 jmp again words:; 数字数量加 1 并存到 result 第二个字节处; 继续执行并搜索下一个字符add result,1 jmp again done:; 字母数量加 1 并存到 result 第一个字节处; 继续执行并搜索下一个字符; 结束.exit end3.4程序调试情况错误:最后的一段程序没有写jmp again,导致无法循环
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人才租赁行业相关项目经营管理报告
- 手机指环扣产业链招商引资的调研报告
- 破碎锤项目营销计划书
- 5G智能旅游行业市场调研分析报告
- 色带卷轴细分市场深度研究报告
- 玻璃球瓶容器市场分析及投资价值研究报告
- 录像带出租行业经营分析报告
- 圆号产品供应链分析
- 手持式真空吸尘器产业链招商引资的调研报告
- 绣花纺织品制手镯首饰项目营销计划书
- 家长如何培养孩子良好的学习习惯
- 《渠道管理与拓展》课件
- 智能家居的产品设计
- 学校月份教学工作总结
- 胸中天地宽 常有渡人船 -主题班会课件
- 老年衰弱护理课件
- 谈心谈话表(普通干部)
- 沥青路面的设计-沥青路面验收弯沉值计算
- Unit6Craftsmanship+Listening+an课件-中职高教版(2021)基础模块2
- 港口码头租赁协议书
- “问题链”教学模式在高中物理课堂中的实践研究
评论
0/150
提交评论