第一步:
创建一个index.txt文件(命名随你);
编辑代码:
DATA SEGMENTSTRING DB 'AAAaaa123456???$'SMALL DB 30HBIG DB 30HNUM DB 30HOTHER DB 30HDATA ENDS;----------------------------------CODE SEGMENTASSUME CS:CODE, DS:DATASTART:MOV AX,DATAMOV DS,AXMOV CX,15;循环15次LEA BX,STRING;存储字符串首地址LOP:MOV AL,[BX]CMP AL,'a';与'a'比较(这里需用字符对应ASCII码)JB B1;如果小于’a’跳转到b1CMP AL,'z' JA B1;如果大于’z’跳转b1INC SMALL ;不跳转(即在a-z之间)小写字母+1JMP B4B1:CMP AL,'A' JB B2;如果小于’A’跳转b2CMP AL,'Z'JA B2;如果大于’Z’跳转b2INC BIG ;大写字母+1JMP B4B2:CMP AL,'0'JB B3;如果小于’0’跳转b3CMP AL,'9'JA B3;如果大于’9’跳转b3INC NUM ;数字+1JMP B4B3:INC OTHER ;其它字符+1B4:INC BX ;取下一个字符LOOP LOP ;循环MOV AH,02H;屏幕显示大写字母个数MOV DL,BIGINT 21HMOV AH,02H;屏幕显示小写字母个数MOV DL,SMALLINT 21HMOV AH,02H;屏幕显示数字个数MOV DL,NUMINT 21HMOV AH,02H;屏幕显示其它字符个数MOV DL,OTHERINT 21HMOV AH,4ch;返回INT 21HCODE ENDSEND START
第二步:
将文件后缀名改为asm(即index.asm)
dos下编译文件:
链接文件:
最后执行exe文件:
正确输出