[an error occurred while processing this directive]
|
Изначально вопрос был о том, как сравнить два числа со знаком в процессоре X51. Дело в том, что данный процессор не имеет аппаратной поддержки обработки чисел со знаком. В нем нельзя выполнить операцию сравнения и условного прехода, как это сделано в AVR
cp r16, r17
brlt lab1
или в 386-ом
cmp al, bl
jlt lab1
У 51-го отсутствуют и флажки и соответствующие команды условного перехода по этим флажкам. Поэтому для корректного выполнения сравнения двух чисел со знаком у него потребуется выполнить несколько команд, вместо одной. Любой компилятор делает это корректно, и если делать то же самое на asm, то вряд ли можно написать проще.
А что касается RISC или CISC, то на мой взляд это здесь ни причем.
E-mail: info@telesys.ru