Ensamblador - Programa en Ensamblador

   
Vista:

Programa en Ensamblador

Publicado por Luis Gasca (1 intervención) el 13/06/2008 08:21:55
El programa es el siguente y ocupo el codigo si alguien lo puede resolver por favor mandenme el codigo sale , ok , gracias.

1. Leer una cadena y mostrar la misma cadena sin espacios en blanco.

2. Leer desde teclado una cadena, una posicion inicial y longitud de la subcadena. L a subcadena se obtiene con los caracteres de la original, empesando con la posicion inicial asta la longitud dada, imprimir subcadena.

3. Leer una cadena y un caracter desde teclado. Buscar el caracter en la cadena e imprimir la ultima posicion en que se encuentra el caracter en la cadena, es decir le ds el caracter A y la cadena JAMAS tiene que imprimir el numero 4 por que la ultima posicion de A esta en la posicion 4.

espero sus respuestas gracias....
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:

Publicado por MSH (121 intervenciones) el 14/06/2008 04:24:22
Saludos:

Esta es la solución al primer problema. Si quieres la solución del tercero, muéstrame tu código del segundo problema. (Resolví los tres, pero quiero que aportes algo)
:---------------------------------------------------------------------------------------------
page 60,132
title space.asm introduce un nombre y quita espacios

.model small
.stack
.data
mens db 'Teclea tu nombre',0ah,0dh,'$' ;mensaje de inicio

cadena label byte ;aquí defines la estructura de la cadena:
max db 21 ;máximo de caracteres (20 letras + el enter)
cant db ? ;almacena la cantidad real de caracteres tecleados
campo db 21 dup (' ') ;acepta espacios en la cadena

.code
.startup

mov ax,@data ;respalda los datos a introducir en
mov ds,ax ;los registros ds y es para que no se pierdan
push ds ;durante las instrucciones siguientes
pop es

;------Inicia el programa--------------------------

mov ah,09h ;petición para mostrar mensaje
lea dx,mens
int 21h

mov ah,0ah ;petición para introducir cadena
mov dx,offset cadena
int 21h

lea si,campo ;mandamos la cadena al registro si para empezar
;a evaluar

ciclo:
mov al,[si]
cmp al,20h ;verifica si es caracter o es espacio
jne disp ;i es caracter, lo despliega en pantalla
inc si ;si es espacio, lo salta y pasa al siguiente caracter
jmp ciclo

disp:

mov ah,02h ;petición para desplegar
mov dl,al
int 21h
cmp al,0dh ;si encuentra un enter,
je salir ;sale del programa
inc si
jmp ciclo

salir:

.exit
end
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar