0
我剛開始做我的項目爲大學從emu8086.com在大會使用鴯鶓8086的問題,跳不工作
可惜我就死在這樣一個早期的統計翻轉卡片遊戲, 使用仿真器。
不知何故不能完全弄清楚什麼是錯的。
使用JZ或JE的跳轉,應該工作,如果我使用cmp在2等值,但它不工作。
什麼都沒有發生!我用
mov ah,1
int 21h
cmp al,1 or cmp al,'1'
JE or JZ Card1
,但它不跳不管我寫的東西,
我全碼:
include "emu8086.inc"
; multi-segment executable file template.
data segment
; add your data here!
pkey db "press any key...$"
data_error dw "input error.... $"
datar db 0 ;row
datac db 0 ;cloumn
datacard db '1','2','3','4','5','6','7','8','9'
data1 dw ?
data2 dw ?
dataf dw "False $"
endapp dw "END GAME.... $"
datat dw "True $"
datas db '0'
score dw "Score : $"
x db ?
y db ?
a db '0','0','0','0','0','0','0','0'
data3 db 'D','B','A','O','C','C','A','B','D'
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
GOTOXY 25,0
;PRINT 'Wellcom to My Flipping Game !?!'
GOTOXY 10, 5
mov si,offset data3
PUTC [si]
GOTOXY 15, 5
inc si
PUTC [si]
GOTOXY 20, 5
inc si
PUTC [si]
GOTOXY 10, 8
inc si
PUTC [si]
GOTOXY 15, 8
inc si
PUTC [si]
GOTOXY 20, 8
inc si
PUTC [si]
GOTOXY 10, 11
inc si
PUTC [si]
GOTOXY 15, 11
inc si
PUTC [si]
GOTOXY 20, 11
inc si
PUTC [si]
GOTOXY 10, 5
mov si,offset datacard
PUTC [si]
GOTOXY 15, 5
inc si
PUTC [si]
GOTOXY 20, 5
inc si
PUTC [si]
GOTOXY 10, 8
inc si
PUTC [si]
GOTOXY 15, 8
inc si
PUTC [si]
GOTOXY 20, 8
inc si
PUTC [si]
GOTOXY 10, 11
inc si
PUTC [si]
GOTOXY 15, 11
inc si
PUTC [si]
GOTOXY 20, 11
inc si
PUTC [si]
GOTOXY 25, 15
Print 'Enter your Selection : '
mov ah,1
int 21h
mov ah,al
cmp ah,1
JZ card1
cmp ah,2
JE card2
cmp ah,3
JE card3
cmp ah,4
JE card4
cmp ah,5
JE card5
cmp ah,6
JE card6
cmp ah,7
JE card7
cmp ah,8
JE card8
cmp ah,9
JE card9
JMP deadend
card1 :
GOTOXY 10, 5
mov si,offset data3
PUTC [si]
JMP deadend
card2 :
GOTOXY 15, 5
mov si,offset data3
inc si
PUTC [si]
JMP deadend
card3 :
GOTOXY 20, 5
mov si,offset data3
inc si
inc si
PUTC [si]
JMP deadend
card4 :
mov si,offset data3
inc si
inc si
inc si
PUTC [si]
JMP deadend
card5 :
mov si,offset data3
inc si
inc si
inc si
inc si
PUTC [si]
JMP deadend
card6 :
mov si,offset data3
inc si
inc si
inc si
inc si
inc si
PUTC [si]
JMP deadend
card7 :
mov si,offset data3
inc si
inc si
inc si
inc si
inc si
inc si
PUTC [si]
JMP deadend
card8 :
mov si,offset data3
inc si
inc si
inc si
inc si
inc si
inc si
inc si
PUTC [si]
JMP deadend
card9 :
mov si,offset data3
inc si
inc si
inc si
inc si
inc si
inc si
inc si
inc si
PUTC [si]
JMP deadend
deadend:
lea dx, pkey
mov ah, 9
int 21h ; output string at ds:dx
; wait for any key....
mov ah, 1
int 21h
mov ax, 4c00h ; exit to operating system.
int 21h
ends
end start ; set entry point and stop the assembler.
我離開樣品的代碼作出在模擬器一個新的文件在我的代碼,稍後將刪除它們。
你看到我把AL進去啊,用它也只是怎麼我想不出什麼錯, 但它沒有當我用AL本身在CMP要麼
非乙腦的工作/ JZ跳轉工作,只有JMP有效。
Tnx。
您應該與「1」,「9」,而不是「1..9」進行比較。無論如何,將其減少到一個程序中,除了代碼讀取一個字符並打印某些字符等於任何值(例如''1'')的代碼之外,您已經刪除了所有內容。這應該會讓你更容易找到問題。 – Michael
該死的網絡被關閉了2個小時,無論如何,我確實用'1''2'和'9'來檢查它,但仍然沒有結果。 – Pedram