【发布时间】:2015-07-25 15:46:27
【问题描述】:
我被这个问题困住了:
我想将两个字符与它们进行比较,以了解哪个字符按字母顺序排在第一位(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
【问题讨论】:
-
使用模拟器在
CPA指令处验证A和char2的值。另外,提供完整代码,见MCVE。 -
用调试器看 A 和 char2 的值很好!我不确定提供完整代码是个好主意,因为首先它有 400 行,而且它是用法语编写的,所以你不会理解:s