SoloCodigo
Programación General => ASM (Ensamblador) => Mensaje iniciado por: egosumdan en Miércoles 15 de Abril de 2009, 05:17
-
Necesito ayuda para crear un menu de opciones en turbo assemble.
-
Tres cosas:
A. Un bucle
B. Escribir en consola
C. Leer el teclado
B y C las podes hacer con la interrupcion 021h por ejemplo, busca informacion e intentalo, si tenes algun problema con eso te ayudaremos.
-
Tres cosas:
A. Un bucle
B. Escribir en consola
C. Leer el teclado
B y C las podes hacer con la interrupcion 021h por ejemplo, busca informacion e intentalo, si tenes algun problema con eso te ayudaremos.
Daniel: Gracias por la ayuda anterior, ahora tengo otro pequeño problema, lo que pasa es que para ambiar a modo grafico y para cambiar el color de fondo de la pantalla utilizo el siguiente codigo:
mov ah,0h
mov al,10h
int 10h
mov ah,11
mov bh,00
mov bl,01
int 10h
pero al ejecutarlo la ventana del MS-DOS cambia a pantalla completa pero distorcionada y el color de fondo no cambia, me podrias explicar que codigo tengo que utilizar,por favorr. Gracias.
-
Lo siento pero si lo que necesitas es hacer un menu grafico sera una tarea ya que es totalmente obsoleto, busca en Google mejor.
-
lo que pasa es que para ambiar a modo grafico y para cambiar el color de fondo de la pantalla utilizo el siguiente codigo:
mov ah,0h
mov al,10h
int 10h
mov ah,11
mov bh,00
mov bl,01
int 10h
pero al ejecutarlo la ventana del MS-DOS cambia a pantalla completa pero distorcionada y el color de fondo no cambia, me podrias explicar que codigo tengo que utilizar,por favorr. Gracias.
para cambiar color de fondo en MS-DOS es mejor usar la funcion 06h, interrupcion 10h:
INT 10h / AH = 06h - scroll up window.
INT 10h / AH = 07h - scroll down window.
input:
AL = number of lines by which to scroll (00h = clear entire window).
BH = attribute used to write blank lines at bottom of window.
CH, CL = row, column of window's upper left corner.
DH, DL = row, column of window's lower right corner.
en el nibble mas significativo de BH va el color del fondo y en el menos significativo el color del texto asi por ejemplo quisieras fondo azul, letras negras BH deberia ser igual a: 10h, fondo negro, letras azules BH=01h
-
Gracias por contestar mis dudas, ahora tengo una nueva, lo q pasa es q necesito trazar una linea, pero como puedo hacerlo con un ciclo loop:
mov si,0
mov cx,20
aviso:
mov ah,12
mov dx,200
mov cx,[80+si]
mov al,0bh
int 10h
inc si
loop aviso
pero este codigo me imprime pixeles pero dispersos en la pantalla y quiero q se impriman uno seguidi de otro formando una linea continua, podrian ayudarme. Porfavor
-
pero este codigo me imprime pixeles pero dispersos en la pantalla y quiero q se impriman uno seguidi de otro formando una linea continua, podrian ayudarme. Porfavor
lo que se debe hacer primero es ubicar el cursor en la posicion donde se quiere imprimir la linea (esto se hace con la funcion 02h de la interrupcion 10h, en dl va la columna y en dh la fila, en bh= el numero de pantalla, generalmente 0), la linea se debe hacer con el ascii de "─" que es C4h, se imprime con la funcion para imprimir un caracter (funcion 02h de la int 21h) despues de que se imprime en pantalla automaticamente el cursor se pasa a la siguiente posicion, por lo que lo que se deja en el lazo es la impresion de caracteres, asi:
-ubica posicion inicial
-aviso:
-imprime caracter
-loop aviso
claro que habria que poner algo para que se salga del lazo talvez al llegar a cierta posicion de la pantalla.