Ensamblador - prac1

 
Vista:

prac1

Publicado por jan (1 intervención) el 12/12/2005 23:04:47
Hola soy nuevo en ensamblador .
He hecho un programa de una matriz, que me pida dos coordenadas y un caracter. Posicionar dicho caracter en las coordenadas introducidas de la matriz.
Me podeis ayudar?

gracias.

.MODEL SMALL

.STACK 200h

.DATA

posx db 0

posy db 0

caracter db 'O'

texto1 db 13,10,'Introduce columna (0-20):$'

texto2 db 13,10,'Introduce fila (0-20):$'

texto3 db 13,10,'Introduce un caracter:$'

.CODE

MAIN PROC

mov ax, @DATA

mov ds, ax
mov ah, 0fh ;
int 10h
mov ah,00
int 10h

mov cx, 20
FOR1: mov posy,cl

mov cx, 20
FOR2: mov posx,cl
push cx
CALL PosicionaImprime
pop cx
LOOP FOR2
mov cl, posy
LOOP FOR1
mov ah, 02

mov bh, 0
;plano video
mov dh, 23 ;fila
mov dl, 0
int 10h

mov dx, OFFSET texto1
Mov ah, 9
int 21h

mov ah, 01h
int 21h
mov posy,al

mov dx, OFFSET texto2
Mov ah, 9
int 21h

mov ah, 01h
int 21h
mov posx,al

mov dx, OFFSET texto3
Mov ah, 9
int 21h

mov ah, 01h
int 21h
mov caracter,al

CALL PosicionaImprime

mov ah,07h
int 21h

mov ax, 4C00H
int 21h



MAIN ENDP

PosicionaImprime PROC

;rutina que imprime el carácter en las coordenadas posx, posy en pantalla
;límite de las coordenadas de pantalla: (0-24,0-79)

;gotoxy(posx,posy) ;Coloca el cursor en la posición posx,posy

mov bh,0 ;plano de video
mov dl,posy ;columna
mov dh,posx ;fila

mov ah,02h ;servicio 2
int 10h ;llamada al operativo, función 10h, servicio 2,
;coloca el cursor en una posición determinada

;putch(caracter) ;imprime carácter

mov al,caracter ;carácter a imprimir
mov cx,1 ;frecuencia de repetición
mov bh,0 ;plano de video
mov ah,0ah ;servicio 0ah
int 10h ;llamada al operativo, función 10h, servicio 0Ah,
;imprime un carácter en la posicion del cursor

RET

PosicionaImprime ENDP


END MAIN
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