我目前正在为大学开发一个装配项目,包括为迷宫游戏创建一个菜单,但首先我只需按下键即可访问所需的菜单选项&#39 ; 1',然后我的cmd应该显示' Labirinto.txt'那是我的迷宫。我已经有“退出”选项运行的键,但我的播放选项是' JOGAR'它不起作用。我正在打开菜单.txt'并且打印是cmd上的内容,我想对“maze.txt”做同样的事情,但我不知道为什么。这是我的代码:
.8086
.model small
.stack 2048h
dseg segment para public 'data'
Erro_Open db 'Erro ao tentar abrir o ficheiro$'
Erro_Ler_Msg db 'Erro ao tentar ler do ficheiro$'
Erro_Close db 'Erro ao tentar fechar o ficheiro$'
Fich1 db 'Menu.TXT',0
Fich2 db 'Labirinto.TXT',0
Fich3 db 'Top10.TXT', 0
HandleFich dw 0
car_fich db ?
dseg ends
cseg segment para public 'code'
assume cs:cseg, ds:dseg
LE_TECLA PROC
mov ah,08h
int 21h
mov ah,0
cmp al,0
jne SAI_TECLA
mov ah, 08h
int 21h
mov ah,1
SAI_TECLA: RET
LE_TECLA endp
carrega_labirinto Proc
mov ah,3dh ; vamos abrir ficheiro para leitura
mov al,0 ; tipo de ficheiro
lea dx,Fich2 ; nome do ficheiro
int 21h ; abre para leitura
;jc erro_abrir ; pode aconter erro a abrir o ficheiro
mov HandleFich,ax ; ax devolve o Handle para o ficheiro
;jmp ler_ciclo
ret
carrega_labirinto endp
carrega_top10 Proc
mov ah,3dh ; vamos abrir ficheiro para leitura
mov al,0 ; tipo de ficheiro
lea dx,Fich3 ; nome do ficheiro
int 21h ; abre para leitura
; jc erro_abrir ; pode aconter erro a abrir o ficheiro
;; mov HandleFich,ax ; ax devolve o Handle para o ficheiro
; jmp ler_ciclo
ret
carrega_top10 endp
Main Proc
mov ax,dseg
mov ds,ax
;abre ficheiro
mov ah,3dh ; vamos abrir ficheiro para leitura
mov al,0 ; tipo de ficheiro
lea dx,Fich1 ; nome do ficheiro
int 21h ; abre para leitura
jc erro_abrir ; pode aconter erro a abrir o ficheiro
mov HandleFich,ax ; ax devolve o Handle para o ficheiro
jmp ler_ciclo ; depois de abero vamos ler o ficheiro
erro_abrir:
mov ah,09h
lea dx,Erro_Open
int 21h
jmp sair
ler_ciclo:
mov ah,3fh
mov bx,HandleFich
mov cx,1
lea dx,car_fich
int 21h
jc erro_ler
cmp ax,0 ficheiro
je fecha_ficheiro
mov ah,02h
mov dl,car_fich
int 21h
jmp ler_ciclo
erro_ler:
mov ah,09h
lea dx,Erro_Ler_Msg
int 21h
fecha_ficheiro: ; vamos fechar o ficheiro
mov ah,3eh
mov bx,HandleFich
int 21h
jnc LER_OPCAO
mov ah,09h
lea dx,Erro_Close
Int 21h
LER_OPCAO:
call LE_TECLA
; cmp ah, 1
; je ESTEND
CMP AL, '1'
JE jogar
CMP AL, '2'
JE TOP10
CMP AL, '3'
JE CONFIGURAR
CMP AL, '4'
JE SAIR
jmp LER_OPCAO
JOGAR:
; call carrega_labirinto ;1
jmp LER_OPCAO
TOP10:
; call carrega_top10 ;2
jmp LER_OPCAO
CONFIGURAR:
; call carrega_configuracao ;3
jmp LER_OPCAO
SAIR:
mov ah,4CH
INT 21H
Main endp
cseg ends
end Main