4.4.8. SMLAD 및 SMLSD

결과 더하기 또는 빼기 및 32비트 누산 포함 이중 16비트 부호 있는 곱하기

구문

op{X}{cond} Rd, Rn, Rm, Ra

인수 설명:

op

다음 중 하나입니다.

SMLAD

이중 곱하기, 결과의 합 누산

SMLSD

이중 곱하기, 결과의 차이 누산

cond

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

X

선택적 매개변수입니다. X가 있으면 곱하기가 수행되기 전에 두 번째 피연산자의 최상위 및 최하위 하프워드가 교환됩니다.

Rd

대상 레지스터입니다.

Rn, Rm

피연산자가 들어 있는 레지스터입니다.

Ra

누산 피연산자가 들어 있는 레지스터입니다.

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

연산

SMLADRn의 하위 하프워드와 Rm의 하위 하프워드를 곱하고 Rn의 상위 하프워드와 Rm의 상위 하프워드를 곱합니다. 그런 다음 두 결과를 모두 Ra의 값에 더하고 그 합을 Rd에 저장합니다.

SMLSDRn의 하위 하프워드와 Rm의 하위 하프워드를 곱하고 Rn의 상위 하프워드와 Rm의 상위 하프워드를 곱합니다. 그런 다음 첫 번째 결과에서 두 번째 결과를 빼고 그 차이를 Ra의 값에 더한 다음 결과를 Rd에 저장합니다.

조건 플래그

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

아키텍처

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

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

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

예제

    SMLSD       r1, r2, r0, r7
    SMLSDX      r11, r10, r2, r3
    SMLADLT     r1, r2, r4, r1
Copyright © 2002-2008 ARM Limited. All rights reserved.ARM DUI 0204IK
Non-Confidential