当前位置: 代码迷 >> 汇编语言 >> 请把1+2-3+4-5+6-7+…99+100 的跟与差分开存放 !用汇编实现
  详细解决方案

请把1+2-3+4-5+6-7+…99+100 的跟与差分开存放 !用汇编实现

热度:5559   发布时间:2013-02-26 00:00:00.0
请把1+2-3+4-5+6-7+……-99+100 的和与差分开存放 !!用汇编实现
请把1+2-3+4-5+6-7+……-99+100 的和与差分开存放 !!用汇编实现,这个问题,要用汇编实现,无奈自己汇编不懂。特来请教,如果能把答案解释一下,不胜感激。

------解决方案--------------------------------------------------------
正数结果在eax,负数结果在ebx

mov eax,1
add eax,2
mov ebx,0
mov ecx,2
next:
cmp ecx,100
jz end
inc ecx
neg ecx
add ebx,ecx ; 加负数
neg ecx
inc ecx
add eax,ecx ; 加正数
jmp next
end:

------解决方案--------------------------------------------------------
mov [local.1],0   //初始化相加和的变量    和
mov [local.2],0   //初始化相减和的变量    差
mov [local.3],1   //从1开始到100
jmp short s1      //跳到s1
again:
mov eax,[local.3]  //从1开始
add eax,1          
mov [local.3],eax
s1:
 cmp [local.3],65    //大于等于101跳出循环
jge short s2        //这里跳
mov ecx,[local.1]  
add ecx,[local.3]  //和
mov [local.1],ecx
mov edx,[local.2]
sub edx,[local.3]   //差
mov [local.2],edx
jmp short again    //运算下一个数
s2:
....
....
....

------解决方案--------------------------------------------------------
1楼正解,不过用Loop循环会更好看一些。
  相关解决方案