Skip to the content.

EOR

Example

EOR은 Exclusive OR의 약자입니다. 흔히 다른 아키텍처(x86 등)나 고급 언어에서는 XOR (배타적 논리합)이라는 이름으로 더 자주 불리는 아주 유명한 친구입니다. “배타적”이라는 딱딱한 사전적 정의는 다 버리고, 이 친구가 컴퓨터 세계에서 어떤 마법 같은 트릭들로 쓰이는지 핵심만 아주 쉽게 정리해 드릴게요!


1. EOR 명령어의 핵심 규칙: “다르면 1, 같으면 0”

EOR은 두 값을 비트 단위로 비교할 때, “서로 성격이 다를 때만 참(1)이 되고, 같으면 파국(0)을 맞이하는” 배타적인 커플 같은 규칙을 가지고 있습니다.

[비트 연산 규칙]

문법 구조는 다른 연산들과 똑같이 명쾌합니다.

EOR , , ; Wn과 Wm을 EOR 연산하여 Wd에 저장!


2. 컴퓨터 세계를 뒤흔든 EOR만의 3대 마법 (용도)

이 EOR 명령어는 단순히 논리 연산에만 쓰이는 게 아니라, 하드웨어 레벨에서 기상천외한 최적화 트릭으로 단골 사용됩니다. 후진들에게 이 부분을 가르치면 눈이 번쩍 뜨일 겁니다!

① 초고속 레지스터 0으로 초기화하기 (Zeroing)

어셈블리 코드를 보다 보면 아주 기괴한 코드를 자주 보게 됩니다. 자기 자신과 자기 자신을 EOR 하는 코드입니다.

EOR W0, W0, W0 ; W0 레지스터를 0으로 만들어라!

자기 자신과 비교하면 모든 비트가 당연히 똑같겠죠? (1인 자리는 둘 다 1, 0인 자리는 둘 다 0). 앞서 규칙이 “같으면 0”이라고 했으니, 이 연산을 거치면 레지스터의 모든 비트가 단숨에 0으로 초기화됩니다. 원래는 MOV W0, #0을 써도 되지만, 하드웨어 구조상 EOR로 자기 자신을 날려버리는 것이 내부 연산 회로를 덜 거쳐서 전력 소모도 적고 속도가 더 빠르기 때문에 컴퓨터가 가장 사랑하는 0 초기화 방식입니다.

② 비트 토글(Toggle) 마술: “특정 스위치만 뒤집기”

어떤 값에 1이 채워진 마스크를 두고 EOR 연산을 하면, 그 자리에 있던 비트가 마법처럼 반대로 뒤집힙니다 (0은 1로, 1은 0으로).

[원본 데이터] : 1 0 1 0 [EOR 마스크] : 1 1 0 0 (앞의 두 개 비트만 뒤집어줘!)


[연산 결과] : 0 1 1 0 (앞의 두 자리는 뒤집혔고, 뒤의 두 자리는 그대로 유지됨!)

게임에서 캐릭터의 상태창(예: 무적 모드 ON/OFF) 스위치를 켰다 껐다 하는 토글 기능을 구현할 때 컴퓨터 내부에서는 이 EOR 한 줄로 끝냅니다.

③ 암호학의 기초: “스스로 복구하는 대칭키”

EOR은 아주 독특한 수학적 성질이 있습니다. 어떤 데이터(A)에 암호 키(B)를 가지고 EOR을 두 번 하면, 원래 데이터(A)로 완벽하게 돌아옵니다!

이 성질 때문에 현대의 수많은 초고속 암호화 알고리즘(AES 등)과 네트워크 데이터 검증(체크سوم)의 중심에는 항상 EOR이 쉴 새 없이 돌고 있습니다.

🧱 후진 양성 마크다운 교본용 요약 판넬

교본에 완벽한 짝꿍으로 저장하실 수 있도록 정리해 드립니다!

니모닉 이름 비트 결과 규칙 3대 핵심 트릭 (용도) 연관 니모닉
EOR Exclusive OR (XOR) 두 비트가 다르면 1, 같으면 0 1. 자기 자신과 연산하여 0으로 초고속 초기화 2. 특정 비트 패턴 반전 (Toggle) 3. 암호화/복호화 대칭 연산 EON (EOR 결과에 NOT을 한 번 더 친 짝꿍)