我正在构建一个简单的程序,它接收用户数字并打印数字的总和。唯一的问题是总和总是一个非常大的数字,甚至不接近输入的数字。谁能发现问题?添加发生在积极的功能!谢谢,詹姆斯
int main(void)
{
char welcome[] = "Comp 103 Assignment 1 - James Austin\n\n";
char loopNum[] = "How many times would you like to loop? ";
char get1[] = "Enter a number: ";
char posTotal[] = "\nPositive Total: ";
char negTotal[] = "\nNegative Total: ";
char format[] = "%d";
char printFormat[] = "\n%d";
int first;
int j;
int posAmount = 0;
int negAmount = 0;
_asm{ lea eax,welcome
push eax
call printf
add esp,4
lea eax, loopNum
push eax
call printf
add esp,4
lea eax,first
push eax
lea eax,format
push eax
call scanf_s
add esp,8
mov ecx, first
Lj: push ecx
lea eax, get1
push eax
call printf
add esp, 4
lea eax, j
push eax
lea eax, format
push eax
call scanf_s
add esp, 8
cmp first,0
jg positive
jl negative
backin : pop ecx
loop Lj
lea eax, posTotal
push eax
call printf
add esp, 4
lea eax, posAmount
push eax
lea eax, format
push eax
call printf
add esp, 8
lea eax, negTotal
push eax
call printf
add esp, 4
lea eax, negAmount
push eax
lea eax, format
push eax
call printf
add esp, 8
jmp finish
positive : mov eax, posAmount
add eax, j
mov posAmount, eax
jmp backin
negative : mov eax, negAmount
add eax, first
mov negAmount, eax
jmp backin
finish :
}
return 0;
}