牛顿迭代法 求根号C C语言和汇编语言实现
2010-06-03 00:07
465 查看
#include<stdio.h> #include<math.h> #include<conio.h> #include<stdlib.h> //xn=(xn+c/xn)/2; //迭代的精度满足|x(n+1)-x(n)|<forcom.停止计算. main(){ float c,xn,xn1,temp,forDiv,temp2; double forCom; short int mem; xn=1.0;//迭代初始值 xn1=0.0; temp=1.0; forDiv=2.0; forCom=0.00001; printf("请输入一个正数:/n"); scanf("%f",&c); _asm{ newton: FLD xn//将xn压栈 FST temp//将栈顶元素,即xn传给temp,栈顶不弹出 FLD c//将变量c压栈 FDIV ST(0),ST(1)// c/xn 赋给 st(0) FADD ST(0),ST(1)//c/xn + xn 赋给 st(0) FLD forDiv//将fordiv压栈 FDIV ST(1),ST(0)//(c/xn + xn)/fordiv 赋给 st(1) FXCH//交换st(0)和st(1) FST xn1//将栈顶元素,传给xn1,栈顶不弹出 FSTP xn//将栈顶元素弹出赋给xn FLD temp//变量temp压栈 FLD xn1//变量xn1压栈 FSUB ST(0),ST(1)//st(0)-st(1)结果赋给st(0) FABS//求st(0)绝对值 FCOM forCom//实数比较 将标志位设置为 st(0) - forCom的结果标志位 FSTSW mem//保存状态字的值到mem MOV AX,mem//保存状态字的值到AX SAHF//SAHF 将AH 寄存器内容送FLAGS 的低字节 //以下将所有数出栈 FSTP temp2 FSTP temp2 FSTP temp2 FSTP temp2 JA newton//状态字大于0继续迭代 ending: } printf("开平方后的结果为:%e/n",xn); return 0; }
实现牛顿迭代法 求根号C C语言和汇编语言实现
相关文章推荐
- 多项式相加(链表的汇编语言实现)
- C语言switch语句的汇编语言实现
- 汇编语言实现在80*25彩色字符模式下显示字符串
- 汇编语言八 编写程序实现,将缓冲区BUFFER中的100个字按递增排序
- C语言switch语句的汇编语言实现
- 汇编语言使用加减法实现有符号数除法
- 用汇编实现类似于C语言中的printf函数--学习笔记
- 汇编语言实现冒泡排序算法
- 汇编语言:编写代码实现字符串的复制
- 汇编语言:实现大小写字母转换
- 汇编语言实现简单的冒泡排序
- 利用汇编语言编程实现通过堆栈交换ax,bx的大小
- 利用汇编语言编程实现在屏幕上显示A-Z26个大写英文字母。
- 8086汇编语言实现快速排序算法
- 汇编语言使用转义字符实现简单的“全屏”文本输出
- 用汇编语言实现BCH解码校验算法
- c语言元素实现汇编分析
- 汇编语言实现CRC校验
- 8086汇编语言自学经验分享 使用Int21h中断例程中的9号子程序实现hello world
- 汇编语言实现 输入字符进行比较 相等 返回1 不等返回-1