Está en la página 1de 16

color macro x,y,z

mov ax,0600h
mov bh,x
mov cx,y
mov dx,z
int 10h
endm
goto macro x,y
mov ah,02h
mov dh,x
mov dl,y
mov bx,00h
int 10h
endm

imprimir macro
mov ah,02
int 21h
endm
zero macro
mov ah,02
mov dl,01fh
int 21h
endm
pedir macro
mov ah,01
int 21h
sub al,30h
mov bl,al
endm
clean macro
mov ah,00h
mov al,03h
int 10h
endm
.model small
org 100h
.data
cadena1 db '
Juego de Damas Chinas',10,13,'$'
J1 db 'Jugador 1 :Triangulo',10,13,'$'
J2 db 'Jugador 2 :Circulo',10,13,,10,13,'$'
t1 db ,10,13,'Turno del Jugador 1: ',10,13,'$'
t2 db ,10,13,'Turno del Jugador 2: ',10,13,'$'
mover1 db ,10,13,'Dime la fila de la pieza a mover: ',10,13,'$'
mover2 db ,10,13,'Dime la columna de la pieza a mover: ',10,13,'$'
lugari db ,10,13,'Fila destino: ',10,13,'$'
lugard db ,10,13,'Columna destino: ',10,13,'$'
opcion db ,10,13,'Dame la opcion que desee: ',10,13,'$'
gan1 db ,10,13,'Jugador 1 ha ganado ',10,13,'$'
gan2 db ,10,13,'Jugador 2 ha ganado ',10,13,'$'
instru db 'Instrucciones: ',10,13,10,13, '$'
nopo db ,10,13, 'Pieza no valida',10,13, '$'

mayus db 'Solo usar MAYUSCULAS',10,13, '$'


salto db ,10,13, ,10,13, ' ',10,13, '$'
var1 db 1
var2 db 2
var3 db 1
var4 db 4
var5 db 1
var6 db 7
var7 db 1
var8 db 1
var9 db 1
var10 db 1
var11 db 1
var12 db 1
.code
call marco
call juegonuevo
call instrucciones
mov cx,9999
juego:
color 07h,0000h,3226h
goto 0,0
mov ax,@data
mov ds,ax
mov dx, offset cadena1
mov ah,09
int 21h
tt1:
call turno1
call gana1
tt2:
call turno2
call gana2
loop juego
jmp salir
marco
color
color
color
color
color

proc
07eh,0729h,0729h
07eh,072Bh,072Bh
07eh,072Dh,072Dh
07eh,072Fh,072Fh
07eh,0731h,0731h

color
color
color
color

07eh,062Ah,062Ah
07eh,062Ch,062Ch
07eh,062Eh,062Eh
07eh,0630h,0630h

color
color
color
color
color
color

0ceh,052Bh,052Bh
0ceh,052Dh,052Dh
0ceh,052Fh,052Fh
0ceh,042Ch,042Ch
0ceh,042Eh,042Eh
0ceh,032Dh,032Dh

color
color
color
color

07eh,082Ah,082Ah
07eh,082Ch,082Ch
07eh,082Eh,082Eh
07eh,0830h,0830h

color
color
color
color
color
color

0ceh,092Bh,092Bh
0ceh,092Dh,092Dh
0ceh,092Fh,092Fh
0ceh,0a2Ch,0a2Ch
0ceh,0a2Eh,0a2Eh
0ceh,0b2Dh,0b2Dh

goto 3,39
mov dl, 31h
imprimir
goto 4,39
mov dl, 32h
imprimir
goto 5,39
mov dl, 33h
imprimir
goto 6,39
mov dl, 34h
imprimir
goto 7,39
mov dl, 35h
imprimir
goto 8,39
mov dl, 36h
imprimir
goto 9,39
mov dl, 37h
imprimir
goto 10,39
mov dl, 38h
imprimir
goto 11,39
mov dl, 39h
imprimir
goto 1,41
mov dl, 41h
imprimir
goto 1,42
mov dl, 42h
imprimir
goto 1,43
mov dl, 43h
imprimir
goto 1,44
mov dl, 44h
imprimir
goto 1,45
mov dl, 45h
imprimir
goto 1,46
mov dl, 46h
imprimir
goto 1,47
mov dl, 47h

