用減奇數法,可以求近似平方根。
那位大俠能給個匯程式設計序啊,感激不盡!
;****************************************====
最佳答案:
;程式如下:
;-------------------------------------------
data segment
num dw 12345 ;被開方數:0~65535
mes_i db ', srqt is : $ ' ;用於提示.
data ends
;-------------------------------------------
code segment
assume cs:code, ds:data
start:
mov ax, data
mov ds, ax
;------------------
mov ax, num ;被開方數
call disp_ax ;顯示
;------------------下面求平方根
mov bx, -1
mov cx, -1
lll:
add bx, 2 ;奇數
inc cx ;根加一
sub ax, bx ;減奇數
jnb lll ;夠減就繼續減
;------------------------------
mov dx, offset mes_i
mov ah, 9 ;9號功能呼叫,顯示提示.
int 21h
;------------------
mov ax, cx ;平方根
call disp_ax ;顯示
;------------------
exit:
mov ah, 4ch ;結束程式
int 21h
;------------------------------
disp_ax:
push ax
push bx
push cx
push dx
;------------------
mov bx, 10
mov cx, 0
dis0:
mov dx, 0
div bx
add dl, 30h
push dx
inc cx
and ax, ax
jz dis1
jmp dis0
dis1:
mov ah, 2
pop dx
int 21h
loop dis1
;------------------
pop dx
pop cx
pop bx
pop ax
ret;------------------------------
code ends
end start
;****************************************====
本程式執行的結果如下:
c:\masm>srqt_1
12345, srqt is : 111
c:\masm>
;****************************************====
回答者: 做而論道 | 十五級 採納率:42% 名人 達人
提問者對回答的評價:謝謝!
原題**:
;****************************************====
後記:提問者已經給出了乙個開方程式,但是能處理資料的僅有 8 位,且不能顯示。
本文給出的顯示程式,稍加修改就按照常用的進製顯示資料。具有相當廣泛的通用性。
;****************************************====
8086組合語言
cmc 進製位求反指令 stc 進製位置為1指令 cld 方向標誌置1指令 std 方向標誌位置1指令 cli 中斷標誌置0指令 sti 中斷標誌置1指令 nop 無操作 hlt 停機 wait 等待 esc 換碼 lock 封鎖 附上 藍色理想 的彙編學習心得位址 從今天開始溫習彙編了 1 基本概...
8086組合語言知識大綱
乙個儲存單元儲存乙個位元組 乙個cpu有n根位址線,則可以說這個cpu的位址匯流排的寬度為n。這樣的cpu最多可以尋找2的n次方個記憶體單元。位址匯流排的寬度決定了cpu的定址能力。資料匯流排的寬度決定了cpu和外界的資料傳送速度。8根資料匯流排一次可以傳送乙個8位二進位制資料 1個位元組 8086...
8086組合語言 LEA指令
格式 lea 暫存器,間接運算元 注意第二運算元只能是間接運算元 data array byte xuyan code mov eax,offset array lea ebx,eax 1 mov ecx,0 mov al,ebx 最後ecx中的值是十進位制117,因為 u 的ascii碼是117d...