Skip to the content.

CMGE

explain

어셈블리어(Assembly Language)나 하드웨어 아키텍처에서 CMGE 니모닉(Mnemonic)은 Compare Greater Than or Equal의 약어입니다. 즉, 두 값을 비교하여 “크거나 같은지(>=)”를 판단하는 컴퓨터 명령어의 텍스트 표현(니모닉)입니다. 이 명령어는 주로 ARM 아키텍처(AArch64)의 고속 멀티미디어/벡터 연산 기술인 NEON(Advanced SIMD) 명령 집합에서 핵심적으로 사용됩니다.


1. CMGE 명령어의 핵심 구조 (ARM64 기준)

ARM64의 SIMD&FP(단일 명령 다중 데이터) 환경에서 주로 레지스터 대 레지스터를 비교할 때 사용하며, 문법 구조는 다음과 같습니다: [1]

CMGE ., ., .

0(Zero)과의 비교 포맷

두 값을 비교하는 것 외에도, 특정 변수가 0보다 크거나 같은지를 단독으로 비교하는 유용한 변형 문법도 제공합니다.

CMGE ., ., #0


2. 작동 방식: 벡터 레지스터 내부에서의 비교

일반 CPU 명령어(예: CMP)는 두 값을 비교한 뒤 상태 플래그(ZF, CF 등)를 바꿉니다. 하지만 SIMD(벡터) 명령어인 CMGE는 플래그를 바꾸는 대신 조건을 만족하는지 여부를 “비트 마스크(Bit Mask)” 형태로 레지스터에 직접 기록합니다. [2] 만약 두 값을 비교하여 첫 번째 값(Vn) >= 두 번째 값(Vm) 조건이 성립하면:

📊 병렬 연산 예시 (32비트 정수 4개를 동시에 비교하는 4S 포맷인 경우)

[입력 Vn] (첫 번째 배열) : [ 10 ], [ 25 ], [ 5 ], [ -3 ] >= >= >= >= (CMGE 연산 수행) [입력 Vm] (두 번째 배열) : [ 15 ], [ 20 ], [ 5 ], [ -5 ]


[결과 Vd] (비트 마스크) : [ False ], [ True ], [ True ], [ True ] [실제 레지스터 저장값] : [0x00000000], [0xFFFFFFFF], [0xFFFFFFFF], [0xFFFFFFFF]


3. 주요 특징 및 주의사항


4. 언제 주로 사용하나요?

주로 대량의 데이터를 한 번에 빠르게 처리해야 하는 영역에서 핵심적으로 쓰입니다.