Ensamblador - programa en ensamblador

   
Vista:

programa en ensamblador

Publicado por raul (2 intervenciones) el 01/08/2008 00:00:39
Hola como veran soy nuevo en esto, lo que pasa es ke me urge me ayuden, me dejaron hacer un progrmama que lea una cadena de no menos de 10 caracteres y no mas de 50, y que imprima la cadena con vocales de un color y consonantes en otro color diferente. me urge su ayuda, por que no encuentro quien me ayude espero por favor pueda ayudarme alguien a resolver este complicado programa para un principiante como yo.
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:programa en ensamblador

Publicado por m0skit0 (10 intervenciones) el 01/08/2008 15:43:28
Bueno, la primera pregunta es en qué SO vas a programar esto. O si es en plano (flat) ensamblador (es decir, sin llamadas al sistema y con el control total del hardware). Si es el segundo caso, prepárate para sudar xD--
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

RE:programa en ensamblador

Publicado por MSH (121 intervenciones) el 01/08/2008 17:34:00
Saludos!

Generalmente hago esta asociación:

NOVATO=ENSAMBLADOR WINDOWS 16 BITS
INTERMEDIO =ENSAMBLADOR LINUX O WINDOWS 16 Y 32 BITS (CONSOLA)
AVANZADO Y/O EXPERTO = ENSAMBLADOR 32 BITS (API'S)

Por lo tanto, este es el código para el compañero Raul

;....................................................................................................................................................
.model small
.stack 64
.data
CR equ 13
LF equ 10
mini db ' Introduce la cadena:',CR,LF,'$'
resti db 'Min=10 - Max=50',CR,LF,'$'

char db 0
cont db 0
col db 0

cadena label byte
maxi db 51
tam db 0
campo db 51 dup (' ')

rojo db 0ch
azul db 09h
;------------------------------------------------------------------------------------------------------
.code
inicio:
mov ax,@data
mov ds,ax
push ds
pop es

call clean ;limpia pantalla
mov ah,02h ;posiciona cursor en columna 0 renglon 0
mov bh,0
mov dh,0
mov dl,0
int 10h

mov ah,09h ;mensaje de inicio
lea dx,mini
int 21h

mov ah,0ah ;peticion para introducir cadena
lea dx,cadena
int 21h


cmp tam,10 ;restricción de tamaño de cadena
jb advert
jmp continue ;si se cumple continua en el programa
advert:
mov ah,09h ;si no , aparece el mensaje del minimo y maximo
lea dx,resti
int 21h
jmp salir ;y sale del programa

continue:
lea si,campo ;prepara la cadena para empezar el scaneo de caracteres
dec tam
call scases
salir:
mov ah,10h
int 16h
mov ax,4c00h
int 21h
;..........................................................................................................................................
clean proc
mov ax,0700h
mov bh,07h
mov cx,0000h
mov dx,314fh
int 10h
ret
clean endp
;..........................................................................................................................................
scases proc
ciclo:
mov ah,[si]
cmp ah,'A'
je sipi
cmp ah,'a'
je sipi
cmp ah,'E'
je sipi
cmp ah,'e'
je sipi
cmp ah,'I'
je sipi
cmp ah,'i'
je sipi
cmp ah,'O'
je sipi
cmp ah,'o'
je sipi
cmp ah,'U'
je sipi
cmp ah,'u'
je sipi

call printcons ;subrutina para pintar las consonantes
mov bl,cont
cmp bl,tam
je largo
inc si
inc cont
jmp ciclo

sipi:
call printvoc ;subrutina para pintar las vocales
mov bl,cont
cmp bl,tam
je largo
inc si
inc cont
jmp ciclo

largo:
ret
scases endp
;...........................................................................................................................................
printvoc proc
mov char,ah

mov ah,02h
mov bh,0
mov dh,10
mov dl,col
int 10h

mov ah,09h
mov al,char
mov bh,0
mov bl,rojo
mov cx,1
int 10h
inc col
ret
printvoc endp

;.............................................................................................................................................
printcons proc
mov char,ah

mov ah,02h
mov bh,0
mov dh,10
mov dl,col
int 10h

mov ah,09h
mov al,char
mov bh,0
mov bl,azul
mov cx,1
int 10h

inc col
ret
printcons endp
end inicio

; Espero sea de utilidad.
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

RE:programa en ensamblador

Publicado por raul (2 intervenciones) el 01/08/2008 22:06:48
Hola save usted es mi salvador completamente, gracias por lo del programa y ps me fue de muchisima ayuda como no se imagina, jeje ps no sabria como agradecerle, y ps ojala pueda consultarlo a usted si llegase tener alguna otra duda cuidese y gracias otra vez.
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

RE:programa en ensamblador

Publicado por m0skit0 (10 intervenciones) el 02/08/2008 16:22:14
PS!

Wena MSH.
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

RE:programa en ensamblador

Publicado por Dyana (1 intervención) el 20/09/2008 08:04:19
hola, tengo algunos problemas con hacer procedimientos recursivos en ensamblador trabajo en Kate - Mandriva, agradeceria q alguien me de la manito gracias
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