请问一个关于任意大小的数的带进位加法有关问题

请教一个关于任意大小的数的带进位加法问题
本帖最后由 yuexicheng 于 2013-04-11 21:49:47 编辑
我理解的是理论上adc指令可以实现任意大的数据进行加法运算,但是关键要怎样向内存输入我想要加的这两个数,嗯最简单的就是我要写一段程序使两个128位的十进制数相加那么我应该怎样在程序中将这两个128位的十进制数送入内存中并从低地址单元到高地址单元依次存放128位数据由低到高的各个字好像伪指令db dw这些也不可能定义任意大的数啊 
我先前想到个办法就是用db来从个位到最高位一位一位的定义然后用adc一位一位的加过去
即 db 1,2,3,4,5,6,7,8,9···;第一个128位的十进制数
   db 2,4,6,8,1,3,5,7,9···;第二个128位的十进制数
   ;ds:si指向第一个数的个位ds:di指向第二个数的个位
    sub al,al;将cf置0
     mov cx,128
s:  mov al,[si]
    adc al,[di]
    mov [si],al
    inc si
    inc di
    loop s
唔 这段代码是错误的 各位别介啊 不过想想还是不删它了 这确实也是个想法不过却行不通,问题依旧还望各位不吝赐教 

------解决方案--------------------
 
 db 1,2,3,4,5,6,7,8,9···;第一个128位的十进制数
   db 2,4,6,8,1,3,5,7,9···;第二个128位的十进制数
   ;ds:si指向第一个数的个位ds:di指向第二个数的个位
    sub al,al;将cf置0
     mov cx,128
s:  mov al,[si]
    adc al,[di]
    cmp al,10
    jnb carry       ;如果小于跳转至CRAAY
    clc             ;置CF位为0
 s1:mov [si],al     ;把计算结果放入内存
    inc si
    inc di
    loop s
carry:  stc         ;置CF位为1
        sub al,10   ;如果大于将AL中的值减10
        jmp short s1