English
Language : 

S3C3410X Datasheet, PDF (100/314 Pages) Samsung semiconductor – 16-Bit CMOS Microcontrollers
ARM INSTRUCTION SET
S3C3410X RISC MICROPROCESSOR
Multiplication by 6
ADD
MOV
Ra,Ra,Ra,LSL #1
Ra,Ra,LSL#1
; Multiply by 3
; and then by 2
Multiply by 10 and add in extra number
ADD
ADD
Ra,Ra,Ra,LSL#2
Ra,Rc,Ra,LSL#1
; Multiply by 5
; Multiply by 2 and add in next digit
General recursive method for Rb := Ra×C, C a constant:
1. If C even, say C = 2^n×D, D odd:
D=1:
D<>1:
MOV
MOV Rb,Ra,LSL #n
{Rb := Ra×D}
Rb,Rb,LSL #n
2. If C MOD 4 = 1, say C = 2^n×D+1, D odd, n>1:
D=1:
D<>1:
ADD
ADD Rb,Ra,Ra,LSL #n
{Rb := Ra×D}
Rb,Ra,Rb,LSL #n
3. If C MOD 4 = 3, say C = 2^n×D–1, D odd, n>1:
D=1:
D<>1:
RSB
RSB Rb,Ra,Ra,LSL #n
{Rb := Ra×D}
Rb,Ra,Rb,LSL #n
This is not quite optimal, but close. An example of its non-optimality is multiply by 45 which is done by:
RSB
RSB
ADD
Rb,Ra,Ra,LSL#2
Rb,Ra,Rb,LSL#2
Rb,Ra,Rb,LSL# 2
; Multiply by 3
; Multiply by 4×3–1 = 11
; Multiply by 4×11+1 = 45
rather than by:
ADD
ADD
Rb,Ra,Ra,LSL#3
Rb,Rb,Rb,LSL#2
; Multiply by 9
; Multiply by 5×9 = 45
3-62