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, '$'

Damaschinas Final

Embed Size (px)

DESCRIPTION

codido de damas chinas en asm para lenguaje ensamblador

Citation preview

color macro x,y,zmov ax,0600hmov bh,xmov cx,ymov dx,zint 10hendm

goto macro x,ymov ah,02hmov dh,xmov dl,ymov bx,00hint 10h endm

imprimir macro mov ah,02 int 21hendm

zero macro mov ah,02 mov dl,01fh int 21hendm

pedir macro mov ah,01 int 21h sub al,30h mov bl,alendm

clean macromov ah,00h mov al,03hint 10hendm

.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.codecall marco call juegonuevo call instruccionesmov cx,9999

juego:color 07h,0000h,3226hgoto 0,0 mov ax,@datamov ds,axmov dx, offset cadena1mov ah,09int 21h tt1: call turno1call gana1 tt2:call turno2call gana2

loop juego

jmp salir

marco proc color 07eh,0729h,0729hcolor 07eh,072Bh,072Bhcolor 07eh,072Dh,072Dhcolor 07eh,072Fh,072Fhcolor 07eh,0731h,0731h color 07eh,062Ah,062Ahcolor 07eh,062Ch,062Chcolor 07eh,062Eh,062Ehcolor 07eh,0630h,0630h color 0ceh,052Bh,052Bhcolor 0ceh,052Dh,052Dhcolor 0ceh,052Fh,052Fhcolor 0ceh,042Ch,042Chcolor 0ceh,042Eh,042Eh color 0ceh,032Dh,032Dh

color 07eh,082Ah,082Ahcolor 07eh,082Ch,082Chcolor 07eh,082Eh,082Ehcolor 07eh,0830h,0830h color 0ceh,092Bh,092Bhcolor 0ceh,092Dh,092Dhcolor 0ceh,092Fh,092Fhcolor 0ceh,0a2Ch,0a2Chcolor 0ceh,0a2Eh,0a2Eh color 0ceh,0b2Dh,0b2Dh

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

imprimirgoto 1,48mov dl, 48himprimirgoto 1,49mov dl, 49himprimirretmarco endp

juegonuevo procgoto 3,45mov dl,07fhimprimirgoto 4,44mov dl,07fhimprimirgoto 4,46mov dl,07fhimprimirgoto 5,43mov dl,07fhimprimirgoto 5,45mov dl,07fhimprimirgoto 5,47mov dl,07fhimprimir goto 11,45mov dl,0cfhimprimirgoto 10,44mov dl,0cfhimprimirgoto 10,46mov dl,0cfhimprimirgoto 9,43mov dl,0cfhimprimirgoto 9,45mov dl,0cfhimprimirgoto 9,47mov dl,0cfhimprimir goto 6,42 zerogoto 6,44 zerogoto 6,46 zerogoto 6,48 zerogoto 7,41 zerogoto 7,43 zero

goto 7,45 zerogoto 7,47 zerogoto 7,49 zerogoto 8,42 zero goto 8,44 zerogoto 8,46 zerogoto 8,48 zeroretendp

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 procgoto 11,45 mov ah,08h int 10h mov bl,alcmp bl,07fhje sigjne tt2sig:goto 10,44 mov ah,08h int 10h mov bl,al cmp bl,07fhje sig1jne tt2sig1:goto 10,46 mov ah,08h int 10h mov bl,alcmp bl,07fhje sig11jne tt2sig11:goto 9,43 mov ah,08h int 10h mov bl,alcmp bl,07fhje sig111jne tt2sig111:goto 9,45 mov ah,08h int 10h mov bl,alcmp bl,07fhje sig1111jne tt2sig1111:goto 9,47 mov ah,08h int 10h mov bl,alcmp bl,07fh

je felicidades1jne tt2 ret endp

gana2 procgoto 3,45 mov ah,08h int 10h mov bl,alcmp bl,0cfhje sig02jne tt1sig02:goto 4,44 mov ah,08h int 10h mov bl,al cmp bl,0cfhje sig2jne tt1sig2:goto 4,46 mov ah,08h int 10h mov bl,alcmp bl,0cfhje sig22jne tt1sig22:goto 5,43 mov ah,08h int 10h mov bl,alcmp bl,0cfhje sig222jne tt1sig222:goto 5,45 mov ah,08h int 10h mov bl,alcmp bl,0cfhje sig2222jne tt1sig2222:goto 5,47 mov ah,08h int 10h mov bl,alcmp bl,0cfhje felicidades2jne tt1 ret endp

felicidades1: mov ax,@data

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

salir: mov ah,01int 21h