计算机组成技术大作业第3题程序说明.pdf

上传人:索**** 文档编号:77990541 上传时间:2023-03-16 格式:PDF 页数:9 大小:154.52KB
返回 下载 相关 举报
计算机组成技术大作业第3题程序说明.pdf_第1页
第1页 / 共9页
计算机组成技术大作业第3题程序说明.pdf_第2页
第2页 / 共9页
点击查看更多>>
资源描述

《计算机组成技术大作业第3题程序说明.pdf》由会员分享,可在线阅读,更多相关《计算机组成技术大作业第3题程序说明.pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第 3 题程序说明题目键盘输入 200 字符以上英文文章,统计各字母出现次数并输出(每个字母、出现次数占一行),结束时以响铃(07H)加以提示,请画出框图并编写完整程序。程序简单说明程序核心是找出字母并都变为大写字母,然后减去40h,结果 AZ 变成 126,放入di 中。然后对所对应存储位置加一,即:LetterOccurrences(di-1)+。代码流程图中同一行中的代码,是可以并行的、不分先后顺序的。程序执行结果程序流程图主程序流程图:提示输入输入数据于缓冲区(buf)中al sibx字母出现次数存放位置;si字母存放位置(buf);di=0;ax=0;cx=0;cl=buf+1 an

2、d al,0bfh;diax;shl di,1;-2bx+di+al 大于等于判断 zf 是否为 0 否cx-结束al 小于等于是开始and al,0dfh(小写变大写);si+比较 al 与 Aal 大al 小比较 al 与 Zcall delay(延时);输出提示;call dbxout(输出)SBinaryAscii 子程序(16 位无符号二进制数转化为ascii 码)流程图。ax 为目标操作数,bx为结果存放位置,结束时bx 为结果存放位置的下一个有效位置。第一个循环:除10 取余,第二个循环:去掉数字中可能有的0。di=4;dx=10h dx=0;除 si(10);dl=dl+30h

3、 bx+di=dl;di-cx-al=al+30h;bx+di=al;cx=5;cx=cx-di;si=0 si+di+比较 ax 与 10 al=bx+di;bx+si =al大于等于判断 zf 是否为 0 否bx=bx+si退出小是开始dbxout 子程序(输出)流程图。数组LetterOccurrences 中存有26 个字母出现次数,数组TemporaryAscii 是临时数据区。此子程序通用性上没有多少价值。cx=26;di=0 axLetterOccurrencesdi call SBinaryAscii dxTemporaryAscii的地址axdi;ax 除以 2;ax=ax+

4、41h;bxdx;bx al;bx+;bx:;bx+;判断 zf 是否为 0 否cx-返回是开始响铃bx$;输出 dx 开头的字符串水平制表;di=di+2 代码data segment LetterOccurrences dw 26 dup(0)TemporaryAscii db 10 dup(?)buf db 225 db?db 225 dup(?)str1 db Please enter your letters,and press enter to end your input:,$str2 db 0dh,0ah,The number of chars:,$data ends stac

5、k segment db 100 dup(?)stack ends code segment assume ds:data,cs:code,ss:stack begin:dbxprint macro;输出字符串宏mov ah,09h int 21h endm dbxprint mov ax,data mov ds,ax mov ax,stack mov ss,ax mov sp,100 mov dx,offset str1 mov ah,09h int 21h call crlf mov dx,offset buf;输入字符串mov ah,0ah int 21h;找出每个字母出现频率mov b

6、x,offset LetterOccurrences;字母出现次数存放位置xor di,di;字母出现次数相对存放位置mov si,offset buf+2;ascii存放相对位置xor ax,ax;暂存器xor cx,cx mov cl,buf+1 dbxlop:mov al,si inc si and al,0dfh;第六位置零,大小写合并cmp al,A jb InsteadOfLetters cmp al,Z ja InsteadOfLetters and al,0bfh mov di,ax shl di,1 inc word ptr-2bx+di InsteadOfLetters:l

7、oop dbxlop dbxok:call delay call crlf mov dx,offset str2 mov ah,09h int 21h call dbxout mov ah,04ch int 21h dbxout proc near;输出call crlf call crlf mov cx,26 xor di,di mov dx,offset TemporaryAscii dbxlop1:mov ax,di shr ax,1 add ax,0041h mov bx,dx mov bx,al inc bx mov byte ptr bx,:inc bx mov ax,Letter

8、Occurrencesdi call SBinaryAscii mov byte ptr bx,$dbxprint call form;call crlf add di,2 loop dbxlop1 call crlf call ring ret dbxout endp SBinaryAscii proc near;16位无符号二进制数转化为ascii 码;ax 为目标操作数,bx 为结果存放位置,输出 bx 为后一个空位置push dx push di push si push cx mov di,4 mov si,10 sbalop1:cmp ax,0ah jb sbaok1 xor dx

9、,dx div si add dl,30h mov bx+di,dl dec di jmp sbalop1 sbaok1:add al,30h mov bx+di,al mov cx,05h sub cx,di xor si,si sbalop2:;去掉数字中前面可能有的零mov al,bx+di mov byte ptr bx+si,al inc si inc di loop sbalop2 add bx,si pop cx pop si pop di pop dx ret SBinaryAscii endp crlf proc near;回车换行push dx push ax mov dl

10、,0dh mov ah,2 int 21h mov dl,0ah mov ah,2 int 21h pop ax pop dx ret crlf endp form proc near;水平制表push ax push dx mov dl,09h mov ah,2 int 21h pop dx pop ax ret form endp ring proc near;响铃push ax push dx push cx mov cx,500 mov dl,07h mov ah,2 Ringlop:int 21h loop Ringlop pop cx pop dx pop ax ret ring endp delay proc near;延时push cx mov cx,01ffh loop1:push cx mov cx,0ffffh loop2:loop loop2 pop cx loop loop1 pop cx ret delay endp code ends end begin

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