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

📄 p20.asm

📁 assembly language for MASM
💻 ASM
字号:

.model small
.stack 100
TITLE	TOTAL
; (THIS PROGRAM GIVES THE TOTAL NUMBERS, ALPHABETS, SPECIAL
; CHARACTERS IN THE GIVEN STRING)
.data
	BUF	DB 80		;(MAX LENGTH OF ARRAY)
		DB 00		;(ACTUAL LENGTH OF ARRAY)
		DB 80 DUP (0)	;(STARTING OF ARRAY)
        STR1    DB 10,13,'ENTER THE STRING:$'
        STR2    DB 10,13,'TOTAL NO:$'
        STR3    DB 10,13,'TOTAL ALPHABETS:$'
        STR4    DB 10,13,'TOTAL SPECIAL CHAR:$'
	NUM	DB 0
	SPC	DB 0
	ALPHA DB 0
.code
START:  MOV     AX,@data        ; Initialisation
	MOV	DS,AX
	MOV	AH,09H
	MOV	DX,OFFSET STR1	; Address of STR1
	INT	21H
	MOV	AH,0AH
	MOV	DX,OFFSET BUF	; Address of max length
	INT	21H
	MOV	BX,OFFSET BUF
	INC	BX		; Address of actual
	MOV	DL,[BX]		; Length
	INC	BX		; Starting of array
NEXT:	MOV	AL,[BX]
	CMP	AL,30H
	JB	INCSPC		; SPC character
	CMP	AL,3AH		; If < 3AH it is a number
	JB	INCNUM
	CMP	AL,41H		; Between 3AH & 41H it
	JB	INCSPC		; SPC character
	CMP	AL,5BH		; If < 5BH it is a alphabet
	JB	INALP
	CMP	AL,61H		; Between 5BH & 61H it
	JB	INCSPC		; Is a SPC char
	CMP	AL,7BH		; If < 7BH it is a alphabet
	JB	INALP
INCSPC:	MOV	AL,SPC
	ADD	AL,01H		; INCR SPC counter
	DAA
	MOV	SPC,AL
	INC	BX		; Next character
	DEC	DL		; DECR counter
	JNZ	NEXT
	JMP	DISPLY
INCNUM:	MOV	AL,NUM
	ADD	AL,01H		; INCR number counter
	DAA
	MOV	NUM,AL
	INC	BX
	DEC	DL
	JNZ	NEXT
	JMP	DISPLY
INALP:	MOV	AL,ALPHA
	ADD	AL,01H		; INCR ALPHABET COUNTER
	DAA
	MOV	ALPHA,AL
	INC	BX
	DEC	DL
	JNZ	NEXT
	JMP	DISPLY
DISPLY:	MOV	DX,OFFSET STR2	; ADDRS of STR2
	MOV	AH,09H
	INT	21H
	MOV	AL,NUM
	AND	AL,0F0H		; Get MSB in AL rotate AL
	MOV	CL,04H		; Four times
	ROR	AL,CL
	ADD	Al,30H		; Convert to ASCII
	MOV	DL,AL
	MOV	AH,02H		; Output character
	INT	21H
	MOV	AL,NUM
	AND	AL,0FH		; Get LSB in AL
	ADD	AL,30H
	MOV	DL,AL		; Convert to ASCIII
	INT	21H
	MOV	DX,OFFSET STR3	; Address of STR34
	MOV	AH,09H		; Output character string
	INT	21H
	MOV	AL,ALPHA
	AND	AL,0F0H
	MOV	CL,04H
	ROR	AL,CL
	ADD	AL,30H
	MOV	DL,AL
	MOV	AH,02H
	INT	21H
	MOV	AL,ALPHA
	AND	AL,0FH
	ADD	AL,30H
	MOV	DL,AL
	MOV	AH,02H
	INT	21H
	MOV	DX,OFFSET STR4	; ADDRS of STR4
	MOV	AH,09H
	INT	21H
	MOV	AL,SPC
	AND	AL,0F0H
	MOV	CL,04
	ROR	AL,CL
	ADD	AL,30H
	MOV	DL,AL
	MOV	AH,02H
	INT	21H
	MOV	AL,SPC
	AND	AL,0FH
	ADD	AL,30H
	MOV	DL,AL
	MOV	AH,02H
	INT	21H
	MOV	AH,4CH		; Terminate program
	INT	21H
        END     START


⌨️ 快捷键说明

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