2010-04-26 回答
首先定义一种变量类型 suint来表示1000位内的数,经过计算这种类型占用的字节数应该是3328比较合适。这里给出一个加法的示例:#define NUM_LEN 3328int main(){ suint a; suint b; suint result; int *c = &a; int *d = &b; int *e = &result; int i = 0; const int max = NUM_LEN - 4; __asm { xor eax,eax add eax,eax //clear cf L: mov eax,[c + i] adc eax,[d + i] mov [e + i],eax pushf mov eax,i add eax,4 mov i,eax cmp eax, max ja out popf jmp L } out: return 0;}
补充:
上面说错了,suint大小应该是416字节相应的程序应该写成#define NUM_LEN 416int main(){ suint a; suint b; suint result; int *c = &a; int *d = &b; int *e = &result; int i = 0; const int max = NUM_LEN - 4; __asm { xor eax,eax add eax,eax //clear cf L: mov eax,[c + i] adc eax,[d + i] mov [e + i],eax pushf mov eax,i add eax,4 mov i,eax cmp eax, max ja out popf jmp L } out: return 0;}
补充:
因为用的浏览器问题,没有换行ÿ