汇编语言实验报告分类统计字符个数_第1页
汇编语言实验报告分类统计字符个数_第2页
汇编语言实验报告分类统计字符个数_第3页
汇编语言实验报告分类统计字符个数_第4页
汇编语言实验报告分类统计字符个数_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、#39;5AH, 61H"7AH,.1、单个字符的输入,可以使用DOS中断功能01:MOV AH,01HINT21H;输入符号的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, OAHINT 21H4、计数得到的是二进制数值,在输出时

3、要考虑转换成哪种进制形式的字符来显zjso三、实验源代码如下:;输入提示借息 :各类字符提示信息D/YTAS SEGMENTSTRING 1 DBPlease input a string:$'STRING2 DB'Number of chars:SSTRING3 DBNumber of digils:$'STRING4 DB'Number of others:S'CHARS DB 0 :字耳DIGIT DB 0;数字OTHERS DB 0 ;其他D/VTAS ENDS1STACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES S

4、EGMENTASSUME CS:CODESDS:DMASSS:STACKSSTART:MOV AXD ATASMOV DS.AXLEA DX5TRING1MOVAH.09HINT2IH;显示输入提示信息Please input a stringMOV ex J 00LliMOVAKOlHINT2IH;设巻循环次数足够大;中断调用,单字符输入;输入符号的ASCII代码在AL寄存器中CMP AU0DHJZ OVER2;若输入回车符则结束CMP AL30HJB OTHERCMP AL.39H;若< 30H(0)QTHERS 卄:?7>39H,跳转进一步比较J A HIGHER 1 JMP

5、 DIGITAL:DIGIT 卄HIGHER :CMPAL41HJB OTHER;若 IFv41H(A)OTHERS卄CMPAL.5AHJA HIGHER2;若IF>5AH(ZK跳转继续比较JMP CHAR:ALPHAU+HIGHER2:CMPAL61H;若 IFv61H(a)QTHERS卄JB OTHERCMPAL.7AH:若 IF>7AH(z)QTHERS卄JA OTHERJMP CHARJMPO VER:ALPHAU+;比较结朿OTHER: INC OTHERSJMPO VERCHAR:INC CHARSJMP OVERDIGITALJNC DIGITJMP OVER;OTH

6、ERS+;比较结朿:ALPHAL+;比较结束;D1GIT 卄;比较结束JMPOVEROVER:NOP;比较结束LOOP LIOVER2;CALL ENDLINE:循环,输入下一字符;回车换行LEA DX5TRING2MOVAH.09HINT21H;字符串的输出Number of charsXOR AX.AXMOV AUCHARSCALL DISPLAYCALL ENDLINE;将统讣的数字送AX;调用输出两位数字的子程序LEA DX5TRING3M0VAHQ9H;字符串的输出Number of digitsINT21HXOR AX.AXMOV ALDIGITCALL DISPLAY;将统计的数

7、字送AX;调用输出两位数字的子程序CALL ENDLINELEA DX5TRING4MOVAH.09HINT21H;字符串的输出Number of othersXOR AX.AXMOV ALQTHERSCALL DISPLAYMOV AH.4CH:将统讣的数字送AX:调用输出两位数字的子程序INT21HENDLINE PROC NEAR;控制输出格式,输出回车换行子程序 MOVAHQ2HMOV DL.0AHINT21H;输出换行符MOVAH.02HMOV DL.0DH;输出回车符INT21H;RETENDLINE ENDPDISPLAY PROC NEAR;输出两位数字的子程序(输出两位数字为十进丽 MOVBLJODIV BLPUSH AX:AX/BLAL=商,AH =余数:保存AX中的倍息MOV DUALADD DL30HMOVAH.02HINT21H:输出十位数POP AXMOV DL.AHADD DL30H;出栈送AXMOVAH.02HINT21H;输出个位数RETDISPLAY ENDPCODES ENDSEN

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论