imprimir
goto 1,48
mov dl, 48h
imprimir
goto 1,49
mov dl, 49h
imprimir
ret
marco endp
juegonuevo proc
goto 3,45
mov dl,07fh
imprimir
goto 4,44
mov dl,07fh
imprimir
goto 4,46
mov dl,07fh
imprimir
goto 5,43
mov dl,07fh
imprimir
goto 5,45
mov dl,07fh
imprimir
goto 5,47
mov dl,07fh
imprimir
goto 11,45
mov dl,0cfh
imprimir
goto 10,44
mov dl,0cfh
imprimir
goto 10,46
mov dl,0cfh
imprimir
goto 9,43
mov dl,0cfh
imprimir
goto 9,45
mov dl,0cfh
imprimir
goto 9,47
mov dl,0cfh
imprimir
goto 6,42
zero
goto 6,44
zero
goto 6,46
zero
goto 6,48
zero
goto 7,41
zero
goto 7,43
zero

goto
zero
goto
zero
goto
zero
goto
zero
goto
zero
goto
zero
goto
zero
ret
endp

7,45
7,47
7,49
8,42
8,44
8,46
8,48

instrucciones proc
goto 4,54
mov ax,@data
mov ds,ax
mov dx, offset instru
mov ah,09
int 21h
goto 5,54
mov ax,@data
mov ds,ax
mov dx, offset J1
mov ah,09
int 21h
goto 6,54
mov ax,@data
mov ds,ax
mov dx, offset J2
mov ah,09
int 21h
goto 7,54
mov ax,@data
mov ds,ax
mov dx, offset mayus
mov ah,09
int 21h
ret
endp
turno1 proc
mov ax,@data
mov ds,ax
mov dx, offset t1
mov ah,09
int 21h
mov ax,@data
mov ds,ax
mov dx, offset mover1
mov ah,09
int 21h
pedir
mov var1,bl
call ajuste1

mov ax,@data
mov ds,ax
mov dx, offset mover2
mov ah,09
int 21h
pedir
mov var2,bl
call ajuste2
call valt1
ttt1:
mov ax,@data
mov ds,ax
mov dx, offset lugari
mov ah,09
int 21h
pedir
mov var3,bl
call ajuste3
mov ax,@data
mov ds,ax
mov dx, offset lugard
mov ah,09
int 21h
pedir
mov var4,bl
call ajuste4
call valt11
ret
endp
turno2 proc
mov ax,@data
mov ds,ax
mov dx, offset t2
mov ah,09
int 21h
mov ax,@data
mov ds,ax
mov dx, offset mover1
mov ah,09
int 21h
pedir
mov var1,bl
call ajuste1
mov ax,@data
mov ds,ax
mov dx, offset mover2
mov ah,09
int 21h
pedir
mov var2,bl
call ajuste2
call valt2
ttt2:
mov ax,@data
mov ds,ax
mov dx, offset lugari

mov ah,09
int 21h
pedir
mov var3,bl
call ajuste3
mov ax,@data
mov ds,ax
mov dx, offset lugard
mov ah,09
int 21h
pedir
mov var4,bl
call ajuste4
call valt22
ret
endp
valt11 proc
mov bl,var1
mov al,var3
cmp bl,al
ja nep
je nep
jmp sep
nep:
jmp ttt1
sep:
goto var3,var4
mov ah,08
int 10h
mov bl,al
cmp bl,01fh
jne eror
jmp okk
eror:
color 07h,0000h,3226h
jmp ttt1
okk:
goto var3,var4
mov dl, 07fh
imprimir
color 07h,0000h,3226h
call adjust
ret
endp
valt22 proc
mov bl,var1
mov al,var3
cmp al,bl
ja nep2
je nep2
jmp sep2
nep2:
jmp ttt2
sep2:
goto var3,var4
mov ah,08
int 10h

