Skip to the content.

B

← 전체 목차로 돌아가기


B

Branch. Unconditionally branches to a label.

무조건 분기합니다. 지정한 라벨로 실행 흐름을 이동시킵니다.

Syntax

B <label>
B.<cond> <label>  (Conditional, e.g. B.EQ, B.NE)

Example

B loop
B.EQ exit_label

🔗 Open Summary

B.EQ

Equal. True when the previous comparison’s operands were equal (or subtraction result was zero).

같음(Equal). 직전 비교의 두 피연산자가 같았을 때(또는 뺄셈 결과가 0일 때) 참입니다.

Example

B.EQ label

🔗 Open Summary

B.GE

Signed Greater than or Equal. True for a signed ‘>=’ comparison.

부호 있는 크거나 같음. 부호 있는 ‘>=’ 비교일 때 참입니다.

Example

B.GE label

🔗 Open Summary

B.GT

Signed Greater Than. True for a signed ‘>’ comparison. (Used in the C code: if (arr[j] > arr[j+1]))

부호 있는 큼. 부호 있는 ‘>’ 비교일 때 참입니다. (예: C 코드의 if (arr[j] > arr[j+1]))

Example

B.GT label

🔗 Open Summary

B.HI

Unsigned Higher. True for an unsigned ‘>’ comparison.

부호 없는 큼. 부호 없는 ‘>’ 비교일 때 참입니다.

Example

B.HI label

🔗 Open Summary

B.HS

Carry Set / Unsigned Higher or Same. True for an unsigned ‘>=’ comparison.

캐리 설정 / 부호 없는 크거나 같음. 부호 없는 ‘>=’ 비교일 때 참입니다.

Example

B.HS label

🔗 Open Summary

B.LE

Signed Less than or Equal. True for a signed ‘<=’ comparison.

부호 있는 작거나 같음. 부호 있는 ‘<=’ 비교일 때 참입니다.

Example

B.LE label

🔗 Open Summary

B.LO

Carry Clear / Unsigned Lower. True for an unsigned ‘<’ comparison.

캐리 해제 / 부호 없는 작음. 부호 없는 ‘<’ 비교일 때 참입니다.

Example

B.LO label

🔗 Open Summary

B.LS

Unsigned Lower or Same. True for an unsigned ‘<=’ comparison.

부호 없는 작거나 같음. 부호 없는 ‘<=’ 비교일 때 참입니다.

Example

B.LS label

🔗 Open Summary

B.LT

Signed Less Than. True for a signed ‘<’ comparison.

부호 있는 작음(Less Than). 부호 있는 ‘<’ 비교일 때 참입니다.

Example

B.LT label

🔗 Open Summary

B.NE

Not Equal. True when the previous comparison’s operands were different.

같지 않음. 직전 비교의 두 피연산자가 달랐을 때 참입니다.

Example

B.NE label

🔗 Open Summary

BFI

Bitfield Insert. Copies a bitfield of a given width from the low bits of the source register into a specified position of the destination register, leaving the destination’s other bits unchanged.

비트필드 삽입. 소스 레지스터의 하위 비트 중 지정한 폭만큼을 대상 레지스터의 지정한 위치에 끼워넣고, 대상 레지스터의 나머지 비트는 그대로 유지합니다.

Syntax

BFI <Wd|Xd>, <Wn|Xn>, #<lsb>, #<width>

Example

BFI X0, X1, #8, #4    // X1의 하위 4비트를 X0의 8번 비트 위치에 삽입

🔗 Open Summary

BFXIL

Bitfield Extract and Insert at Low. Copies a bit range out of the source register and inserts it at the low end of the destination, leaving the destination’s other bits untouched. Useful for pulling one packed field (e.g. a status code) out of a word without disturbing the rest of the destination register.

비트필드 추출 후 하위에 삽입. 소스 레지스터에서 지정한 비트 범위를 뽑아내어 대상 레지스터의 하위 비트에 삽입하며, 대상의 나머지 비트는 그대로 유지합니다. 패킹된 필드(예: 상태 코드) 하나를 워드에서 뽑아내되, 대상 레지스터의 나머지 값은 건드리지 않고 싶을 때 유용합니다.

Syntax

BFXIL <Wd|Xd>, <Wn|Xn>, #<lsb>, #<width>

Example

