Advertisement
ChristianBarzalobre

Untitled

Jan 28th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. impxy macro texto,x,y
  2.     mov ah,02h
  3.     mov bh,00d
  4.     mov dh,x
  5.     mov dl,y
  6.     int 10h
  7.      
  8.     mov ah,09h
  9.     lea dx,texto
  10.     int 21h
  11. endm          
  12.      
  13. dibuja macro yi,xi,yf,xf
  14.     mov ax, 0600h ;
  15.     mov bh, 255d ; COLOR DE FONDO Y LETRA
  16.     mov bl, 0011
  17.     mov ch, yi ; Y INICIAL
  18.     mov cl, xi ; X INICIAL
  19.     mov dh, yf ; Y FINAL
  20.     mov dl, xf ; X FINAL
  21.     int 10h
  22. endm    
  23.    
  24.  
  25. suma macro p1,p2,p3,pg
  26.     mov ah,p1
  27.     mov al,p2
  28.     add ah,al
  29.     mov al,p3
  30.     add ah,al
  31.     mov pg,ah
  32. endm
  33.    
  34.  
  35.    
  36. .model small
  37. .stack
  38. .data
  39.     vacio  db "                       $"
  40.     mens   db "Jugador 1 Cruz",009,009,"Jugador 2 Cuadro$"
  41.     tecj1  db "Jugador 1 tecle un numero : $"
  42.     tecj2  db "Jugador 2 tecle un numero : $"
  43.     val    db "Numero valido$"
  44.     ocupa  db "Lugar Ocupado$"
  45.     ganc   db "Ganador Jugador ''2''$"
  46.     ganz   db "Ganador Jugador ''1''$"
  47.     nova   db "''Caracter Invalido''$"
  48.     nad    db "''Nadie Gano''$"
  49.    
  50.     lc1    db 0h
  51.     lc2    db 0h
  52.     lc3    db 0h
  53.     empc   db 0h
  54.    
  55.     lz1    db 0h
  56.     lz2    db 0h
  57.     lz3    db 0h
  58.     empz   db 0h
  59.    
  60.     zero   db 0h
  61.     emp    db 0h
  62.    
  63.     ;1-9
  64.     c1     db "1$"
  65.     c2     db "2$"
  66.     c3     db "3$"
  67.     c4     db "4$"
  68.     c5     db "5$"
  69.     c6     db "6$"
  70.     c7     db "7$"
  71.     c8     db "8$"
  72.     c9     db "9$"
  73.    
  74.     ;Cuadro
  75.     auxc   db 0h
  76.     cc1    db 0h
  77.     cc2    db 0h
  78.     cc3    db 0h
  79.     cc4    db 0h
  80.     cc5    db 0h
  81.     cc6    db 0h
  82.     cc7    db 0h
  83.     cc8    db 0h
  84.     cc9    db 0h
  85.     ccg    db 0h
  86.    
  87.     ;Cruz
  88.     auxz   db 0h
  89.     cz1    db 0h
  90.     cz2    db 0h
  91.     cz3    db 0h
  92.     cz4    db 0h
  93.     cz5    db 0h
  94.     cz6    db 0h
  95.     cz7    db 0h
  96.     cz8    db 0h
  97.     cz9    db 0h
  98.     czg    db 0h
  99.        
  100. .code
  101.         mov ax,@data
  102.         mov ds,ax        
  103.        
  104.        
  105.        
  106.         ;#
  107.         mov ax, 0600h ;
  108.         mov bh, 255d ; COLOR DE FONDO Y LETRA
  109.         mov bl, 0011  
  110.         mov ch, 02 ; Y INICIAL
  111.         mov cl, 10 ; X INICIAL
  112.         mov dh, 17 ; Y FINAL
  113.         mov dl, 10 ; X FINAL
  114.         int 10h
  115.        
  116.         mov ax, 0600h ;
  117.         mov bh, 255d ; COLOR DE FONDO Y LETRA
  118.         mov bl, 255d  
  119.         mov ch, 02 ; Y INICIAL
  120.         mov cl, 20 ; X INICIAL
  121.         mov dh, 17 ; Y FINAL
  122.         mov dl, 20 ; X FINAL
  123.         int 10h
  124.        
  125.         mov ax, 0600h ;
  126.         mov bh, 255d ; COLOR DE FONDO Y LETRA
  127.         mov bl, 255d  
  128.         mov ch, 07 ; Y INICIAL
  129.         mov cl, 04 ; X INICIAL
  130.         mov dh, 07 ; Y FINAL
  131.         mov dl, 26 ; X FINAL
  132.         int 10h
  133.        
  134.         mov ax, 0600h ;
  135.         mov bh, 255d ; COLOR DE FONDO Y LETRA
  136.         mov bl, 255d  
  137.         mov ch, 13 ; Y INICIAL
  138.         mov cl, 04 ; X INICIAL
  139.         mov dh, 13 ; Y FINAL
  140.         mov dl, 26 ; X FINAL
  141.         int 10h
  142.        
  143.         impxy mens,00,20
  144.        
  145.         ;1-9
  146.         impxy c1,02,04
  147.         impxy c2,02,11
  148.         impxy c3,02,21
  149.         impxy c4,08,04
  150.         impxy c5,08,11
  151.         impxy c6,08,21
  152.         impxy c7,14,04
  153.         impxy c8,14,11
  154.         impxy c9,14,21
  155.          
  156.         ;;;;;;;;;;;;;;;;;J1    
  157.         j1:
  158.         impxy vacio,10,40
  159.         impxy vacio,20,27
  160.         impxy tecj1,20,00
  161.         mov ah,01h
  162.         int 21h
  163.        
  164.         sub al,30h
  165.        
  166.         cmp al,01h
  167.         jz valido
  168.         cmp al,02h
  169.         jz valido
  170.         cmp al,03h
  171.         jz valido
  172.         cmp al,04h
  173.         jz valido
  174.         cmp al,05h
  175.         jz valido
  176.         cmp al,06h
  177.         jz valido
  178.         cmp al,07h
  179.         jz valido
  180.         cmp al,08h
  181.         jz valido
  182.         cmp al,09h
  183.         jz valido
  184.         jnz novalido
  185.        
  186.         valido:
  187.         mov auxz,al
  188.         jmp verifica
  189.        
  190.         ganadorz:
  191.         impxy ganz,10,40
  192.         mov ah,01h
  193.         int 21h
  194.         mov ah,4ch
  195.         int 21h
  196.         jmp j1
  197.        
  198.         nadieg:
  199.         impxy nad,10,40
  200.         mov ah,01h
  201.         int 21h
  202.         mov ah,4ch
  203.         int 21h
  204.         jmp j1
  205.        
  206.         ocupado:
  207.         impxy ocupa,10,40
  208.         mov ah,01h
  209.         int 21h
  210.         jmp j1
  211.        
  212.        
  213.         novalido:
  214.         impxy nova,10,40
  215.         mov ah,01h
  216.         int 21h
  217.         jmp j1
  218.        
  219.         verifica:
  220.        
  221.         cmp auxz,01h
  222.         jz veri1
  223.        
  224.         cmp auxz,02h
  225.         jz veri2
  226.        
  227.         cmp auxz,03h
  228.         jz veri3
  229.        
  230.         cmp auxz,04h
  231.         jz veri4
  232.        
  233.         cmp auxz,05h
  234.         jz veri5
  235.        
  236.         cmp auxz,06h
  237.         jz veri6
  238.        
  239.         cmp auxz,07h
  240.         jz veri7
  241.        
  242.         cmp auxz,08h
  243.         jz veri8
  244.        
  245.         cmp auxz,09h
  246.         jz veri9
  247.        
  248.         veri1:
  249.         cmp cc1,01h
  250.         jz ocupado
  251.         cmp cz1,01h
  252.         jz ocupado
  253.         jmp ponez
  254.        
  255.         veri2:
  256.         cmp cc2,01h
  257.         jz ocupado
  258.         cmp cz2,01h
  259.         jz ocupado
  260.         jmp ponez
  261.        
  262.         veri3:
  263.         cmp cc3,01h
  264.         jz ocupado
  265.         cmp cz3,01h
  266.         jz ocupado
  267.         jmp ponez
  268.        
  269.         veri4:
  270.         cmp cc4,01h
  271.         jz ocupado
  272.         cmp cz4,01h
  273.         jz ocupado
  274.         jmp ponez
  275.        
  276.         veri5:
  277.         cmp cc5,01h
  278.         jz ocupado
  279.         cmp cz5,01h
  280.         jz ocupado
  281.         jmp ponez
  282.        
  283.         veri6:
  284.         cmp cc6,01h
  285.         jz ocupado
  286.         cmp cz6,01h
  287.         jz ocupado
  288.         jmp ponez
  289.        
  290.         veri7:
  291.         cmp cc7,01h
  292.         jz ocupado
  293.         cmp cz7,01h
  294.         jz ocupado
  295.         jmp ponez
  296.        
  297.         veri8:
  298.         cmp cc8,01h
  299.         jz ocupado
  300.         cmp cz8,01h
  301.         jz ocupado
  302.         jmp ponez
  303.        
  304.         veri9:
  305.         cmp cc9,01h
  306.         jz ocupado
  307.         cmp cz9,01h
  308.         jz ocupado
  309.         jmp ponez
  310.        
  311.        
  312.        
  313.        
  314.         ponez:
  315.        
  316.         cmp auxz,01h
  317.         jz c1z
  318.        
  319.         cmp auxz,02h
  320.         jz c2z
  321.        
  322.         cmp auxz,03h
  323.         jz c3z
  324.        
  325.         cmp auxz,04h
  326.         jz c4z
  327.        
  328.         cmp auxz,05h
  329.         jz c5z
  330.        
  331.         cmp auxz,06h
  332.         jz c6z
  333.        
  334.         cmp auxz,07h
  335.         jz c7z
  336.        
  337.         cmp auxz,08h
  338.         jz c8z
  339.        
  340.         cmp auxz,09h
  341.         jz c9z
  342.        
  343.        
  344.        
  345.        
  346.         c1z:
  347.         ;+ C1
  348.         dibuja 03,06,05,06
  349.         dibuja 04,04,04,08
  350.         mov cz1,01h
  351.         jmp ganadoz
  352.        
  353.         c2z:
  354.         ;+ C2
  355.         dibuja 03,15,05,15
  356.         dibuja 04,13,04,17
  357.         mov cz2,01h
  358.         jmp ganadoz
  359.        
  360.         c3z:
  361.         ;+ C3
  362.         dibuja 03,24,05,24
  363.         dibuja 04,22,04,26
  364.         mov cz3,01h
  365.         jmp ganadoz
  366.        
  367.         c4z:
  368.         ;+ C4
  369.         dibuja 09,06,11,06
  370.         dibuja 10,04,10,08
  371.         mov cz4,01h
  372.         jmp ganadoz
  373.        
  374.         c5z:
  375.         ;+ C5
  376.         dibuja 09,15,11,15
  377.         dibuja 10,13,10,17
  378.         mov cz5,01h
  379.         jmp ganadoz
  380.        
  381.         c6z:
  382.         ;+ C6
  383.         dibuja 09,24,11,24
  384.         dibuja 10,22,10,26
  385.         mov cz6,01h
  386.         jmp ganadoz
  387.        
  388.         c7z:
  389.         ;+ C7
  390.         dibuja 15,06,17,06
  391.         dibuja 16,04,16,08
  392.         mov cz7,01h
  393.         jmp ganadoz
  394.        
  395.         c8z:
  396.         ;+ C8
  397.         dibuja 15,15,17,15
  398.         dibuja 16,13,16,17
  399.         mov cz8,01h
  400.         jmp ganadoz
  401.        
  402.         c9z:
  403.         ;+ C9
  404.         dibuja 15,24,17,24
  405.         dibuja 16,22,16,26
  406.         mov cz9,01h
  407.         jmp ganadoz
  408.        
  409.         ganadoz:
  410.        
  411.         suma cz1,cz2,cz3,czg
  412.         cmp czg,03h
  413.         jz ganadorz
  414.         suma cz4,cz5,cz6,czg
  415.         cmp czg,03h
  416.         jz ganadorz
  417.         suma cz7,cz8,cz9,czg
  418.         cmp czg,03h
  419.         jz ganadorz
  420.         suma cz1,cz4,cz7,czg
  421.         cmp czg,03h
  422.         jz ganadorz
  423.         suma cz2,cz5,cz8,czg
  424.         cmp czg,03h
  425.         jz ganadorz
  426.         suma cz3,cz6,cz9,czg
  427.         cmp czg,03h
  428.         jz ganadorz
  429.         suma cz3,cz5,cz7,czg
  430.         cmp czg,03h
  431.         jz ganadorz
  432.         suma cz1,cz5,cz9,czg
  433.         cmp czg,03h
  434.         jz ganadorz
  435.        
  436.         suma cc1,cc2,cc3,ccg
  437.         mov  bl,ccg
  438.         mov  lc1,bl
  439.         suma cc4,cc5,cc6,ccg
  440.         mov  bl,ccg
  441.         mov  lc2,bl
  442.         suma cc7,cc8,cc9,ccg
  443.         mov  bl,ccg
  444.         mov  lc3,bl
  445.         suma lc1,lc2,lc3,empc
  446.        
  447.         suma cz1,cz2,cz3,czg
  448.         mov  bl,czg
  449.         mov  lz1,bl
  450.         suma cz4,cz5,cz6,czg
  451.         mov  bl,czg
  452.         mov  lz2,bl
  453.         suma cz7,cz8,cz9,czg
  454.         mov  bl,czg
  455.         mov  lz3,bl
  456.         suma lz1,lz2,lz3,empz
  457.        
  458.         suma empc,empz,zero,emp
  459.         cmp emp,09h
  460.         jz nadieg
  461.          
  462.         jmp j2
  463.        
  464.         ;;;;;;;;;;;;;;;;;;;;;J2
  465.        
  466.         j2:
  467.         impxy vacio,10,40
  468.         impxy vacio,20,27
  469.         impxy tecj2,20,00
  470.         mov ah,01h
  471.         int 21h
  472.        
  473.         sub al,30h
  474.        
  475.         cmp al,01h
  476.         jz validoc
  477.         cmp al,02h
  478.         jz validoc
  479.         cmp al,03h
  480.         jz validoc
  481.         cmp al,04h
  482.         jz validoc
  483.         cmp al,05h
  484.         jz validoc
  485.         cmp al,06h
  486.         jz validoc
  487.         cmp al,07h
  488.         jz validoc
  489.         cmp al,08h
  490.         jz validoc
  491.         cmp al,09h
  492.         jz validoc
  493.         jnc novalidoc
  494.        
  495.         validoc:
  496.         mov auxc,al
  497.         jmp verificac
  498.        
  499.         ganadorc:
  500.         impxy ganc,10,40
  501.         mov ah,01h
  502.         int 21h
  503.         mov ah,4ch
  504.         int 21h
  505.         jmp j2
  506.        
  507.         ocupadoc:
  508.         impxy ocupa,10,40
  509.         mov ah,01h
  510.         int 21h
  511.         jmp j2
  512.        
  513.        
  514.         novalidoc:
  515.         impxy nova,10,40
  516.         mov ah,01h
  517.         int 21h
  518.         jmp j2
  519.        
  520.         verificac:
  521.        
  522.         cmp auxc,01h
  523.         jz veri1c
  524.        
  525.         cmp auxc,02h
  526.         jz veri2c
  527.        
  528.         cmp auxc,03h
  529.         jz veri3c
  530.        
  531.         cmp auxc,04h
  532.         jz veri4c
  533.        
  534.         cmp auxc,05h
  535.         jz veri5c
  536.        
  537.         cmp auxc,06h
  538.         jz veri6c
  539.        
  540.         cmp auxc,07h
  541.         jz veri7c
  542.        
  543.         cmp auxc,08h
  544.         jz veri8c
  545.        
  546.         cmp auxc,09h
  547.         jz veri9c
  548.        
  549.         veri1c:
  550.         cmp cc1,01h
  551.         jz ocupadoc
  552.         cmp cz1,01h
  553.         jz ocupadoc
  554.         jmp ponec
  555.        
  556.         veri2c:
  557.         cmp cc2,01h
  558.         jz ocupadoc
  559.         cmp cz2,01h
  560.         jz ocupadoc
  561.         jmp ponec
  562.        
  563.         veri3c:
  564.         cmp cc3,01h
  565.         jz ocupadoc
  566.         cmp cz3,01h
  567.         jz ocupadoc
  568.         jmp ponec
  569.        
  570.         veri4c:
  571.         cmp cc4,01h
  572.         jz ocupadoc
  573.         cmp cz4,01h
  574.         jz ocupadoc
  575.         jmp ponec
  576.        
  577.         veri5c:
  578.         cmp cc5,01h
  579.         jz ocupadoc
  580.         cmp cz5,01h
  581.         jz ocupadoc
  582.         jmp ponec
  583.        
  584.         veri6c:
  585.         cmp cc6,01h
  586.         jz ocupadoc
  587.         cmp cz6,01h
  588.         jz ocupadoc
  589.         jmp ponec
  590.        
  591.         veri7c:
  592.         cmp cc7,01h
  593.         jz ocupadoc
  594.         cmp cz7,01h
  595.         jz ocupadoc
  596.         jmp ponec
  597.        
  598.         veri8c:
  599.         cmp cc8,01h
  600.         jz ocupadoc
  601.         cmp cz8,01h
  602.         jz ocupadoc
  603.         jmp ponec
  604.        
  605.         veri9c:
  606.         cmp cc9,01h
  607.         jz ocupadoc
  608.         cmp cz9,01h
  609.         jz ocupadoc
  610.         jmp ponec
  611.        
  612.        
  613.        
  614.        
  615.         ponec:
  616.        
  617.         cmp auxc,01h
  618.         jz c1c
  619.        
  620.         cmp auxc,02h
  621.         jz c2c
  622.        
  623.         cmp auxc,03h
  624.         jz c3c
  625.        
  626.         cmp auxc,04h
  627.         jz c4c
  628.        
  629.         cmp auxc,05h
  630.         jz c5c
  631.        
  632.         cmp auxc,06h
  633.         jz c6c
  634.        
  635.         cmp auxc,07h
  636.         jz c7c
  637.        
  638.         cmp auxc,08h
  639.         jz c8c
  640.        
  641.         cmp auxc,09h
  642.         jz c9c
  643.        
  644.        
  645.        
  646.        
  647.         c1c:
  648.         ;* C1
  649.         dibuja 03,04,05,08
  650.         mov cc1,01h
  651.         jmp ganadoc
  652.        
  653.         c2c:
  654.         ;* C2
  655.         dibuja 03,13,05,17
  656.         mov cc2,01h
  657.         jmp ganadoc
  658.        
  659.         c3c:
  660.         ;* C3
  661.         dibuja 03,22,05,26
  662.         mov cc3,01h
  663.         jmp ganadoc
  664.        
  665.         c4c:
  666.         ;* C4
  667.         dibuja 09,04,11,08
  668.         mov cc4,01h
  669.         jmp ganadoc
  670.        
  671.         c5c:
  672.         ;* C5
  673.         dibuja 09,13,11,17
  674.         mov cc5,01h
  675.         jmp ganadoc
  676.        
  677.         c6c:
  678.         ;* C6
  679.         dibuja 09,22,11,26
  680.         mov cc6,01h
  681.         jmp ganadoc
  682.        
  683.         c7c:
  684.         ;* C7
  685.         dibuja 15,04,17,08
  686.         mov cc7,01h
  687.         jmp ganadoc
  688.        
  689.         c8c:
  690.         ;* C8
  691.         dibuja 15,13,17,17
  692.         mov cc8,01h
  693.         jmp ganadoc
  694.        
  695.         c9c:
  696.         ;* C9
  697.         dibuja 15,22,17,26
  698.         mov cc9,01h
  699.         jmp ganadoc
  700.        
  701.         ganadoc:
  702.        
  703.         suma cc1,cc2,cc3,ccg
  704.         cmp ccg,03h
  705.         jz ganadorc
  706.         suma cc4,cc5,cc6,ccg
  707.         cmp ccg,03h
  708.         jz ganadorc
  709.         suma cc7,cc8,cc9,ccg
  710.         cmp ccg,03h
  711.         jz ganadorc
  712.         suma cc1,cc4,cc7,ccg
  713.         cmp ccg,03h
  714.         jz ganadorc
  715.         suma cc2,cc5,cc8,ccg
  716.         cmp ccg,03h
  717.         jz ganadorc
  718.         suma cc3,cc6,cc9,ccg
  719.         cmp ccg,03h
  720.         jz ganadorc
  721.         suma cc3,cc5,cc7,ccg
  722.         cmp ccg,03h
  723.         jz ganadorc
  724.         suma cc1,cc5,cc9,ccg
  725.         cmp ccg,03h
  726.         jz ganadorc  
  727.         jmp j1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement