版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、燕山大学微型计算机原理及应用微型计算机原理及应用作业作业作业组别:作业组别:2424班级:班级:1212 级机设级机设 1 1 班班姓名:杨亚成姓名:杨亚成学号:学号:120104050011120104050011作业指导教师:(任课教师、实验室教师)作业指导教师:(任课教师、实验室教师)陈子明陈子明 王鑫王鑫 朱学军朱学军 张庆玲张庆玲 赵玉勤赵玉勤 王志松王志松 唐艳华唐艳华作业完成时间:作业完成时间:2015/4/122015/4/12燕山大学1一一题题 24.124.1 问题描述问题描述.21.11.1 寄存器及主存的应用说明寄存器及主存的应用说明.21.21.2 程序框图程序框图.
2、21.31.3 详细程序详细程序.21.41.4 程序调试情况程序调试情况.3二二题题 24.224.2 问题描述问题描述.52.12.1 寄存器及主存的应用说明寄存器及主存的应用说明.52.22.2 程序框图程序框图.62.32.3 详细程序详细程序.62.42.4 程序调试状况程序调试状况.7三三题题 24.324.3 问题描述问题描述.93.13.1 寄存器及主存的应用说明寄存器及主存的应用说明.93.23.2 程序框图程序框图.93.33.3 详细程序详细程序.93.43.4 程序调试情况程序调试情况.12四四体会和建议体会和建议.12燕山大学2一一题题24.124.1问题描述问题描述
3、内存source处存放着20个ASCII码字符,从键盘输入一个字符,若输入的是为a-z之间的字符(例如g) ,则将source处的20个ASCII码字符传送至result处,传送时要求将a-z之间的字符转换成大写字符,而其他字符不变,并统计与输入字符(g )相同的字符的个数,存入变量num中,程序结束;若输入的是其他字符,则在下一行显示ERROR! ,程序结束。1.11.1寄存器及主存的应用说明寄存器及主存的应用说明内存:source处存放待检测的字符 count处存放字符数量 result处存放修改过的新的字符 num处存放与输入字符相同的字符的个数 error处存放回车换行及字符串ERRO
4、R! 寄存器:bx用于使result指向的地址每次加1以存放下一个字符 al用于存放输入的字符 si用于存放地址 dl用于存放si指向的字符 cx用于计数1.21.2程序框图程序框图( (见第四页见第四页) )1.31.3详细程序详细程序.model small.stack.datasource db abcdgggg456789AB+-*/count equ $-sourceresult db count dup(?)num db 0error db 0dh,0ah,ERROR!$.code.startup xor bx,bx;bx清零mov ah,1;输入一个字符int 21hcmp al
5、,a;输入的字符与a比较,如果比ajb done ;小或比z大则跳转至donecmp al,zja done燕山大学3lea si,source;把首地址赋值给simov cx,count;cx赋值循环次数again: mov dl,si;si指向的字符赋值给dlcmp dl,a;若此字符比a小或比z大,则跳jb one;转至onecmp dl,zja onecmp dl,al;若此字符在a-z之间,则与输入jnz two;的字符比较,不相等则跳至twoadd num,1 ;若相等则num加1two:sub dl,20h;将小写字符转换成大写字符one:mov resultbx,dl;将此字符
6、存入result处inc bx;地址加1以存放下一个字符inc si;指向下一个待检测字符loop again;循环jmp three;跳转至threedone: 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 21hthree:;结束.exitend1.41.4程序调试情况程序调试情况第一次错误:语句one编写如下,mov result,dlinc resultinc siloop again原以为inc result会使地址加1,结
7、果是result存储的值加1,导致第一个数加了20而其他数值没变,运行结果如图:燕山大学4输入一个字符N比 z 大?比 a 小?Si 指向的字符比 a 小?NNSi 指向的字符等于输入字符?Nnum 加 1Y转换为大写存入 resultcx=0?结束YSi 指向下一个字符输出错误YYYYNNSi 指向的字符比 z 大?燕山大学5其中source和result有20个字符,由于图片清晰度问题,所以没有全部截图出来第二次错误:刚开始给cx赋值为20,而实际应该赋值count,如果source存入21个字符,运行结果将只有20个字符。正确的运行结果如下图:二二题题24.224.2问题描述问题描述内存
8、中source处存放着一个以0为结束标志的ASCII码字符串,该字符串表示的是一个字型有符号整数。请将其转换为对应的有符号整数,存放到自变量result处。转换过程中,若遇到0-9及+,-以为的字符,或者转换结果超过了字型有符号数的范围(-32768-+32767),则显示ERROR!,程序结束。2.12.1寄存器及主存的应用说明寄存器及主存的应用说明内存source 处存放待检测字符燕山大学6result 处存放转换后的字型error 处存放字符串寄存器:bx 存放取出的数值cx 存放标志数值si 存放地址2.22.2程序框图程序框图( (见第八页见第八页) )2.32.3详细程序详细程序.
9、model small.stack.datasource db -12345,0result dw ?error db ERROR!$.code.startuplea si,source;首地址赋值给 sixor bx,bx;bx,dx 分别清零xor dx,dxcmp byte ptrsi,0;第一个字符是 0,则跳转至donejz donecmp byte ptrsi,-;若不是 0 则与-比较mov cx,-1;cx 赋值-1 作为标志jz one;跳转至 onecmp byte ptrsi,+;与+比较mov cx,0;cx 赋值 0 作为标志jz one;跳转至 onecmp byt
10、e ptrsi,31h;若既不是-也不是+则jb four;与 1 比较,比 1 小,跳至 fourcmp byte ptrsi,39h;若比 1 大,则与 9 比较,比 9ja four ;大,则跳转至 four dec si;第一个字符为数字,则 si 减 1one:inc si;si 加 1 指向下一个字符cmp byte ptrsi,0;与 0 比较,相等则结束jz twoshl bx,1;以下 5 句将 bx 通过移位乘 10mov dx,bx;但第一次 bx 为 0燕山大学7shl bx,1shl bx,1add bx,dxmov ax,si;si 指向的数赋值给 axxor ah
11、,ah;只保留低位sub ax,30h;ASCII 码减 30 取出第一个数add bx,ax;赋值给 bxjmp onetwo:cmp cx,-1;cx 与-1 比较 jnz five;不相等跳转至 five cmp bx,32768;cx=-1,则 bx 与 32768 比较ja four ;比 32768 大则跳转至 fourjmp nega;否则跳转至 negafive:cmp bx,32767;cx=0,则 bx 与 32767 比较ja four ;大于 32767 则跳转至 fourjmp three;否则跳转至 threenega:not bx;bx 取反 add bx,1;b
12、 加 1three: mov result,bx;bx 赋值给 result jmp done;跳转至 donefour:mov dx,offset error;显示错误 mov ah,9 int 21hdone:;结束.exitEnd2.42.4 程序调试状况程序调试状况第一次错误:寄存器 ax 的高 8 位没有清零,使 ax 存储的数据不正确,结果出现错误。第二次错误:与 1 和 9 比较大小时应用它们的 ASCII 码 31h 和 39h,而不是直接用 1 和 9。燕山大学8燕山大学9等于 0?等于-?等于+?小于 1?大于 9?Si 指向下一个字符bx=bx+sibx=bx*10si=
13、0?存入 result结束NNNNN输出错误Y YY YY YY YY YY YSi 指向第一个字符燕山大学10正确运行结果截图:三三题题 24.324.3 问题描述问题描述内存中 source 处存放着一个以 0 为结束标志的 ASCII 码字符串。请统计该字符串中字母,数字,空格和其他字符的个数,统计结果分别存放到字节型变量 result 处。3.13.1 寄存器及主存的应用说明寄存器及主存的应用说明内存:source 处存放待检测字符串Result 处存放各种字符数量寄存器:si 存储地址cl 存放 si 指向的字符3.23.2 程序框图程序框图( (见第十一页见第十一页) )3.33.
14、3 详细程序详细程序.model small.stack.datasource db ABC abc 123 +-*/,0result db 4 dup(0).code.startuplea si,source-1;si 赋值 source 的首地址减 1again: inc si;地址加 1 指向下一个字符 mov cl,si;将指向的字符赋值给 clcmp cl,0;与 0 比较,如果是 0,结束jz donecmp cl,2BH;分别于加减乘除比较,如果是其中的jz others;一个字符,跳转到 otherscmp cl,2DHjz others燕山大学11cmp cl,2AHjz o
15、therscmp cl,2FHjz otherscmp cl,20h;与空格比较,相等则跳转到 spacejz spacecmp cl,39h;以上字符都不是则与 9 比较, jbe num;小于等于 9 则跳转到 numjmp words;如果以上都不是则为字母,跳转到 wordsothers:add result+3,1 ;其他字符数量加 1 并存到 result 第四个字节处jmp again;继续执行搜索下一个字符space:add result+2,1 ;空格数量加 1 并存到 result 第三个字节处jmp again;继续执行搜索下一个字符num:add result+1,1 ;数字数量加 1 并存到 result 第二个字节处jmp again;继续执行并搜索下一个字符words:add result,1;字母数量加 1 并存到 result 第一个字节处jmp again;继续执行并搜索下一个字符done:;结束.exitend燕山大学12Si 首地址减 1Si 加 1 指向下一个字符Si 指向的字符赋值给 clcl 等于 0?cl 相继与+-*/空格,9 比较满足相应的条件对应的字符种类数量加 1 并存入 result结束NY燕山大学133.43.4 程序调试情况程序调试情况错误:最后的一段程序没有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《爱心大行动》教案-2025-2026学年赣美版小学美术五年级下册
- 临床知识题库
- 加班制定实施方案
- 基层文旅项目建设方案
- 保温砂浆顶棚隔热施工方案
- 2026年智能农业无人机植保监测方案
- 针对物流运输2026年无人机配送路径方案
- 家用电器节能改造技术方案
- 核电站反应堆压力容器热负荷试验施工方案
- 建设创业团队方案
- DB45-T 2751-2023 立木生物量模型及碳计量参数桉树
- 民用机场航站区标识英文译写规范(TCCAATB 0010-2021)
- DBJ04-T344-2025 海绵城市建设技术标准
- GB/T 18344-2025汽车维护、检测、诊断技术规范
- 基层党建考试题及答案
- T/CSBME 073-2023一次性使用电动腔镜切割吻合器及组件
- 2025届高三部分重点中学3月联合测评语文试卷及参考答案
- 中国食物成分表2020年权威完整改进版
- 支付令异议申请书(2篇)
- 国家药监局医疗器械技术审评检查大湾区分中心员额制人员招考聘用16人高频500题难、易错点模拟试题附带答案详解
- 高电压技术教案
评论
0/150
提交评论