Red de conocimiento informático - Conocimiento sistemático - Estadísticas sobre el número de caracteres en programación ensambladora

Estadísticas sobre el número de caracteres en programación ensambladora

; Ingrese una serie de cadenas que terminen en $ desde el teclado, cuente el número de caracteres numéricos que contiene y almacene el resultado en COUNT.

;Este programa se compila y ejecuta correctamente.

Segmento de código

Asume CS:Code, DS:Code

-

; ( Str_Addr)

; Entrada:

; Str_Addr= = Dirección de cadena (requerida en el segmento de datos)

; Uso: Dirección de cadena de salida

; Ejemplo de uso: Salida PromptStr

Dirección de cadena de macro de salida

lead dx, Str_address

mov ah, 9

int 21h

EndM

;-

Prompt_Str db 'Ingrese una serie de caracteres: $ '

¿Cuenta como db?

Inicio: presione cs

pop ds para que el segmento de datos y el segmento de código estén en el mismo segmento.

La salida Prompt_Str solicita ingresar un número

lea dx, string

Ah, 0ah

int 21h

lea si, String

lodsw

xchg ah, al

XOR ah, ah

Empuja el hacha

Cx popular

Recuento de movimientos, 0

cld

Estadísticas: lodsb

cmp al, '$'

je export_process

cmp al, '0'

jb Next_one

cmp al, '9'

jaNext

Recuento de empresas

Siguiente: Estadísticas de bucle

Exit_Proc: mov ah, 4ch finaliza el programa

int 21h

p>

String db 255, 0

Fin del código

El fin comienza; este es el final de la compilación

Segunda pregunta

; Este programa se compila y ejecuta correctamente.

; Se sabe que el área de datos tiene una cadena de longitud 100. La dirección inicial es STR. Según las estadísticas, esta cadena sólo puede tener el número de símbolos con *. Existe en unidades de conteo y no permite instrucciones de manipulación de cadenas.

Segmento de código

Asume CS:Code, DS:Code

-

; ( Str_Addr)

; Entrada:

; Str_Addr= = Dirección de cadena (requerida en el segmento de datos)

; Uso: Dirección de cadena de salida

; Ejemplo de uso: Salida PromptStr

Dirección de cadena de macro de salida

lead dx, Str_address

mov ah, 9

int 21h

EndM

; -

búfer db 100 dup(?)

cuenta db 0

Inicio: push cs

pop ds convierte el segmento de datos y el segmento de código en el mismo segmento.

lacey,buffer

mov CX 100

cld

stats:lodsb

cmp al, ' * '

jne Next_one

Recuento de empresas

Siguiente: Estadísticas de bucle

Exit_Proc: mov ah, 4ch finaliza el programa

p>

int 21h

Fin del código

El fin comienza; este es el final de la compilación