Samsung S3C2440A User Manual
Page 164
![background image](/manuals/143554/164/background.png)
S3C2440A RISC MICROPROCESSOR
THUMB INSTRUCTION SET
4-43
DIVISION BY A CONSTANT
Division by a constant can often be performed by a short fixed sequence of shifts, adds and subtracts.
Here is an example of a divide by 10 routine based on the algorithm in the ARM Cookbook in both Thumb and
ARM code.
Thumb Code
udiv10
; Take argument in a1 returns quotient in a1,
;
remainder
in
a2
MOV
a2, a1
LSR
a3, a1, #2
SUB
a1, a3
LSR
a3, a1, #4
ADD
a1, a3
LSR
a3, a1, #8
ADD
a1, a3
LSR
a3, a1, #16
ADD
a1, a3
LSR
a1, #3
ASL
a3, a1, #2
ADD
a3, a1
ASL
a3, #1
SUB
a2, a3
CMP
a2, #10
BLT
%FT0
ADD
a1, #1
SUB
a2, #10
0
MOV
pc, lr
ARM Code
udiv10
; Take argument in a1 returns quotient in a1,
;
remainder
in
a2
SUB
a2, a1, #10
SUB
a1, a1, a1, lsr #2
ADD
a1, a1, a1, lsr #4
ADD
a1, a1, a1, lsr #8
ADD
a1, a1, a1, lsr #16
MOV
a1, a1, lsr #3
ADD
a3, a1, a1, asl #2
SUBS
a2, a2, a3, asl #1
ADDPL
a1, a1, #1
ADDMI
a2, a2, #10
MOV
pc, lr
- NC10 (12 pages)
- GT-P7300 (133 pages)
- M6000 (130 pages)
- M60 (201 pages)
- P55 (172 pages)
- Tablet (44 pages)
- Q45c (199 pages)
- Galaxy Tab 8.9 (188 pages)
- X22 (197 pages)
- Q46 (194 pages)
- GT-P7100 (108 pages)
- R71 (196 pages)
- Q71 (191 pages)
- M55 (161 pages)
- GT-P6210 (200 pages)
- V1.3.0 (26 pages)
- Q35 (157 pages)
- 8.9 (176 pages)
- X65 (195 pages)
- Galaxy Tab A3LSGHI987 (146 pages)
- GALAXY Tab SGH-I987 (149 pages)
- Q30 (127 pages)
- NP270E5V (27 pages)
- NP670Z5E (157 pages)
- NP275E5E (135 pages)
- NP270E5GI (134 pages)
- NP535U3C (154 pages)
- NP370R5E (133 pages)
- XE500T1C (117 pages)
- XE500T1C (122 pages)
- NP270E5UE (27 pages)
- NP930X5J-S01US (115 pages)
- NP930X5J-S01US (149 pages)
- NP900X3D-A03US (138 pages)
- NP900X4D-A03US (129 pages)
- NP470R5E-K01UB (120 pages)
- NP470R5E-K01UB (126 pages)
- NP470R5E-K01UB (125 pages)
- NP700Z3C-S01US (156 pages)
- NP355V4C-A01VE (140 pages)
- NP940X3G-S01US (149 pages)
- NP940X3G-S01US (147 pages)
- NP915S3G-K02US (118 pages)
- NP915S3G-K02US (145 pages)