【发布时间】:2017-11-26 03:15:06
【问题描述】:
对于一个学校项目,我被告知要创建一个程序,向用户提出两个问题,每个问题都有多个选择。对于第一个问题,我要求用户从 1 到 4 中选择一个选项,但第三个和第四个选项不起作用。如果有人知道如何解决此问题,我将非常感激知道为什么会发生这种情况。
BeerSelection db 'Please choose a style of beer?',0Dh,0Ah,0Ah,'Press 1 for IPA, 2 for Wheat Beer, 3 for Dark Lager, or 4 for Brown Ale.',0Dh,0Ah,0Ah,'$'
BeerChoice db 'Which beer would you like?',0Dh,0Ah,0Ah,'Press 1 for the first beer and 2 for the second beer',0Dh,0Ah,0Ah,'$'
Inputs db 00h,00h,
Searching db 'Pouring Your Beer Selection...',0Ah,0Ah,0Dh,'$'
DogfishHead db 'Pouring 60 Minute from Dogfish Head.','$'
TreeHouse db 'Pouring Julius from Tree House Brewing Company.','$'
BlueMoon db 'Pouring Belgiun Wheat from Blue Moon.','$'
FunkyBuddha db 'Pouring Floridian Hefeweizen from Funky Buddha.','$'
Metropolitan db 'Pouring Magnetron Black Lager from Metropolitan Brewing.','$'
Yuengling db 'Pouring Traditional Lager from Yuengling.','$'
CigarCity db 'Pouring Maduro from Cigar City.','$'
LostCoast db 'Pouring Raspberry Brown Ale from Lost Coast Brewery.','$'
Dispensing db 0Ah,0Ah,0Dh,'Prost!','$'
.code
;start of main program
CALL MYTITLEPAGE
Call GETINPUTS
MOV AH,09h; Prompt pouring beer
MOV DX,offset Searching
INT 21h
;Decision Tree
BeerTypes: MOV AL,Inputs[0]
CMP AL,01h
JE IPA
JMP Wheat
JMP Lager
JMP Ale
IPA: MOV AL,Inputs[1]
CMP AL,01h
JE IPABeer1
CMP AL,02h
JE IPABeer2
Wheat: MOV AL,Inputs[1]
CMP AL,01h
JE WheatBeer1
CMP AL,02h
JE WheatBeer2
Lager: MOV AL,Inputs[1]
CMP AL,01h
JE LagerBeer1
CMP AL,02h
JE LagerBeer2
Ale: MOV AL,Inputs[1]
CMP AL,01h
JE AleBeer1
CMP AL,02h
JE AleBeer2
【问题讨论】:
-
JMP Wheat JMP Lager JMP Ale不起作用。它只会到达第一个。您应该逐步使用调试器并观察事物分支的位置。这应该很容易为您调试。
标签: assembly dos x86-16 emu8086