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
"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


0