Logo Studenta

Cine

Esta es una vista previa del archivo. Inicie sesión para ver el archivo original

cursor macro p,f,c 
 mov ah,02
 mov bh,p
 mov dh,f
 mov dl,c
 int 10h
endm
 
entrada macro 
 mov ah,01
 int 21h
endm 
imprimir macro m
 mov ah,09
 lea dx,m 
 int 21h 
endm 
libres macro c,d1,d2 
 mov ax,0600h
 mov bh,20h
 mov cx,c
 mov dh,d1
 mov dl,d2
 int 10h
endm 
 
ocupados macro c,d1,d2 
 mov ax,0600h
 mov bh,40h
 mov cx,c
 mov dh,d1
 mov dl,d2
 int 10h
endm 
 
pila segment
 db 64 dub(?) 
pila ends
datos segment
 msg db 'Bienvenido a Cines Progreso$'
 msg1 db 13,10,'Por el momento solo tenemos la pelicula Jurassic World$'
 msg2 db 13,10,'Estos son los asientos disponibles, seleccione el suyo por favor.$' 
 msg3 db 'Ingresar la letra de la fila: $'
 msg4 db 13,10,'Ingresar el numero de asiento: $' 
 msg5 db 13,10,'Para terminar el programa pulse ESC. $'
 A db 'A$'
 B db 'B$'
 C db 'C$'
 D db 'D$' 
 C1 db '1 2 3 4 5 6$' 
 C2 db '1 2 3 4 5 6$'
 C3 db '1 2 3 4 5 6$'
 C4 db '1 2 3 4 5 6$'
 
datos ends
codigo segment
assume ss:pila, ds:datos, cs:codigo
inicio: mov ax,datos
 mov ds,ax
 
 imprimir msg
 imprimir msg1
 imprimir msg2 
 
 cursor 0,5,2
 imprimir A
 
 cursor 0,4,4
 imprimir C1
 
 libres 0504h,5,4
 libres 0506h,5,6
 libres 0508h,5,8 
 libres 050Ah,5,10
 libres 050Ch,5,12
 libres 050Eh,5,14 
 
 cursor 0,8,2
 imprimir B 
 
 cursor 0,7,4
 imprimir C2
 
 libres 0804h,8,4
 libres 0806h,8,6
 libres 0808h,8,8 
 libres 080Ah,8,10
 libres 080Ch,8,12
 libres 080Eh,8,14 
 
 cursor 0,11,2
 imprimir C 
 
 cursor 0,10,4
 imprimir C3
 
 libres 1104h,11,4
 libres 1106h,11,6
 libres 1108h,11,8 
 libres 110Ah,11,10
 libres 110Ch,11,12
 libres 110Eh,11,14
 
 cursor 0,14,2
 imprimir D
 
 cursor 0,13,4
 imprimir C4
 
 libres 1404h,14,4
 libres 1406h,14,6
 libres 1408h,14,8 
 libres 140Ah,14,10
 libres 140Ch,14,12
 libres 140Eh,14,14 
 
menu: cursor 0,16,0
 imprimir msg3 
 imprimir msg5
 entrada 
 cmp al,65 ;A
 je filaA
 cmp al,97 ;a
 je filaA
 cmp al,66 ;B
 je filaB
 cmp al,98 ;b
 je filaB 
 cmp al,67 ;C
 je filaC
 cmp al,99 ;c
 je filaC
 cmp al,68 ;D
 je filaD
 cmp al,100 ;d
 je filaD 
 cmp al, 27 ;ESC
 je terminar 
 
filaA: 
 imprimir msg4
 entrada 
 cmp al, 49
 je pintarA1
 cmp al, 50 
 je pintarA2
 cmp al, 51 
 je pintarA3
 cmp al, 52 
 je pintarA4
 cmp al, 53
 je pintarA5
 cmp al, 54 
 je pintarA6
 
 pintarA1: ocupados 0504h,5,4 
 jmp menu
 pintarA2: ocupados 0506h,5,6
 jmp menu 
 pintarA3: ocupados 0508h,5,8
 jmp menu 
 pintarA4: ocupados 050Ah,5,10
 jmp menu
 pintarA5: ocupados 050Ch,5,12
 jmp menu 
 pintarA6: ocupados 050Eh,5,14
 jmp menu 
filaB: 
 imprimir msg4
 entrada 
 cmp al, 49
 je pintarB1
 cmp al, 50 
 je pintarB2
 cmp al, 51 
 je pintarB3
 cmp al, 52 
 je pintarB4
 cmp al, 53
 je pintarB5
 cmp al, 54 
 je pintarB6
 
 pintarB1: ocupados 0804h,8,4 
 jmp menu 
 pintarB2: ocupados 0806h,8,6 
 jmp menu
 pintarB3: ocupados 0808h,8,8
 jmp menu
 pintarB4: ocupados 080Ah,8,10
 jmp menu
 pintarB5: ocupados 080Ch,8,12
 jmp menu
 pintarB6: ocupados 080Eh,8,14
 jmp menu
filaC: 
 imprimir msg4
 entrada 
 cmp al, 49
 je pintarC1
 cmp al, 50 
 je pintarC2
 cmp al, 51 
 je pintarC3
 cmp al, 52 
 je pintarC4
 cmp al, 53
 je pintarC5
 cmp al, 54 
 je pintarC6
 
 pintarC1: ocupados 1104h,11,4 
 jmp menu
 pintarC2: ocupados 1106h,11,6 
 jmp menu
 pintarC3: ocupados 1108h,11,8 
 jmp menu
 pintarC4: ocupados 110Ah,11,10 
 jmp menu
 pintarC5: ocupados 110Ch,11,12
 jmp menu
 pintarC6: ocupados 110Eh,11,14
 jmp menu
filaD: 
 imprimir msg4
 entrada 
 cmp al, 49
 je pintarD1
 cmp al, 50 
 je pintarD2
 cmp al, 51 
 je pintarD3
 cmp al, 52 
 je pintarD4
 cmp al, 53
 je pintarD5
 cmp al, 54 
 je pintarD6
 
 pintarD1: ocupados 1404h,14,4 
 jmp menu
 pintarD2: ocupados 1406h,14,6
 jmp menu
 pintarD3: ocupados 1408h,14,8
 jmp menu
 pintarD4: ocupados 140Ah,14,10
 jmp menu
 pintarD5: ocupados 140Ch,14,12
 jmp menu
 pintarD6: ocupados 140Eh,14,14
 jmp menu 
terminar: 
 mov ah, 4ch
 int 21h 
 
codigo ends
end inicio

Continuar navegando