Ensamblador - programacion en bajo nivel nasm

   
Vista:

programacion en bajo nivel nasm

Publicado por Euler Vladimirck Mena Mayo (1 intervención) el 13/03/2009 18:32:39
Hacer un programa que lea el teclado e imprima en pantalla normalmente, adicionalmente cada cuatro segundos debe aparecer solamente en el siguiente letrero en un renglón aparte:

"Huy, que programa tan bacano!”

El programa debe continuar en un renglón aparte escribiendo en pantalla lo leído en teclado como se estaba haciendo.

Si el mismo programa detecta la secuencia de ocho letras "COLOMBIA" en mayúsculas entonces debe mostrar el letrero de siete letras "Gracias" y deja de escribir en pantalla y leer el teclado durante un segundo y termina el programa.

No se usara ESC para salir.


bits 16
org 0x0100

section .txt


clock: mov ah,02ch
int 21h
cmp dh,00
je near mensaje
cmp dh,04
je near mensaje
cmp dh,08
je near mensaje
cmp dh,12
je near mensaje
cmp dh,16
je near mensaje
cmp dh,20
je near mensaje
cmp dh,24
je near mensaje
cmp dh,28
je near mensaje
cmp dh,32
je near mensaje
cmp dh,36
je near mensaje
cmp dh,40
je near mensaje
cmp dh,44
je near mensaje
cmp dh,48
je near mensaje
cmp dh,52
je near mensaje
cmp dh,56
jmp clock



leerc: mov ah,06h
mov dl,0FFh
int 21h

jz leerc
mov [c],al
cmp al,'c'
je leero

mov ah,02h
mov dl,[c]
int 21h
jmp leerc

leero: mov ah,06h
mov dl,0FFh
int 21h

jz leero
mov [c],al
cmp al,'o'
je leerl
jmp leerc

leerl: mov ah,06h
mov dl,0FFh
int 21h

jz leerl
mov [c],al
cmp al,'l'
je leero
jmp leerc

leero2: mov ah,06h
mov dl,0FFh
int 21h

jz leero2
mov [c],al
cmp al,'o'
je leerm
jmp leerc

leerm: mov ah,06h
mov dl,0FFh
int 21h

jz leerm
mov [c],al
cmp al,'m'
je leerb
jmp leerc

leerb: mov ah,06h
mov dl,0FFh
int 21h
; call delay
jz leerb
mov [c],al
cmp al,'b'
je leeri
jmp leerc

leeri: mov ah,06h
mov dl,0FFh
int 21h
; call delay
jz leeri
mov [c],al
cmp al,'i'
je leera
jmp leerc

leera: mov ah,06h
mov dl,0FFh
int 21h
; call delay
jz leera
mov [c],al
cmp al,'a'
je salir
jmp leerc

salir:

;mov ah,09h
;mov dx,program
;int 21h

;program: db 'gracias$'

mov ax,$4c00
int 21h
;delay: mov bx,0Fh
; sub bx,01h
; cmp bx,00h
; jnz delay
; ret

mensaje: mov ah,09h
mov dx,TEXTO
int 21h
jmp clock



section .data
c db 00
TEXTO db 10,13,'HUY UN PROGRAMA BACANISIMO',10,13,'$'


ESO ES LO QUE LLEVO Y NO SE COMO ACOMODAR LO DEMAS QUIEN PUEDE AYUDARME PARA MAÑANA
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:programacion en bajo nivel nasm

Publicado por Perceval (13 intervenciones) el 13/04/2009 23:17:42
Tendrias que haber usado, creo, el vector de interrupciones del Reloj. La 8. Para que atienda a una funcion que se llame por ejemplo mostrarTexto. Y ahi adentro hacer la comprobacion apartir de una variable que almacenes los valores tecleados correctamente hasta ese momento. Si es que no entendi mal el enunciado, Lo terminaste.
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:programacion en bajo nivel nasm

Publicado por eric (1 intervención) el 23/06/2009 07:54:32
necesito un programa que limpie pantalla pero que se despliegue en forma de persianas, de derecha a izquiera, izquierda a derecha, arriba-abajo, abajo arriba... y que gnere un numero aleatorio..
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