NAND логическая побитовая операция в ARM

Есть ли способ выполнить побитовую операцию NAND над битами в двух регистрах в ARM7, либо с существующими операциями AND, OR и EOR, либо с помощью других инструкций?

2 ответа

Решение

Конечно; И два регистра, а затем EOR результат со всеми 1 (для отрицания).

and затем mvn ( не двигайся).

От исследователя GCC

int nand(int a, int b) {
    return ~(a & b);
}

nand(int, int):
    and r0, r0, r1
    mvn r0, r0
    bx  lr
Другие вопросы по тегам