4.4.5. SMLALxy

16비트 피연산자 및 64비트 누산기 포함 부호 있는 곱하기 누산

구문

SMLAL<x><y>{cond} RdLo, RdHi, Rn, Rm

인수 설명:

<x>

B 또는 T입니다. BRn의 하위 하프 (비트[15:0]) 사용을 의미하고, TRn의 상위 하프 (비트[31:16]) 사용을 의미합니다.

<y>

B 또는 T입니다. BRm의 하위 하프 (비트[15:0]) 사용을 의미하고, TRm의 상위 하프 (비트[31:16]) 사용을 의미합니다.

cond

선택적 조건 코드입니다 (조건부 실행 참조).

RdHi, RdLo

대상 레지스터입니다. 이 대상 레지스터에는 누산 값도 들어 있습니다. RdHiRdLo는 서로 다른 레지스터여야 합니다.

Rn, Rm

곱할 값이 들어 있는 레지스터입니다.

RdHi, RdLo, Rn 또는 Rm에 r15를 사용하면 안 됩니다.

사용법

SMLALxyRm의 선택된 하프에서 부호 있는 정수에 Rn의 선택된 하프에서 부호 있는 정수를 곱하고 32비트 결과를 RdHiRdLo의 64비트 값에 더합니다.

조건 플래그

이 명령어는 플래그를 변경하지 않습니다.

Note

SMLALxy는 예외를 발생시킬 수 없습니다. 이 명령어에서 오버플로가 발생하면 결과가 경고 없이 래핑됩니다.

아키텍처

이 ARM 명령어는 ARMv6 이상과 ARMv5의 E 변형에서 사용할 수 있습니다.

이러한 32비트 Thumb 명령어는 ARMv7-M 프로필을 제외하고 ARMv6T2 이상에서 사용할 수 있습니다.

이 명령어의 16비트 Thumb 버전은 없습니다.

예제

    SMLALTB     r2, r3, r7, r1
    SMLALBTVS   r0, r1, r9, r2
Copyright © 2002-2008 ARM Limited. All rights reserved.ARM DUI 0204IK
Non-Confidential