Escribir un programa en lenguaje ensamblador con los siguientes requisitos:
El código para mostrar la posición en hexadecimal es el siguiente:
SEGMENTO DSEG
msgi db "por favor ingrese una cadena:$" muestra información y mensajes; para entrada Una cadena de caracteres
buf db 50,0
table db 50 dup (?); entrada de cadena buffer
msgd db 0dh,0ah," la ubicación es:$";Muestra información, solicitando la ubicación de 0
DSEG ENDS
CSEG SEGMENT
asume cs:CSEG, ds:DSEG,es :DSEG
MAIN PROC FAR; Entrada del programa principal
mov ax, dseg
mov ds, ax
mov es,ax
lea dx,msgi; muestra información y solicita ingresar una cadena de caracteres
mov ah,9
int 21h
lea dx ,buf; enter String
mov ah,0ah
int 21h
lea si,buf
mov cl,[si+1 ]; input El número real de caracteres se almacena en CX
mov ch,0
lea di, table, ingrese la dirección inicial de los caracteres y guárdela en DI
mov al,30h ;El carácter 0 a buscar se envía a AL
cld Establece el indicador de dirección en el incremento de dirección
repnz scasb
;jnz tj
lea dx,msgd; muestra información, solicitando la ubicación de 0
mov ah,9
int 21h
sub di,tabla de desplazamiento
mov bx,di
llamar a disp; muestra la posición en forma decimal
tj:
mov ah,1; presione cualquier tecla para salir
int 21h
mov ax, 4c00h ;El programa finaliza y regresa al sistema operativo
int 21h
ENDP PRINCIPAL
disp proc cerca
mov ch,4
rotar:
mov cl,4
rol bx,cl
mov al,bl
and al,0fh
add al,30h
cmp al,3ah
jl printit
agregar al,7h
printit:
mov dl,al
mov ah,2
int 21h
dec ch
jnz rotar
mov dl,'H'
mov ah,2
int 21h
p>ret
disp endp
CSEG ENDS
FIN PRINCIPAL