Campo minado em assembly

Disponível somente no TrabalhosFeitos
  • Páginas : 9 (2063 palavras )
  • Download(s) : 0
  • Publicado : 20 de março de 2013
Ler documento completo
Amostra do texto
TITLE CAMPO MINADO
.MODEL SMALL
.STACK 100h
.DATA
MAT DB 25 DUP(254)
MAT1 DB 25 DUP("0")
MAT2 DB 25 DUP('X')
MAT3 DB 25 DUP(254)
VET DB "A B C D E$"
MSG1 DB "Digite a coordenada que deseja colocar bomba:$"
MSG2 DB "Caracter estranho,Tente novamente!$"
MSG3 DB "Digite a coordenada que acha que eh livre de bomba:$"
MSG4 DB "VOCE PERDEU!$"
MSG5 DB "VOCE GANHOU!$".CODE

PROC COMPARABX ;COMPARA BX E PULA PARA INCREMENTAÇAO NO VETOR

CMP BX,0
JE SUPESQ

CMP BX,4
JE SUPDIR

CMP BX,20
JE INFESQ

CMP BX,24
JE INFDIR

CMP BX,3
JBE INCLINHA1

CMP BX,5
JE COLUNA1E5

CMP BX,10
JE COLUNA1E10

CMP BX,15
JE COLUNA1E15

CMP BX,9
JE COLUNA5E9

CMP BX,14
JE COLUNA5E14

CMP BX,19
JECOLUNA5E19

CMP BX,21
JNBE MAIORQUE20
;INICIO DE PROCEDIMENTOS PARA INCREMENTAR O VETOR
CALL INCMEIODETODOS
JMP FIM
MAIORQUE20:
CALL INCREMENTALINHA5
JMP FIM
SUPESQ:
CALL INCREMENTASUPESQ
JMP FIM
SUPDIR:
CALL INCREMENTASUPDIR
JMP FIM
INFESQ:
CALL INCREMENTAINFESQ
JMP FIM
INFDIR:
CALL INCREMENTAINFDIR
JMP FIM
INCLINHA1:
CALLINCREMENTALINHA1
JMP FIM
COLUNA1E5:
CALL INCREMENTACOLUNA1
JMP FIM
COLUNA1E10:
CALL INCREMENTACOLUNA1
JMP FIM
COLUNA1E15:
CALL INCREMENTACOLUNA1
JMP FIM
COLUNA5E9:
CALL INCREMENTACOLUNA5
JMP FIM
COLUNA5E14:
CALL INCREMENTACOLUNA5
JMP FIM
COLUNA5E19:
CALL INCREMENTACOLUNA5
JMP FIM

FIM: RET
COMPARABX ENDP

PROC INCMEIODETODOS ;INCREMENTANDO NUMEROS NO MEIODO CAMPO E VERIFICANDO SE TEM BOMBA
MOV AL,MAT1[BX-6]
CMP AL,207
JE A
INC AL
MOV MAT1[BX-6],AL
JMP A1
A: MOV MAT1[BX-6],207
A1: MOV AL,MAT1[BX-5]
CMP AL,207
JE B
INC AL
MOV MAT1[BX-5],AL
JMP B1
B: MOV MAT1[BX-5],207
B1: MOV AL,MAT1[BX-4]
CMP AL,207
JE C
INC AL
MOV MAT1[BX-4],AL
JMP C1
C: MOV MAT1[BX-4],207
C1: MOV AL,MAT1[BX-1]
CMP AL,207
JE D
INC ALMOV MAT1[BX-1],AL
JMP D1
D: MOV MAT1[BX-1],207
D1: MOV AL,MAT1[BX+1]
CMP AL,207
JE E
INC AL
MOV MAT1[BX+1],AL
JMP E1
E: MOV MAT1[BX+1],207
E1: MOV AL,MAT1[BX+4]
CMP AL,207
JE F
INC AL
MOV MAT1[BX+4],AL
JMP F1
F: MOV MAT1[BX+4],207
F1: MOV AL,MAT1[BX+5]
CMP AL,207
JE G
INC AL
MOV MAT1[BX+5],AL
JMP G1
G: MOV MAT1[BX+5],207
G1: MOV AL,MAT1[BX+6]
CMP AL,207JE FIM101
INC AL
MOV MAT1[BX+6],AL
JMP FIM100
FIM101:MOV MAT1[BX+6],207
FIM100:RET
INCMEIODETODOS ENDP
PROC INCREMENTALINHA5 ;INCREMENTANDO NUMERO NA LINHA 5 E VERIFICANDO SE TEM BOMBA
MOV AL,MAT1[BX-6]
CMP AL,207
JE H
INC AL
MOV MAT1[BX-6],AL
JMP H1
H: MOV MAT1[BX-6],207
H1: MOV AL,MAT1[BX-5]
CMP AL,207
JE I
INC AL
MOV MAT1[BX-5],AL
JMP I1
I: MOVMAT1[BX-5],207
I1: MOV AL,MAT1[BX-4]
CMP AL,207
JE J
INC AL
MOV MAT1[BX-4],AL
JMP J1
J: MOV MAT1[BX-4],207
J1: MOV AL,MAT1[BX-1]
CMP AL,207
JE K
INC AL
MOV MAT1[BX-1],AL
JMP K1
K: MOV MAT1[BX-1],207
K1: MOV AL,MAT1[BX+1]
CMP AL,207
JE L
INC AL
MOV MAT1[BX+1],AL
JMP L1
L: MOV MAT1[BX+1],207

L1: RET
INCREMENTALINHA5 ENDP

PROC INCREMENTACOLUNA5;INCREMENTANDO NA COLUNA 5 E VERIFICANDO SE TEM BOMBA
MOV AL,MAT1[BX-6]
CMP AL,207
JE M
INC AL
MOV MAT1[BX-6],AL
JMP M1
M: MOV MAT1[BX-6],207
M1: MOV AL,MAT1[BX-5]
CMP AL,207
JE N
INC AL
MOV MAT1[BX-5],AL
JMP N1
N: MOV MAT1[BX-5],207
N1: MOV AL,MAT1[BX-1]
CMP AL,207
JE O
INC AL
MOV MAT1[BX-1],AL
JMP O1
O: MOV MAT1[BX-1],207
O1: MOV AL,MAT1[BX+4]
CMP AL,207
JEP
INC AL
MOV MAT1[BX+4],AL
JMP P1
P: MOV MAT1[BX+4],207
P1: MOV AL,MAT1[BX+5]
CMP AL,207
JE Q
INC AL
MOV MAT1[BX+5],AL
JMP Q1
Q: MOV MAT1[BX+5],207
Q1: RET
INCREMENTACOLUNA5 ENDP

PROC INCREMENTACOLUNA1 ;INCREMENTANDO NA COLUNA 1 E VERIFICANDO SE TEM BOMBA

MOV AL,MAT1[BX-5]
CMP AL,207
JE R
INC AL
MOV MAT1[BX-5],AL
JMP R1
R: MOV MAT1[BX-5],207
R1:...
tracking img