汇编语言:统计某个单词在英文句子中的出现次数

    技术2022-07-11  111

    汇编语言:统计某个单词在英文句子中的出现次数

    题目要求运行截图 编程平台代码实现

    题目要求

    设有一段英文,其字符变量名为ENG,并以$字符结束。试编写一段程序,查单词SUN在该文中出现的次数,并输出显示出现的次数。

    运行截图

    编程平台

    Masm for Windows 集成实验环境 2012.5

    代码实现

    DATAS SEGMENT ENG DB 'SSUNABCSQOSUNSUNIUM$' count DW $-ENG hint DB 'There is a paragraph in English: $' result DB 'The number of times the word SUN appears in the text: $' break DB 13,10,'$' DATAS ENDS STACKS SEGMENT STACK DB 200H DUP(?) STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS MAIN PROC MOV AX,DATAS MOV DS,AX LEA DX,hint;输出原始数据前提示 MOV AH,9H INT 21H LEA DX,ENG;输出原始数据 MOV AH,9H INT 21H LEA DX,break;换行 MOV AH,9H INT 21H LEA DX,result;输出结果前提示 MOV AH,9H INT 21H CALL COUNTSUM;计数SUN CALL OUTPUTDATA;输出统计结果 MOV AH,4CH INT 21H MAIN ENDP ;子程序 ;功能:统计单词SUN在该文中出现的次数。 ;入口参数:变量ENG存放一段英文字符。 COUNTSUM PROC MOV AX,0;记录SUN出现的个数 LEA BX,ENG MOV CX,count;遍历次数 lop: MOV DL,[BX] CMP DL,'S';是否为S JE nextU INC BX LOOP lop JMP finish nextU: DEC CX CMP CX,0;是否遍历结束 JE finish INC BX MOV DL,[BX] CMP DL,'U';是否为U JE nextN LOOP lop;重新开始寻找S JMP finish nextN: DEC CX CMP CX,0;是否遍历结束 JE finish INC BX MOV DL,[BX] CMP DL,'N';是否为N JE addSUN LOOP lop;重新开始寻找S JMP finish addSUN: INC AX;SUN数量加1 INC BX LOOP lop finish: RET COUNTSUM ENDP ;子程序 ;功能:以十进制形式输出0和正整数。 ;入口参数:AX存放要输出的数据。 OUTPUTDATA PROC MOV SI,10;除数 MOV DI,0;统计要输出的位数 lop1: MOV DX,0 DIV SI PUSH DX;余数入栈 INC DI CMP AX,0 JNE lop1 lop2: POP DX ADD DL,30H;转换成ASCII码 MOV AH,2H INT 21H DEC DI CMP DI,0 JNE lop2 RET OUTPUTDATA ENDP CODES ENDS END MAIN

    如果文章内容出错或者您有更好的解决方法,欢迎到评论区指正和讨论!

    Processed: 0.011, SQL: 9