以下是汇编语言程序,使用MASM语法:

.MODEL SMALL
.386

.DATA
    str DB "Hello 123 World 45678 9",0
    wordCount DW 0
    numCount DW 0

.CODE
    MAIN PROC
        MOV AX, @DATA
        MOV DS, AX

        MOV SI, OFFSET str
        MOV CX, 0
        MOV BX, 0

    loopStart:
        LODSB   ; load next byte into AL
        CMP AL, 0
        JE endLoop
        CMP AL, '0'
        JB isLetter
        CMP AL, '9'
        JA isLetter
        INC BX  ; increment numCount
        JMP loopStart

    isLetter:
        CMP AL, ' '
        JE spaceFound
        CMP AL, 'a'
        JB loopStart
        CMP AL, 'z'
        JA loopStart
        INC CX  ; increment wordCount
        JMP loopStart

    spaceFound:
        JMP loopStart

    endLoop:
        MOV wordCount, CX
        MOV numCount, BX

        MOV AH, 4CH
        INT 21H
    MAIN ENDP
END MAIN

程序首先定义一个包含英文单词和数字的字符串,并分别定义wordCount和numCount变量来存储单词和数字的数量。

在代码中,使用SI寄存器来追踪字符串中的位置,使用CX和BX寄存器来分别计数单词和数字的数量。程序使用LODSB指令来迭代字符串中的每个字节,并使用CMP指令来确定字节是数字还是字母。如果字节是数字,则递增numCount。如果字节是字母,则程序检查是否达到单词的结尾,并递增wordCount。

程序最后将计数值存储在wordCount和numCount变量中,然后使用INT 21H指令结束程序

请用汇编语言编写一个大字符串中有多个英文单词和多个阿拉伯数字彼此之间空格隔开编程分别统计单词个数和数字个数

原文地址: https://www.cveoy.top/t/topic/fGeC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录