DanWebb314,
Note that you can use the same two instructions (add and sub along with two others) to do 64 bit arithmetic:
.data
FirstLow dd 12345678h
FirstHigh dd 87654321h
SecindLow dd 01111111h
SecindHigh dd 00111111h
.code
mov eax,FirstLow
mov ebx,FirstHigh
mov ecx,SecondLow
mov edx,SecondHigh
;
; to add
;
add eax,ecx ; Causes a possible carry
adc ebx,edx ; Adds the two numbers plus the possible carry.
;
; to subtract
;
sub eax,ecx ; Causes a possible borrow
sbb ebx,edx ; subtracts the two numbers and a possible borrow.
;
; eax ebx should be same as FirstLow and FirstHigh
;
Dave.