www.pudn.com > tp60src.zip > EXTPOW10.ASM
model large extend_text,pascal include extend.inc extrn ExtMul:far,ExtDiv:far,Ulong2Ext:far .data Tab1 dd 1,10,100,1000,10000,100000,1000000,10000000 Tab2 dt 1e8,1e16,1e32,1e64,1e128,1e256,1e512,1e1024,1e2048,1e4096 .code Extend_Text Argm N,word,1 Argm A,dword,1 Loc Temp,word,5 Entry ExtPow10 push si di mov si,N or si,si jz @@7 jns @@1 neg si @@1: cmp si,4999 jbe @@2 mov si,4999 @@2: mov bx,7 and bx,si shl bx,1 shl bx,1 add bx,offset Tab1 push dword ptr [bx] lea ax,Temp push ss ax call Ulong2Ext mov cl,3 shr si,cl lea di,Tab2 @@3: or si,si jz @@5 shr si,1 jnc @@4 lea ax,Temp push ss ax ds di call ExtMul @@4: add di,10 jmp @@3 @@5: les ax,A push es ax lea ax,Temp push ss ax cmp N,0 jns @@6 call ExtDiv jmp short @@7 @@6: call ExtMul @@7: pop di si Exit end