【发布时间】:2020-06-28 02:15:26
【问题描述】:
如果用户输入一个,则创建一个打印“您输入一个”的程序 1、
如果用户输入 2,则“您输入了 2”,
如果用户输入 3,则“您输入了 3”。
程序应该循环直到用户输入 4,然后它应该退出。如果输入了 1、2、3 或 4 以外的数字,程序应该 print "您输入的号码无效"。
org 0200h
Main:
ldx #InMess1<
ldy #InMess1>
jsr 0E00Ch
jsr 0E009h
jsr 0E015h
CheckOne:
cmp #1d
bne CheckTwo
ldx #OneMess<
ldy #OneMess>
jsr 0E00Ch
jmp Main
CheckTwo:
cmp #2d
bne CheckThree
ldx #TwoMess<
ldy #TwoMess>
jsr 0E00Ch
jmp Main
CheckThree:
cmp #3d
bne CheckFour
ldx #ThreeMess<
ldy #ThreeMess>
jsr 0E00Ch
jmp Main
CheckFour:
cmp #4d
bne Main
CheckError:
cmp #1d>
cmp #4d<
ldx #ErrorMess<
ldy #ErrorMess>
bne Main
brk
InMess1:
dbt 0ah,0dh
dbt "Enter 1-4: "
dbt 0d
OneMess:
dbt 0ah,0dh
dbt "You entered a one. "
dbt 0d
TwoMess:
dbt 0ah,0dh
dbt "You entered a two. "
dbt 0d
ThreeMess:
dbt 0ah,0dh
dbt "You entered a three. "
dbt 0d
ErrorMess:
dbt 0ah,0dh
dbt "You entered an invalid number. "
dbt 0d
end
这是我的完整代码供参考,但我的主要问题在于输入部分无效(错误)
CheckError:
cmp #1d>
cmp #4d<
ldx #ErrorMess<
ldy #ErrorMess>
bne Main
brk
ErrorMess:
dbt 0ah,0dh
dbt "You entered an invalid number. "
dbt 0d
end
从逻辑上讲,我知道如何执行此操作,但我不知道如何使用 6502 汇编语言执行此操作,我的总体问题是我如何准确地包含除 4 个选择数字之外的所有数字以进行错误检查。
【问题讨论】:
-
jsr 0E00Ch似乎在CheckError中丢失。