當前位置:編程學習大全網 - 編程語言 - 匯編語言編程問題:用鍵盤輸入壹個字符串,含有若幹大小寫字母,數字,要求統計出三種類型各有多少個,並顯示

匯編語言編程問題:用鍵盤輸入壹個字符串,含有若幹大小寫字母,數字,要求統計出三種類型各有多少個,並顯示

;用鍵盤輸入壹個字符串(回車結束),含有若幹大小寫字母,數字,要求統計出三種類型各有多少個,並顯示

data segment

mess db 0dh,0ah,'Input String: $'

sz db 0 ;數字個數

dAx db 0 ;大寫個數

xXx db 0 ;小寫個數

SZ_C DB 100 DUP ('$')

DX_C DB 100 DUP ('$')

XX_C DB 100 DUP ('$')

CRLF DB 0DH,0AH,'$'

data ends

code segment

assume cs:code, ds:data

main proc far

start:

push ds

xor ax,ax

push ax

mov ax,data

mov ds,ax

;-------------------------

call crlf_p

mov ah,09

mov dx,offset mess

int 21h

next:

mov ah,01

int 21h

CMP AL,0DH

JNZ GOON

JMP DISP_1 ;顯示結果

GOON:

cmp al,'0'

jl NEXT

cmp al,'9'

jg NO_0_9

inc SZ

MOV BX,OFFSET SZ_C

MOV CX,0

MOV CL,SZ

ADD BX,CX

DEC BX

MOV [BX],AL

JMP NEXT

NO_0_9:

cmp al,'A'

jl NEXT

cmp al,'Z'

jg NO_D_AZ

inc DAX

MOV BX,OFFSET DX_C

MOV CX,0

MOV CL,DAX

ADD BX,CX

DEC BX

MOV [BX],AL

JMP NEXT

NO_D_AZ:

cmp al,'a'

jl NEXT

cmp al,'z'

jg NO_X_AZ

inc XXX

MOV BX,OFFSET XX_C

MOV CX,0

MOV CL,XXX

ADD BX,CX

DEC BX

MOV [BX],AL

JMP NEXT

NO_X_AZ:

JMP NEXT

DISP_1:

CALL CRLF_P

CALL CRLF_P

mov al,SZ

CALL DISP_CZR

mov ah,09

lea dx,SZ_C

int 21h

;-----------------

CALL CRLF_P

mov al,DAX

CALL DISP_CZR

mov ah,09

lea dx,DX_C

int 21h

;-------------------

CALL CRLF_P

mov al,XXX

CALL DISP_CZR

mov ah,09

lea dx,XX_C

int 21h

;---------------------

CALL CRLF_P

;-------------------------

ENDD:

ret

main endp

;=========================================

DISP_CZR PROC NEAR ;顯示10進制數字子程序

xor ah,ah

;mov al,num

mov bl,100d

div bl

push ax

add al,30h

mov dl,al

mov ah,2

int 21h

pop ax

mov al,ah

xor ah,ah

mov bl,10d

div bl

add ax,3030h

push ax

pop dx

mov ah,2

int 21h

mov dl,dh

int 21h

MOV DL,':'

INT 21H

mov dl,' '

int 21h

RET

DISP_CZR ENDP

;==========================================

CRLF_P PROC NEAR ;回車換行子程序

mov ah,09

LEA DX,CRLF

INT 21H

RET

CRLF_P ENDP

;=========================================

code ends

end start

用MASM5.0匯編,用LINK連接,以下是運行實例:

Input String: DHGFEUUYURYEDBJB834658634853NGFJ8HJHGjsfjdf8fhdjfh

014: 83465863485388

024: DHGFEUUYURYEDBJBNGFJHJHG

012: jsfjdffhdjfh

  • 上一篇:生物信息學主要研究什麽?
  • 下一篇:數控車床操作入門的目錄
  • copyright 2024編程學習大全網