я застрял с этой проблемой:Ассамблея, сравнивая два символа
Я хочу, чтобы сравнить два полукокса с их знать, какой из них придет первым в алфавитном порядке (позиция 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
на ввод с клавиатуры ..
КВА (ср) функция сделать вычитание переменная char2 и аккумулятор A. Если ответ отрицательный, тогда он будет уменьшен до меньшего. Поэтому, если введите z a
, он должен быть 7A-61 = 19 и должен размалывать до большего, но не делает!
a z
brench to less нравится. Это как ответ всегда отрицательный. Я не знаю, почему ...
Спасибо за помощь!
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] (http://stackoverflow.com/help/mcve). – Jester
С отладчиком видно значение A и char2, которые хороши! Я не уверен, что это хорошая идея предоставить полный код, потому что сначала его 400 строк и написано на французском, чтобы вы не поняли: s – Friendly67
Я отредактировал мой пост – Friendly67