2017-11-08 5 views
0

마이크로 컨트롤러 코스를 수강 중이며 ARM 프로세서 아키텍처를 연구 중입니다. 우리는 현재 데이터 처리 명령 (산술, 비교, 논리 및 데이터 이동)에 대해 이야기하고 있습니다. 산술 비교 및 ​​데이터 이동 명령어의 개념과 코드 작성시 작동 방식에 대해 이해합니다. 그러나 논리적 인 지침이 어떻게 작동하는지 이해할 수 없습니다. 강의에서는 3 가지 예를 들었지만 그 중 어느 것도 이해하지 못합니다.ARM 논리 연산 명령어

예 1 : 및 R0, R1, R2, R1과 R2는, R0 에 결과를 저장 (I 종류의 일을 이해하지만, R1과 R2가 다른 경우 정말, 그것은 32를 비교하는 것입니다. 예를 들어, R1이 0101이고 R2가 1111이면 R0은 0101과 같습니다. 이는이 비트가 설정 되려면 두 가지 모두에서 1이어야하기 때문입니다 맞습니까?)

예 2 : BICEQ r2, r3, # 7; Z = 1이면 r3의 오른쪽 3 비트를 지우고 r2에 결과를 저장하십시오. (이 코드는 이해가 안됩니다.) 명확한 3 비트를 의미하는 것은 무엇이며,이 3 비트는 어디서 오는가? 7? 나는 목적지 레지스터이므로 r2에 저장한다.하지만이 명령을 완전히받지 못한다. 그는 우리에게 "BIC는 피연산자 1과 피연산자 2를 의미한다"라고 말하면서 Op1과 Op2의 Bitwise AND를 의미한다. - 특정 비트를 지우십시오. "또한 EQ가 의미하는 것, 즉 조건과 Z가 해당 명령을 실행하기 위해 설정해야하는 베팅을 얻습니다.

예 3 : EORS r1, r3, r0; r3 배타적 OR r0, 결과를 r1에 저장하고 플래그를 설정 (나는 또한이 명령어가 무엇을하는지 이해하지 못합니다. 명령어의 S가 CPSR에서 플래그를 설정하는 것이지만 이해가 안됩니다. EOR이 수행중인 작업.

미리 감사드립니다.

+0

바이너리로 7은 무엇입니까? –

+0

https://en.wikipedia.org/wiki/XOR_gate –

+0

https://en.wikipedia.org/wiki/AND_gate –

답변

0

EOR은 배타적 OR (일반적으로 XOR이라고도 함)입니다. 입력 비트가 1이면 비트를 1을 반환하고 둘 다 1이거나 둘 다 1이면 0을 반환합니다.