¿Cómo se imprime una cara sonriente en el montaje?
Pregunta
escribí un programa en ensamblador y compilé. Tiene el propósito de imprimir una cara sonriente azul y luego esperar a que el usuario pulse una tecla antes de que termina. que sí hace que el último bit pero no imprime la cara sonriente. ¿Puede alguien explicar lo que he hecho mal?
CSEG segment
org 100h
Begin:
mov ax,0B800h
mov es,ax
mov di,0
mov ah,31
mov al,1
mov es:[di],ax
mov ah,10h
int 16h
int 20h
CSEG ends
end Begin
compilé con
Solución
Sólo se puede meter la memoria intermedia de vídeo directamente si usted está en un modo de vídeo de sólo texto. Supongo que usted está utilizando Windows de algún tipo y no realmente el arranque DOS, por lo que probablemente está en un modo gráfico.
Lo que pueden ser capaz de hacer es abrir una ventana de consola y luego Alt Intro para ir a un modo de texto de pantalla completa. Pruebe a ejecutar su programa de allí.
Otros consejos
Ha sido alrededor de un año más o menos desde que trabajé con MASM y el único libro de referencia que tengo en casa es MIPS, así que estoy cierto que un poco oxidada, sin embargo imprimir en pantalla requiere una interrupción del sistema (int 21h), sin embargo, la única interrupción del sistema que estoy viendo es la llamada terminación del programa después de la interrupción del teclado.
Su código está bien, sólo tiene que ejecutar ya sea en pantalla completa como se sugiere Greg Hewgill, o la creación de la ventana de comandos para utilizar una fuente de trama de edad (como sistema). Haga clic derecho en la barra de título de la ventana y echar un vistazo a la ficha Fuente.