llmul.s

来自「基于EP7312的MP3播放器源代码,包括MCU和PC端代码.」· S 代码 · 共 57 行

S
57
字号
//****************************************************************************//// LLMUL.S - Routines to multiply two 64-bit values, and to multiply two//           bit values producing a 64-bit value.//// Copyright (c) 1999,2000,2001 Cirrus Logic, Inc.////****************************************************************************#include "../../asmdefs.h"//****************************************************************************//// Read-only code area.////****************************************************************************    _TEXT_//****************************************************************************//// Multiply two unsigned 32-bit values, producing a 64-bit value.////****************************************************************************    _EXPORT_ _ll_muluu_ll_muluu _LABEL_    mov     r3, _CONST_ 0    mov     r2, r1    mov     r1, _CONST_ 0    b       _ll_mul//****************************************************************************//// Multiply two 64-bit values.////****************************************************************************    _EXPORT_ _ll_mul_ll_mul _LABEL_    stmdb   r13!, {r4-r6, r14}    mov     r14, r0    mov     r5, r14, lsr _CONST_ 16    bic     r4, r14, r5, lsl _CONST_ 16    mov     r12, r2, lsr _CONST_ 16    bic     r6, r2, r12, lsl _CONST_ 16    mul     r0, r4, r6    mul     r4, r12, r4    mul     r12, r5, r12    mul     r5, r6, r5    adds    r0, r0, r4, lsl _CONST_ 16    adc     r12, r12, r4, lsr _CONST_ 16    adds    r0, r0, r5, lsl _CONST_ 16    adc     r12, r12, r5, lsr _CONST_ 16    mla     r1, r2, r1, r12    mla     r1, r3, r14, r1    ldmia   r13!, {r4-r6, pc}    _END_

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?