汇编分类统计字符个数Word格式.docx
- 文档编号:16175998
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:8
- 大小:217.78KB
汇编分类统计字符个数Word格式.docx
《汇编分类统计字符个数Word格式.docx》由会员分享,可在线阅读,更多相关《汇编分类统计字符个数Word格式.docx(8页珍藏版)》请在冰豆网上搜索。
<
对有余力的同学)DXDiTa9E3d
实验结果:
DEBUG调试并查看结果的正确性。
对存储区STRING的内容¡
°
12ABCDE#!
@Y(78>
=(1>
.”
屏幕显示:
N
12ABCDE#!
@Y(78>
Place=7
对第2部分,如键盘输入
12ABCDE#3456789143!
.回车
输出结果:
Letter=6
Digit=15
Other=9
Place=9
3、分析与体会
本次实验我花了较长的时间来完成。
初略的程序花了5个多小时完成。
后来遇到转换为十进制的时候就卡住了。
后来在第六周周三的时候听了课以后才会做。
RTCrpUDGiT
第一个代码很长,有340多行代码。
其实核心代码不多。
主要是每一次转换为16进制以及10进制的时候,重复了相同的代码。
还有换行也重复了几次。
5PCzVD7HxA
第二个代码不同的是自己输入字符。
我自学了子程序。
然后把转换为10进制和输出换行设置成了子程序。
精简了代码。
jLBHrnAILg
4、代码
键盘输入字符串,分类统计
STACKSSEGMENTSTACK
DW128DUP(?
>
STACKSENDS
DATASSEGMENT
STRINGDB100DUP(?
NUMDW?
STR1DB'
Letter=$'
STR2DB'
Digit=$'
STR3DB'
Other=$'
STR4DB'
Place=$'
DIGITDW0
OTHERDW0
LETTERDW0
PLACEDW?
FLAGDW0
DATASENDS
CODESSEGMENT
MAINPROCFAR
ASSUMECS:
CODES,DS:
DATAS
START:
MOVAX,DATAS
MOVDS,AX
MOVSI,0
INPUT:
MOVAH,1
INT21H。
输入一个字符,存到AL
CMPAL,0DH。
判断是否是回车
JENEXT0。
是回车输入就结束
MOVSTRING[SI],AL
INCSI
JMPINPUT
NEXT0:
MOVNUM,SI
MOVBX,NUM
LEASI,STRING
NEXT:
MOVAL,[SI]
CMPAL,30H
JBCOTHER。
小于30H是其他字符
CMPAL,3AH
JBECDIGIT。
30H-3AH是数字
CMPAL,41H
3AH-40H是其他字符
CMPAL,5AH
JBECLETTER。
41H-5AH是大写字母
CMPAL,61H
5BH-60H是其他字符
CMPAL,7AH
61H-7AH是小写字母
。
大于7AH是其他字符
COTHER:
INCOTHER
JMPP2
CDIGIT:
INCDIGIT
CLETTER:
INCLETTER
P2:
DECBX
JZOUTPUT
JMPNEXT
OUTPUT:
CALLPRIENTER
MOVAH,9。
letter
MOVDX,SEGSTR1
MOVDS,DX
MOVDX,OFFSETSTR1
INT21H
MOVBX,LETTER
CALLTOTEN。
调用转换为十进制的子程序
CALLPRIENTER。
调用换行
digit
MOVDX,SEGSTR2
MOVDX,OFFSETSTR2
MOVBX,DIGIT
CALLTOTEN
other
MOVDX,SEGSTR3
MOVDX,OFFSETSTR3
MOVBX,OTHER
space
MOVDX,SEGSTR4
MOVDX,OFFSETSTR4
MOVBX,NUM。
找第一个空格的位置
AGAIN:
MOVAL,20H
CMPAL,[SI]
JEP1
JZOVER
JMPAGAIN
OVER:
MOVPLACE,4EH。
4EH为N,找不到输出N
MOVDX,PLACE
MOVAH,2
JMPEXIT。
退出结束
P1:
INCSI。
下标与位置的转换,需加1
MOVPLACE,SI
MOVBX,PLACE
JMPEXIT
。
十进制输出的子程序,小于十六位二进制的数可以输出
原理是把原数除10000,取值,余数除1000,取值,再次得到的余数
除100,取值,再将余数除10,取值,取余
TOTENPROCNEAR
CMPBX,0
JGP111
MOVDL,30H
JMPRETURN
P111:
MOVFLAG,0
MOVDI,10000
P15:
MOVDX,0
MOVAX,BX
DIVDI
MOVBX,DX
MOVDL,AL
CMPDL,0
JEP101
MOVFLAG,1
P102:
ADDDL,30H
P16:
MOVAX,DI
MOVCX,10
DIVCX
MOVDI,AX
CMPDI,0
JGP15
P101:
CMPFLAG,0
JEP16
JMPP102
RETURN:
RET
TOTENENDP
PRIENTERPROCNEAR。
回车换行
MOVDL,0DH
MOVDL,0AH
PRIENTERENDP
EXIT:
MOVAX,4C00H
MAINENDP
CODESENDS
ENDSTART
申明:
所有资料为本人收集整理,仅限个人学习使用,勿做商业用途。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编 分类 统计 字符 个数