私はこの問題で立ち往生しています:
2 つの char を比較して、どちらがアルファベット順 (ASCII 位置) で最初に来るかを知りたい。だから私はこのようなことをします:
LOADBYTEA string,x; it loads in the accumulator A, a byte from the string at ; position x
CPA char2,d ;compare it with the first char enter with keybord input
BRLT less ;if A is lesser than char2, then goto less label
BRGT greater ;if A is greater than char2, then goto greater label
a z
問題は、私が : を入力するかz a
、キーボード入力で入力するかに関係なく、常にラベルが少なくなるということです..
CPA (比較) 関数は、変数 char2 とアキュムレータ A の減算を行います。答えが負の場合は、より少ない値に分岐します。したがって、 が入力された場合z a
、それは 7A-61=19 である必要があり、より大きく分岐する必要がありますが、そうではありません!
a z
本来あるべきように分岐します。答えはいつも否定的なようです 理由はわかりません...
手伝ってくれてありがとう!
chari char,d
chari EOL,d
chari char2,d
ldbytea char,d
cpa char2,d
brlt less
brgt gt
less:charo '1',i
stop
gt:charo '2',i
stop
char:.block 1
char2:.block 1
EOL:.block 1 ;the \n
.end