收藏 分享(赏)

汇编语言实验报告2分类统计字符个数.doc

上传人:HR专家 文档编号:7208092 上传时间:2019-05-10 格式:DOC 页数:4 大小:61.50KB
下载 相关 举报
汇编语言实验报告2分类统计字符个数.doc_第1页
第1页 / 共4页
汇编语言实验报告2分类统计字符个数.doc_第2页
第2页 / 共4页
汇编语言实验报告2分类统计字符个数.doc_第3页
第3页 / 共4页
汇编语言实验报告2分类统计字符个数.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、汇编语言实验报告 2分类统计字符个数一、实验内容:通过分支程序设计实现字母、数字及其它字符的分类统计计数。二、实验要求:程序接受用户键入的一行字符(字符个数不超过 80 个,该字符串用回车符结束) ,并按字母、数字及其它字符分类计数,然后将结果存入以 letter、digit 和 other 为名的存储单元中。输出可以用十六进制数形式。可以进一步考虑更细节的统计分类。说明:数据变量的定义,单个字符的输入、字符串的输出、结果数字的输出,都是需要考虑的问题。分类主要是数字:09,字母AZ 和az ,其它。对应的 ASCII 码为 30H39H, 41H5AH, 61H7AH,.1、单个字符的输入,

2、可以使用 DOS 中断功能 01:MOV AH,01HINT 21H ; 输入符号的 ASCII 代码在 AL 寄存器中2、字符串的输出,可以使用 DOS 中断功能 09:LEA DX, message ; message 需要事先定义好,必须是以$结尾的字符串MOV AH, 09HINT 21H3、字符串的输入,可以使用 DOS 中断功能 0AH,但需要事先定义空间 string,在数据段中有 string DB 80, ?, 80 DUP(?)LEA DX, stringMOV AH, 0AHINT 21H4、计数得到的是二进制数值,在输出时要考虑转换成哪种进制形式的字符来显示。三、实验源

3、代码如下:DATAS SEGMENTSTRING1 DBPlease input a string:$ ;输入提示信息STRING2 DBNumber of chars:$ ;各类字符提示信息STRING3 DBNumber of digits:$STRING4 DBNumber of others:$CHARS DB 0 ;字母DIGIT DB 0 ;数字OTHERS DB 0 ;其他DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,

4、DATASMOV DS,AXLEA DX,STRING1 ;显示输入提示信息 Please input a stringMOV AH,09HINT 21HMOV CX,100 ;设置循环次数足够大L1:MOV AH,01H ;中断调用,单字符输入INT 21H ;输入符号的 ASCII 代码在 AL 寄存器中CMP AL,0DH ;若输入回车符则结束JZ OVER2 CMP AL,30H ;若39H(9),跳转进一步比较JA HIGHER1JMP DIGITAL ;DIGIT+HIGHER1:CMP AL,41H ;若 IF5AH(Z),跳转继续比较JA HIGHER2JMP CHAR ;AL

5、PHAU+HIGHER2:CMP AL,61H ;若 IF7AH(z),OTHERS+JA OTHERJMP CHAR ;ALPHAU+JMP OVER ;比较结束OTHER: INC OTHERS ;OTHERS+JMP OVER ;比较结束CHAR: INC CHARS ;ALPHAL+JMP OVER ;比较结束DIGITAL:INC DIGIT ;DIGIT+JMP OVER ;比较结束JMP OVER ;比较结束 OVER:NOPLOOP L1 ;循环,输入下一字符OVER2:CALL ENDLINE ;回车换行LEA DX,STRING2 ;字符串的输出 Number of cha

6、rsMOV AH,09HINT 21HXOR AX,AXMOV AL,CHARS ;将统计的数字送 AXCALL DISPLAY ;调用输出两位数字的子程序CALL ENDLINELEA DX,STRING3 ;字符串的输出 Number of digitsMOV AH,09HINT 21H XOR AX,AXMOV AL,DIGIT ;将统计的数字送 AXCALL DISPLAY ;调用输出两位数字的子程序CALL ENDLINELEA DX,STRING4 ;字符串的输出 Number of othersMOV AH,09HINT 21HXOR AX,AXMOV AL,OTHERS ;将统

7、计的数字送 AXCALL DISPLAY ;调用输出两位数字的子程序MOV AH,4CHINT 21HENDLINE PROC NEAR;控制输出格式,输出回车换行子程序MOV AH,02HMOV DL,0AHINT 21H ;输出换行符MOV AH,02HMOV DL,0DH INT 21H ;输出回车符RETENDLINE ENDPDISPLAY PROC NEAR;输出两位数字的子程序(输出两位数字为十进制)MOV BL,10 DIV BL ;AX/BL,AL=商,AH余数PUSH AX ;保存 AX 中的信息MOV DL,ALADD DL,30HMOV AH,02HINT 21H ;输出十位数POP AX ;出栈送 AXMOV DL,AHADD DL,30HMOV AH,02HINT 21H ;输出个位数RETDISPLAY ENDP CODES ENDSEND START四、实验运行结果如下:(附截图)注:两位数为十进制

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报