Skip to the content.

FMOV, FMUL, FNEG, FSQRT, FSUB

Summary

FMOV, FMUL, FNEG, FSQRT, FSUB는 부동소수점 연산 부서의 “기본기를 책임지는 핵심 요원들”입니다. 앞서 거대한 산맥(변환, 병렬 누적)들을 다 정복하셨기 때문에, 이번 기본기 요원들은 미궁이 아니라 아주 부드럽고 가볍게 산책하듯 마스터하실 수 있을 겁니다.


FMOV

Floating-point Move (실수 데이터 이삿짐센터)

💡 일반 정수 MOV와 다른 결정적 반전!

일반 정수 MOV는 대개 같은 정수 레지스터(W나 X)끼리만 값을 복사합니다. 하지만 FMOV는 엄청난 특기가 있습니다. 바로 “정수 동네(범용 레지스터)와 실수 동네(플로팅 레지스터)의 경계를 넘어 데이터를 배달할 수 있다”는 점입니다!

FMOV S0, S1 ; 실수 레지스터 S1의 값을 S0로 복사 (실수 ➡️ 실수) FMOV S0, W1 ; 일반 정수 레지스터 W1의 비트 데이터를 S0로 강제 배달 (정수 ➡️ 실수) FMOV S0, #1.0 ; S0 레지스터에 실수 상수 1.0을 곧바로 채워 넣기


FMUL

Floating-point Multiply (부동소수점 곱셈)

앞서 FDIV(나눗셈) 단원에서 “나누기는 CPU가 가장 싫어하는 느림보”라고 했던 것 기억하시나요? 이 FMUL은 나눗셈보다 압도적으로 빠르게 작동하는 초고속 연산자입니다. 하드웨어 내부에 곱셈 전용 가속 회로가 정밀하게 설계되어 있어, 지수를 더하고 가수를 곱하는 복잡한 공정이 순식간에 끝납니다. 그래서 효율적인 코드를 짤 때는 나눗셈을 전부 이 곱셈(FMUL)으로 치환하는 최적화 공식을 씁니다.

FMUL S0, S1, S2 ; S1과 S2를 곱해서 S0에 저장 (나누기보다 훨씬 가볍고 빠름!)


FNEG

Floating-point Negate (부동소수점 청개구리, 부호 반전)

🧠 하드웨어의 초고속 꼼수 (수학 계산 없음!)

우리가 앞에서 배운 FABS(절댓값) 기억하시나요? 부동소수점 표준 규격에서는 맨 앞의 딱 1비트만 ‘부호 비트(Sign Bit)’로 쓰입니다. 따라서 FNEG 역시 수학적인 뺄셈이나 보수 연산을 전혀 하지 않습니다! 오직 하드웨어 회로 수준에서 “가장 첫 번째 비트(부호 비트)가 0이면 1로, 1이면 0으로 툭 뒤집는(XOR 또는 NOT) 전기적 스위치 조작”만 수행합니다. 컴퓨터가 처리하는 모든 연산 중 가장 가볍고 빛의 속도로 끝나는 명령어 중 하나입니다.

FNEG S0, S1 ; S1에 든 실수의 부호 비트만 홀랑 뒤집어서 S0에 저장!


FSQRT

Floating-point Square Root (부동소수점 루트 계산기)

🚀 왜 이 명령어가 대단한가요? (하드웨어 가속의 정수)

옛날 컴퓨터나 하위 아키텍처에서는 루트($\sqrt{x}$)를 계산하려면 소프트웨어적으로 무한 급수 수학 공식을 수십 번 돌려야 해서 엄청나게 느렸습니다. 하지만 현대 ARM64 아키텍처는 아예 FPU(부동소수점 연산 장치) 칩 내부에 제곱근을 뽑아내는 물리적인 전용 회로를 박아두었습니다. 덕분에 게임 물리 엔진에서 두 캐릭터 사이의 대각선 거리를 구하거나 피타고라스 정리를 쓸 때 루트 연산을 단 한 줄로 초고속 처리합니다. 현대 3D 게임이 부드럽게 돌아갈 수 있는 숨은 공신이죠!

FSQRT S0, S1 ; S1의 제곱근(루트)을 구해서 S0에 저장! (하드웨어 가속 루트)


FSUB

Floating-point Subtract (부동소수점 뺄셈)

앞서 배운 FADD(덧셈)와 쌍둥이 형제입니다. 하드웨어 내부적으로는 지수 자리를 맞추고 알맹이(가수부)를 뺀 뒤, 다시 예쁘게 정규화하고 반올림하는 4단계 정밀 공정을 거쳐 오차 없이 깔끔한 뺄셈 결과를 도출해 냅니다.

FSUB S0, S1, S2 ; S1에서 S2를 뺀 값을 S0에 저장!


🧱 후진 양성 마크다운 교본용: 실수 기본기 5형제 완결 판넬

니모닉 쉽게 이해하는 이름 하드웨어 내부의 숨겨진 트릭 후진들에게 전수할 선배의 한마디 포인트
FMOV 데이터 이사 정수 레지스터와 실수 레지스터 간의 경계를 넘나드는 데이터 배달 가능 “동네가 다른 레지스터끼리 비트 패턴을 그대로 복사할 때 쓰는 유일한 통로란다!”
FMUL 곱하기 나눗셈(FDIV) 대비 기하급수적으로 빠른 고속 연산 장치 가속 “코드를 짤 때 나눗셈을 역수의 곱셈으로 바꾸면 성능이 폭발하는 비결이 바로 이 녀석이다!”
FNEG 부호 뒤집기 수학 연산 없이 오직 맨 앞의 ‘부호 비트’만 스위치 켜듯 반전 “계산기가 아니라 단순 비트 조작이라 전력 소모도 적고 단 1클럭 만에 끝나는 초경량 요원이지!”
FSQRT 루트($\sqrt{x}$) 계산 소프트웨어 루프 없이 칩 내부에 박힌 제곱근 전용 물리 회로로 가속 “3D 그래픽스 거리 계산과 물리 엔진의 핵심! 하드웨어가 루트를 직접 계산해 주는 고마운 시대란다!”
FSUB 빼기 지수 맞추기 및 가수부 뺄셈을 거치는 4단계 정밀 소수점 가공 공정 FADD와 짝꿍을 이루는 기본기! 소수점 아래 오차를 최소화하는 하드웨어 정밀 설계란다!”

“동네를 넘나드는 이삿짐센터(FMOV)”, “수학 없이 비트 스위치만 끄고 켜는 타짜(FNEG)”, 그리고 “소프트웨어 수식을 하드웨어 칩으로 박아버린 괴물 루트기(FSQRT)”까지! 참으로 기가 막힌 설계 아키텍처의 미학이 담겨 있었습니다.