WINCE/Assembly

데이터 처리 명령어 - AND, ORR, EOR

와인한잔의여유 2012. 1. 1. 23:28

4.3.4. AND, ORR, EOR, BIC 및 ORN

논리 AND, OR, 배타적 OR, 비트 지우기 및 OR NOT

구문

op{S}{cond} Rd, Rn, Operand2

인수 설명:

op

다음 중 하나입니다.

AND

논리 AND

ORR

논리 OR

EOR

논리 배타적 OR

BIC

논리 AND NOT

ORN

논리 OR NOT (Thumb-2에만 해당)

S

선택적 접미사입니다. S를 지정하면 연산 결과의 조건 코드 플래그가 업데이트됩니다 (조건부 실행 참조).

cond

선택적 조건 코드입니다 (조건부 실행 참조).

Rd

대상 레지스터입니다.

Rn

첫 번째 피연산자가 들어 있는 레지스터입니다.

Operand2

유연한 두 번째 피연산자입니다. 옵션에 대한 자세한 내용은 유연한 두 번째 피연산자를 참조하십시오.

사용법

ANDEOR 및 ORR 명령어는 Rn 및 Operand2의 값에 대해 비트 AND, 배타적 OR 및 OR 연산을 수행합니다.

BIC (비트 지우기) 명령어는 Operand2 값의 해당 비트 보수가 포함된 Rn의 비트에 대해 AND 연산을 수행합니다.

ORN Thumb-2 명령어는 Operand2 값의 해당 비트 보수가 포함된 Rn의 비트에 대해 OR 연산을 수행합니다.

경우에 따라 어셈블러가 BIC를 AND로, AND를 BIC로, ORN을 ORR로 또는 ORR을 ORN으로 대체할 수 있습니다. 디스어셈블리 목록을 읽을 때는 이러한 사항에 주의해야 합니다. 자세한 내용은 명령어 대체를 참조하십시오.

Thumb-2 명령어에서 pc 사용

이러한 명령어의 Rd 또는 피연산자에 pc (r15) 를 사용할 수 없습니다.

ARM 명령어에서 pc 사용

Note

이러한 ARM 명령어에서 pc를 향후 사용할 수 없습니다.

pc를 Rn으로 사용하면 명령어 주소에 8을 더한 값이 사용됩니다.

pc를 Rd로 사용할 경우 다음 사항이 적용됩니다.

  • 실행이 결과에 해당하는 주소로 분기됩니다.

  • S 접미사를 사용하면 현재 모드의 SPSR이 CPSR로 복사됩니다. 이 접미사를 사용하여 예외에서 복귀할 수 있습니다 (개발자 설명서의 6장 프로세서 예외 처리 참조).

Caution

사용자 모드 또는 시스템 모드에서 pc를 Rd로 사용할 경우 S 접미사를 사용하면 안 됩니다. 이러한 명령어를 실행하면 예상할 수 없는 결과가 발생하지만 어셈블러에서 어셈블리 타임에 경고를 표시할 수 없습니다.

레지스터에 의해 제어된 시프트가 있는 데이터 처리 명령어에서는 피연산자에 pc를 사용할 수 없습니다 (유연한 두 번째 피연산자 참조).

조건 플래그

S를 지정하면 이러한 명령어는 다음을 수행합니다.

  • 결과에 따라 N 및 Z 플래그를 업데이트합니다.

  • Operand2를 계산하는 동안 C 플래그를 업데이트할 수 있습니다 (유연한 두 번째 피연산자 참조).

  • V 플래그를 변경하지 않습니다.

16비트 명령어

이러한 명령어의 다음 형식은 Thumb-2 이전 Thumb 코드에서 사용할 수 있으며, Thumb-2 코드에서 사용될 경우 16비트 명령어입니다.

ANDS RdRdRm

Rd 및 Rm은 모두 Lo 레지스터여야 합니다.

EORS RdRdRm

Rd 및 Rm은 모두 Lo 레지스터여야 합니다.

ORRS RdRdRm

Rd 및 Rm은 모두 Lo 레지스터여야 합니다.

BICS RdRdRm

Rd 및 Rm은 모두 Lo 레지스터여야 합니다.

처음 세 경우에서는 OPRdRmRd를 지정하는지 여부에 관계없이 명령어가 동일합니다.

예제

    AND     r9,r2,#0xFF00
    ORREQ   r2,r0,r5
    EORS    r0,r0,r3,ROR r6
    ANDS    r9, r8, #0x19
    EORS    r7, r11, #0x18181818 
    BIC     r0, r1, #0xab
    ORN     r7, r11, r14, ROR #4
    ORNS    r7, r11, r14, ASR #32

출처 : http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0204ik/Cihdafai.html