mov bl,al
cmp bl,01fh
jne eror2
jmp okk2
eror2:
color 07h,0000h,3226h
jmp ttt1
okk2:
goto var3,var4
mov dl, 0cfh
imprimir
color 07h,0000h,3226h
call adjust
ret
endp
valt1 proc
goto var1,var2
mov ah,08h
int 10h
mov bl,al
cmp bl,07fh
jne error
jmp ok
error:
color 07h,0000h,3226h
jmp tt1
ok:
color 07h,0000h,3226h
ret
endp
valt2 proc
goto var1,var2
mov ah,08h
int 10h
mov bl,al
cmp bl,0cfh
jne error2
jmp ok2
error2:
color 07h,0000h,3226h
jmp tt2
ok2:
color 07h,0000h,3226h
ret
endp
ajuste1 proc
cmp var1,1
je uno
cmp var1,2
je dos
cmp var1,3
je tres
cmp var1,4
je cuatro
cmp var1,5
je cinco

cmp var1,6
je seis
cmp var1,7
je siete
cmp var1,8
je ocho
cmp var1,9
je nueve
uno:
mov var1,3
jmp listo
dos:
mov var1,4
jmp listo
tres:
mov var1,5
jmp listo
cuatro:
mov var1,6
jmp listo
cinco:
mov var1,7
jmp listo
seis:
mov var1,8
jmp listo
siete:
mov var1,9
jmp listo
ocho:
mov var1,10
jmp listo
nueve:
mov var1,11
jmp listo
listo:
ret
endp
ajuste2 proc
cmp var2,11h
je uno2
cmp var2,12h
je dos2
cmp var2,13h
je tres2
cmp var2,14h
je cuatro2
cmp var2,15h
je cinco2
cmp var2,16h
je seis2
cmp var2,17h
je siete2
cmp var2,18h
je ocho2
cmp var2,19h
je nueve2
uno2:

mov var2,41
jmp listo2
dos2:
mov var2,42
jmp listo2
tres2:
mov var2,43
jmp listo2
cuatro2:
mov var2,44
jmp listo2
cinco2:
mov var2,45
jmp listo2
seis2:
mov var2,46
jmp listo2
siete2:
mov var2,47
jmp listo2
ocho2:
mov var2,48
jmp listo2
nueve2:
mov var2,49
jmp listo2
listo2:
ret
endp
ajuste3 proc
cmp var3,1
je uno3
cmp var3,2
je dos3
cmp var3,3
je tres3
cmp var3,4
je cuatro3
cmp var3,5
je cinco3
cmp var3,6
je seis3
cmp var3,7
je siete3
cmp var3,8
je ocho3
cmp var3,9
je nueve3
uno3:
mov var3,3
jmp listo3
dos3:
mov var3,4
jmp listo3
tres3:
mov var3,5
jmp listo3
cuatro3:
mov var3,6

jmp listo3
cinco3:
mov var3,7
jmp listo3
seis3:
mov var3,8
jmp listo3
siete3:
mov var3,9
jmp listo3
ocho3:
mov var3,10
jmp listo3
nueve3:
mov var3,11
jmp listo3
listo3:
ret
endp
ajuste4 proc
cmp var4,11h
je uno4
cmp var4,12h
je dos4
cmp var4,13h
je tres4
cmp var4,14h
je cuatro4
cmp var4,15h
je cinco4
cmp var4,16h
je seis4
cmp var4,17h
je siete4
cmp var4,18h
je ocho4
cmp var4,19h
je nueve4
uno4:
mov var4,41
jmp listo4
dos4:
mov var4,42
jmp listo4
tres4:
mov var4,43
jmp listo4
cuatro4:
mov var4,44
jmp listo4
cinco4:
mov var4,45
jmp listo4
seis4:
mov var4,46
jmp listo4
siete4:
mov var4,47

