无心人 发表于 2023-5-22 16:02:01

现在64位下简单多了

;以win64下为例
section .text
Uint128x128To256_64:
;void UInt128x128To256( UINT64 result, const UINT64 left, const UINT64 right )
;rcx = result, rdx = left, r8 = right
;首先做下调整
    mov r10, rcx
    mov r9, rdx
    mov r11, 0
;r10 = result, r9 = left, r8 = right
    mov rax,
    mul
    mov , rax
    mov , rdx

    mov rax,
    mul
    add , rax
    adc rdx, 0
    mov , rdx
   
    mov rax,
    mul
    add , rax
    adc , rdx
    adc r11, 0
    mov , r11
   
    mov rax,
    mul
    add , rax
    adc , rdx
   
    ret

nyy 发表于 2023-7-11 09:37:38

无心人 发表于 2023-5-22 16:02
现在64位下简单多了

我看不懂!为什么会有这么多回复
页: 5 6 7 8 9 10 11 12 13 14 [15]
查看完整版本: x86上128位二进制乘法最快速算法征解