Assembly jogo da velha

Disponível somente no TrabalhosFeitos
  • Páginas : 4 (762 palavras )
  • Download(s) : 0
  • Publicado : 26 de junho de 2012
Ler documento completo
Amostra do texto
;Produced by Silvio Greuel
; multi-segment executable file template.

data segment
; add your data here!
MENSAGEM_INICIO db "utilize o teclado numerico para jogar",10,13,"$"MENSAGEM_EMPATE db "Empatou! $"
MENSAGEM_VENCEU db "Vencedor: $"
JOGADOR_O db "vez do 'o'",10,13,"$"
JOGADOR_X db "vez do 'x'",10,13,"$"
JOGADOR_ATUAL db "o","$"JOGADOR_OUTRO db "x","$"
TABELA db " 7 | 8 | 9 ",10,13
db "-----------",10,13
db " 4 | 5 | 6 ",10,13
db"-----------",10,13
db " 1 | 2 | 3 ",10,13,"$"

ends

stack segment
dw 128 dup(0)
ends

code segment
start:
; set segment registers:
mov ax, data
mov ds,ax
mov es, ax

; add your code here
LEA DX, MENSAGEM_INICIO
MOV AH, 9
INT 21H
MOV CX, 0

JOGO:
CALL IMPRIME_TABELA
CMP CX, 9
JE EMPATECALL IMPRIME_JOGADOR
CALL LE_TECLA
CALL SETA_VALOR
JMP VERIFICA_VENCEDOR

VENCEU:
CALL IMPRIME_TABELA
MOV AH, 9
LEA DX, MENSAGEM_VENCEU
INT 21H
LEA DX,JOGADOR_OUTRO
INT 21H
JMP FIM
EMPATE:
MOV AH, 9
LEA DX, MENSAGEM_EMPATE
INT 21H
JMP FIM
VERIFICA_VENCEDOR:
MOV SI, 1
MOV BX, OFFSET tabela
PUSH SIMOV DH, JOGADOR_OUTRO


VERIFICA_A11:
;Verifica todas as possibilidades de
;vitoria que necessitam da posicao 7.
CMP [BX+SI], DH
JE CONFERE_A11_A12
JMP VERIFICA_A12CONFERE_A11_A12:
ADD SI, 4
CMP [BX+SI], DH
JE CONFERE_A11_A13
JMP CONFERE_A11_A21
CONFERE_A11_A13:
ADD SI, 4
CMP [BX+SI], DH
JE VENCEU
CONFERE_A11_A21:POP SI
PUSH SI
ADD SI, 26
CMP [BX+SI], DH
JE CONFERE_A11_A31
JMP CONFERE_A11_A22
CONFERE_A11_A31:
ADD SI, 26
CMP [BX+SI], DH
JE VENCEU...
tracking img