⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 string.asm

📁 汇编语言写的程序
💻 ASM
字号:
DATAS SEGMENT
    countSum db 0
    countNum db 0
    countStr db 0
    countOth db 0
    messgSum db 'Sum:	$'
    messgNum db 'Num:	$'
    messgStr db 'Str:	$'
    messgOth db 'Oth:	$'
    crlf db 13,10,'$'
    Str db 0
    ;此处输入数据段代码  
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    ;此处输入代码段代码
    mov cx,21
    xor di,di
    
input:
	mov ah,01h
	int 21h
	cmp al,0dh
	je result
	inc countSum
	
	cmp al,61h
	jge cmpLStr
	
	cmp al,41h
	jge cmpGStr
	
	cmp al,30h
	jge cmpNum
	
	loop input
	
cmpLStr:
	cmp al,7ah
	jg input
	inc countStr
	mov [Str+di],al
	inc di
	loop input
	
cmpGStr:
	cmp al,5ah
	jg input
	inc countStr
	mov [Str+di],al
	inc di
	loop input	

cmpNum:
	cmp al,39h
	jg input
	inc countNum
	mov [Str+di],al
	inc di
	loop input 
	   
result:
	lea dx,crlf
	mov ah,09h
	int 21h
	
	mov [Str+di],'$'
	lea dx,Str
	mov ah,09h
	int 21h
	
	lea dx,crlf
	mov ah,09h
	int 21h
	
	mov al,countOth
	mov dl,countSum
	add al,countNum
	add al,countStr
	sub dl,al
	mov countOth,dl
		
	lea dx,messgSum
	mov ah,09h
	int 21h
	mov al,countSum
	call print
		
	lea dx,messgStr
	mov ah,09h
	int 21h
	mov al,countStr
	call print
		
	lea dx,messgNum
	mov ah,09h
	int 21h
	mov al,countNum
	call print
		
	lea dx,messgOth
	mov ah,09h
	int 21h
	mov al,countOth
	call print
	
	jmp exit
	
print proc near 
	mov ah,0h  
	mov bl,10
	idiv bl
	mov dx,ax
	add dl,30h
	mov ah,02h
	int 21h
	mov dl,dh
	add dl,30h
	mov ah,02
	int 21h
	lea dx,crlf
	mov ah,09h
	int 21h
	ret
print endp	

exit:
	mov ah,7
	int 21h
  	
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -