Solved

# Pentium III or higher: 64-bit / 128-bit integer operations

Posted on 2003-12-11

Hello,

I would like to implement various mathematical operations using relatively large integers for several highly optimized mathematical analyses in C++.

Are there simple assembly sequences, for Pentium III or higher, to program the following:

1) unsigned 64-bit * unsigned 64-bit multiply with unsigned 128-bit unsigned result.

2) unsigned 128-bit / unsigned 64-bit division with unsigned 64-bit result.

3) 64-bit unsigned + 64-bit unsigned addition with indication of carry.

4) 64-bit unsigned - 64-bit unsigned subtraction with indication of borrow.

I would really like to use SSE2 or something like that, as opposed to complicated sequences with eax:edx, etc. Most of my assembly experience is with 386 and some ID and timing stuff with CPUID and RDTSC stuff. Thus I could really use some help with the newer SSE stuff.

Are there any true 128-bit registers (or some combination registers such as the old eax:edx for old 386) for the new Pentium III and higher processors?

Thank you very much for any assistance.

Sincerely, Chris.