Cómo escribir un programa en lenguaje ensamblador para contar la longitud de una cadena y generarla
SEGMENTO DE DATOS
MSG1 DB 'LONGITUD:', '$'
SHEX DB '0123456789ABCDEF$'
MAXLEN EQU 200H
LOS DATOS TERMINAN
SEGMENTO DE CÓDIGO; definición del segmento de código
asume CS: CÓDIGO, DS: DATOS
INICIO:
mov ax, DATA
mov ds, ax
; inicializa los registros requeridos
mov ax, 0
mov bl, 24H
mov di, offset MSG1
; Loop compara cada carácter en la cadena y coloca el valor estadístico en AX
MYLOOP:
p>cmp byte ptr[di], bl
jz EXIT
inc di
inc ax
jmp MYLOOP
>SALIR:
empujar hacha
; mostrar contenido del mensaje
mov dx, desplazamiento MSG1
mov ah, 9h
int 21h
pop ax
llamar a printlen
mov ah, 4ch
int 21h
p>; Imprime la longitud y guárdala en AX
printlen proc cerca
mov cx, 4
PRINTLOOP:
hacha de rol, 1
hacha de rol, 1
hacha de rol, 1
hacha de rol, 1
hacha de empuje p>
mov dl, al
y dl, 0FH
mov bx, offset SHEX
agregar bl, dl
mov dl, byte ptr [bx]
mov ah, 2
int 21h
pop ax
loop PRINTLOOP
ret
printlen endp
CÓDIGO FINALIZA
FIN INICIO