资源描述:
《用汇编计算圆周率》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、用汇编计算圆周率~教育资源库5/5)-1/(239/7)+...) =4x(4x5/25-239/57121)/1-4x(4x5/25-239/57121)/3+4x(4x5/25-239/57121)/5-... 我对以上公式和推导一看就头疼,但根据它编出的程序却可以在4分钟内算出圆周率的小数点下8万位!(在P5/200上)想当年祖冲之算了一生才算到3.14159265,十九世纪英国人香克思用了一生才算到小数点下707位。 本程序的难点就是如何达到小数点下这么多位的精度,这个办法
2、就是:在计算机中一个ENTUSE16 ASSUME CS:CODE,DS:CODE ORG 100Hstart: jmp installHANDLE DIN Des.',0dh,0ah,0 din,_sec,_sec1,_divD_SCAN DB '<<PIcalculater>>Dec18,1996',0dh,0ah DB 'Copyright(C)byLuoYunBin,pho
3、ne0576-4114689',0dh,0ah,0ah DB 'Hoanypoints(10-80000):',0D_ABORT DB 'UserpressedEsc,calculateaborted!%20r',0dh,0ah,0D_CAL DB 'Calculating,pleasep_num0,d_sub_strD_STR2 DB '%5ld:%c' DB 0dh,0ah,0 D
4、p_num,tmp_num+4,tmp_num+8,tmp_num+12,tmp_num+16 Dp_num+20,tmp_num+24,tmp_num+28,tmp_num+321234下一页友情提醒:,特别!,tmp_num+36install: mov si,offsetd_scan call printf mov ah,0Ah mov dx,offsetkey_buff int 21h mov si,offsetkey_buff+2
5、 call scanf mov eax,d mov digital,eax mov si,offsetd_cal call printf xor ax,ax mov ds,ax mov ax,ds:[046ch] push cs pop ds mov _sec,ax mov ax,cs add ax,1000h ;resultof4*4*5/25 mov fs,ax add ax,1
6、000h ;resultof4*239/57121 mov gs,ax add ax,1000h ;totalresult mov bp,ax mov ax,fs call init_num mov dov ax,gs call init_num mov dov ax,bp call init_num call pre call calc xor ax,ax mov ds,ax mov
7、ax,ds:[046ch] push cs pop ds mov _sec1,ax push point call num_out pop point mov ax,_sec1 sub ax,_sec mov cx,55 mul cx mov cx,1000 div cx mov _sec1,dx mov cx,60 xor dx,dx div cx mov
8、 _min,ax mov _sec,dx mov si,offsetd_time call printf mov si,81h mov di,80hcmd_lop: lodsb cmp al,0dh jz cmd_end cmp al,20h jbe cmd_lop cmp al,'a' jb cmd_store cmp al,'z' j