Red de conocimiento informático - Conocimiento sistemático - ¿El ensamblador clasifica y cuenta el número de letras mayúsculas y minúsculas, números y otros caracteres en una cadena?

¿El ensamblador clasifica y cuenta el número de letras mayúsculas y minúsculas, números y otros caracteres en una cadena?

Los resultados estadísticos se guardan en X1, X2, X3 y X4 en secuencia

segmento de datos

buf db 'asdg123456,^&%$#$ '

X1 db 0

X2 db 0

X3 db 0

X4 db 0

los datos terminan

segmento de código

suponga cs:code, ds:data

inicio:

mov ax,data

mov ds ,ax

lea bx,buf ;Ubica el primer carácter

mov cx,X1-buf ;Calcula el número de caracteres

lop:

mov al,[bx]

cmp al,'a'

jb next1

cmp al,'z'

ja next1

inc X1 ;Si es menor que a y mayor que z, salta al siguiente elemento, de lo contrario p>cmp al,'A'

jb next2

cmp al,'Z'

ja next2

inc X2 ;

Si es menor que A y mayor que Z , salte al siguiente elemento; de lo contrario, X2+1

jmp exit

next2:

cmp al,' 0'

jb next3

cmp al,'9'

ja next3

inc X3 ;

Si es menor que 0 y mayor que 9 , salte al siguiente elemento, de lo contrario X3+1

jmp exit

next3:

inc X4;

El resto son otros caracteres,

X4+1exit:inc bxloop lop;

Bucle

mov ax,4c00h

int 21h

el código termina

finaliza el inicio