BFXIL X0, X1, #8, #4   // X1의 비트[11:8]을 뽑아 X0의 비트[3:0]에 삽입 (나머지 X0는 그대로)

🔗 Open Summary

BIC

Bitwise Bit Clear. Computes Xn AND (NOT Xm) and writes the result to the destination; used to force specific bits of a value to zero using a mask.

비트 클리어. Xn AND (NOT Xm)을 계산하여 결과를 저장합니다. 마스크를 이용해 값의 특정 비트들을 강제로 0으로 만들 때 사용합니다.

Syntax

BIC <Wd|Xd>, <Wn|Xn>, <Wm|Xm>

Example

BIC X0, X1, X2    // X1의 비트 중 X2에서 1인 자리를 0으로 지움

🔗 Open Example**

BIF

Bitwise Insert if False. Inserts bits from Vn into the destination wherever the mask in Vm is 0, leaving the rest of the destination unchanged. The complement of BIT.

조건부(거짓) 비트 삽입. 마스크 Vm의 비트가 0인 자리에만 Vn의 비트를 대상에 삽입합니다. BIT의 반대 조건입니다.

Syntax

BIF <Vd>.<T>, <Vn>.<T>, <Vm>.<T>

Example

BIF V0.16B, V1.16B, V2.16B

🔗 Open Summary

BIT

Bitwise Insert if True. Inserts bits from Vn into the destination wherever the mask in Vm is 1, leaving the rest of the destination unchanged.

조건부(참) 비트 삽입. 마스크 Vm의 비트가 1인 자리에만 Vn의 비트를 대상에 삽입합니다. 나머지 자리는 원래 값 그대로 유지됩니다.

Syntax

BIT <Vd>.<T>, <Vn>.<T>, <Vm>.<T>

Example

BIT V0.16B, V1.16B, V2.16B

🔗 Open Summary

BL

Branch with Link. Calls a subroutine, saving the return address in X30 (Link Register).

링크와 함께 분기합니다. 서브루틴을 호출하면서 복귀 주소를 X30 (링크 레지스터)에 저장합니다.

Syntax

BL <label>

Example

BL my_function

🔗 Open Summary

BLR

Branch with Link to Register. Calls a subroutine whose address is held in a register, saving the return address in X30 (Link Register).

레지스터의 주소로 링크와 함께 분기합니다. 주소가 레지스터에 담긴 서브루틴을 호출하며, 복귀 주소를 X30(링크 레지스터)에 저장합니다. 닷넷의 델리게이트와 같이 컴파일타임에 주소를 모르는 경우.

Syntax

BLR <Xn>

Example

BLR X8

🔗 Open Summary

BR

Branch to Register. Branches unconditionally to the address held in a register, without linking a return address (no update to X30).

레지스터로 분기합니다. 복귀 주소를 링크하지 않고(X30 갱신 없이) 레지스터에 담긴 주소로 무조건 분기합니다.

Syntax

BR <Xn>

Example

BR X16

🔗 Open Summary

BRK

Breakpoint instruction. Triggers a software breakpoint exception, halting execution for a debugger to inspect state. Commonly generated by compilers for assert()/trap-style failures.

브레이크포인트 명령. 소프트웨어 브레이크포인트 예외를 발생시켜 디버거가 상태를 살펴볼 수 있도록 실행을 멈춥니다. assert() 실패 같은 트랩 상황에서 컴파일러가 흔히 생성합니다.

Syntax

BRK #<imm>

Example

BRK #0x1

🔗 Open Example

BSL

Bitwise Select. Uses the destination register’s current bits as a mask: where the mask bit is 1, keeps the bit from Vn; where it’s 0, takes the bit from Vm. Typically paired with a CMxx instruction to build a branchless if/else over vector lanes.

비트 단위 선택. 대상 레지스터에 이미 들어있는 값을 마스크로 사용해서, 마스크 비트가 1인 자리는 Vn의 비트를, 0인 자리는 Vm의 비트를 가져와 채웁니다. 보통 CMxx 계열 명령어와 짝지어, 분기 없이 벡터 레인 단위 if/else를 구현할 때 씁니다.

Syntax

BSL <Vd>.<T>, <Vn>.<T>, <Vm>.<T>

Example

CMGT V3.4S, V1.4S, V2.4S   // 마스크 생성
BSL  V3.16B, V1.16B, V2.16B  // 마스크에 따라 V1/V2 중 선택

🔗 [Open Summary]