精華區beta Programming 關於我們 聯絡資訊
> 請問在masm中如何求一個數如987的平方根~~~~ > 謝謝 你是問組合語言嗎? 參考我以前的程式, 不過現在大都用不著了... :( Sqrt PROC ; 計算長整數的平方根 ; 參數: DX:AX = 長整數 ; 傳回: AX = 平方根 ; 備註: 1. 會破壞所有暫存器值 ; 2. 本程式的計算方式為傳統的移位比較計算法,採用2進位 ; 方式 push bp xor bp,bp ; BP = 傳回之平方根值 xor cx,cx ; CX:BX = 用以計算平方根目前所 xor bx,bx ; 在位置數字的值 mov si,16 ; SI=位數(16位) Sqrtloop: mov di,2 ; 將傳入之數值移動2位進入計算 SqrtMoveBit: shl ax,1 ; 用之數值(DI=Loop Counter) rcl dx,1 rcl bx,1 rcl cx,1 dec di jne SqrtMoveBit push si shl bp,1 ; 平方根值移1位以計算下一位數字 mov si,bp ; DI:SI = 用來比較用之值 shl si,1 ; (原DI=0) rcl di,1 or si,1 push bx push cx sub bx,si ; CX:BX >= DI:SI -> 該位數字=1 sbb cx,di jc Sqrtless pop si pop si or bp,1 jmp short Sqrtnext Sqrtless: pop cx pop bx Sqrtnext: pop si dec si jne Sqrtloop mov ax,bp pop bp retn Sqrt ENDP -- 青衫詩客 - 小邱.