Создайте программу, которая печатает Вы ввели единицу, если пользователь вводит 1,
Вы ввели двойку, если пользователь вводит 2,
Вы ввели три, если пользователь вводит 3.
Программа должна зацикливаться до тех пор, пока пользователь не введет цифру 4, после чего она должна выйти.Если введено число, отличное от 1, 2, 3 или 4, программа должна напечатать Вы ввели неверный номер.
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
. - person Ruud Helderman   schedule 28.06.2020