Upload
carlos-toca
View
212
Download
0
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