jmp listo4
ocho4:
mov var4,48
jmp listo4
nueve4:
mov var4,49
jmp listo4
listo4:
ret
endp
adjust proc
cmp var1,3
je c1
cmp var1,4
je c2
cmp var1,5
je c3
cmp var1,6
je c4
cmp var1,7
je c5
cmp var1,8
je c6
cmp var1,9
je c7
cmp var1,10
je c8
cmp var1,11
je c9
c1:
cmp var2,45
je c11
c11:
goto var1,var2
zero
jmp borrado
c2:
cmp var2,44
je c22
cmp var2,46
je c22
c22:
goto var1,var2
zero
jmp borrado
c3:
cmp var2,43
je c33
cmp var2,45
je c33
cmp var2,47
je c33
c4:
cmp var2,42
je c44
cmp var2,44
je c44

cmp var2,46
je c44
cmp var2,48
je c44
c5:
cmp var2,41
je c55
cmp var2,43
je c55
cmp var2,45
je c55
cmp var2,47
je c55
cmp var2,49
je c55
c6:
cmp var2,42
je c66
cmp var2,44
je c66
cmp var2,46
je c66
cmp var2,48
je c66
c7:
cmp var2,43
je c77
cmp var2,45
je c77
cmp var2,47
je c77
c8:
cmp var2,44
je c88
cmp var2,46
je c88
c9:
cmp var2,45
je c99
c33:
goto var1,var2
zero
jmp borrado
c44:
goto var1,var2
zero
jmp borrado
c55:
goto var1,var2
zero
jmp borrado
c66:
goto var1,var2
zero
jmp borrado
c77:
goto var1,var2
zero
jmp borrado

c88:
goto var1,var2
zero
jmp borrado
c99:
goto var1,var2
zero
jmp borrado
borrado:
ret
endp
gana1 proc
goto 11,45
mov ah,08h
int 10h
mov bl,al
cmp bl,07fh
je sig
jne tt2
sig:
goto 10,44
mov ah,08h
int 10h
mov bl,al
cmp bl,07fh
je sig1
jne tt2
sig1:
goto 10,46
mov ah,08h
int 10h
mov bl,al
cmp bl,07fh
je sig11
jne tt2
sig11:
goto 9,43
mov ah,08h
int 10h
mov bl,al
cmp bl,07fh
je sig111
jne tt2
sig111:
goto 9,45
mov ah,08h
int 10h
mov bl,al
cmp bl,07fh
je sig1111
jne tt2
sig1111:
goto 9,47
mov ah,08h
int 10h
mov bl,al
cmp bl,07fh

je felicidades1
jne tt2
ret
endp
gana2 proc
goto 3,45
mov ah,08h
int 10h
mov bl,al
cmp bl,0cfh
je sig02
jne tt1
sig02:
goto 4,44
mov ah,08h
int 10h
mov bl,al
cmp bl,0cfh
je sig2
jne tt1
sig2:
goto 4,46
mov ah,08h
int 10h
mov bl,al
cmp bl,0cfh
je sig22
jne tt1
sig22:
goto 5,43
mov ah,08h
int 10h
mov bl,al
cmp bl,0cfh
je sig222
jne tt1
sig222:
goto 5,45
mov ah,08h
int 10h
mov bl,al
cmp bl,0cfh
je sig2222
jne tt1
sig2222:
goto 5,47
mov ah,08h
int 10h
mov bl,al
cmp bl,0cfh
je felicidades2
jne tt1
ret
endp
felicidades1:
mov ax,@data

mov
mov
mov
int
jmp

ds,ax
dx, offset gan1
ah,09
21h
salir

felicidades2:
mov ax,@data
mov ds,ax
mov dx, offset gan2
mov ah,09
int 21h
jmp salir

salir:
mov ah,01
int 21h

También podría gustarte