彙編判斷一元二次方程是否有根

2021-07-29 14:25:14 字數 3474 閱讀 2659

.model small

.stack

.data

_a db 0h

_b db 0h

_c db 0h

tag db ?

string1 db 255

db 0

db 255 dup(0)

string2 db 255

db 0

db 255 dup(0)

string3 db 255

db 0

db 255 dup(0)

prompta db 'please input a :',0dh,0ah,'$'

promptb db 'please input b :',0dh,0ah,'$'

promptc db 'please input c :',0dh,0ah,'$'

newline db 0dh, 0ah, "$" ;回車換行

.code

aldisp proc

push ax

push cx

push dx

push ax

mov dl,al

mov cl,4

shr dl,cl

or dl,30h

cmp dl,39h

jbe aldisp1

add dl,7

aldisp1:mov ah, 2

int 21h

pop dx

and dl,0fh

or dl,30h

cmp dl,39h

jbe aldisp2

add dl,7

aldisp2: mov ah,2

int 21h

pop dx

pop cx

pop ax

retaldisp endp

.startup

;輸入a

mov dx,offset prompta

mov ah,09h

int 21h

mov ax, seg string1 ;取資料段存入ds中

mov ds, ax

mov dx,offset string1

mov ah, 0ah

int 21h

lea dx, newline ;輸出回車換行

mov ah, 9h

int 21h

;輸入b

mov dx,offset promptb

mov ah,09h

int 21h

mov ax, seg string2 ;取資料段存入ds中

mov ds, ax

mov dx,offset string2

mov ah, 0ah

int 21h

lea dx, newline ;輸出回車換行

mov ah, 9h

int 21h

;輸入c

mov dx,offset promptc

mov ah,09h

int 21h

mov ax, seg string3 ;取資料段存入ds中

mov ds, ax

mov dx,offset string3

mov ah, 0ah

int 21h

lea dx, newline ;輸出回車換行

mov ah, 9h

int 21h

not_use macro

mov ax,offset string3+2h

push ax

mov cl,string3+1h

mov ch,0

push cx

call getc

endm

;求amov bx,offset string1+2h

mov cl,string1+1h

mov ch,0

again:mov al,[bx]

sub al,30h

cmp cx,2

ja next2

cmp cx,1

ja next1

add _a,al

jmp done

next2:mov dl,64h

mul dl

add _a,al

jmp done

next1:mov dl,0ah

mul dl

add _a,al

done: inc bx

loop again

;求bmov bx,offset string2+2h

mov cl,string2+1h

mov ch,0

againb:mov al,[bx]

sub al,30h

cmp cx,2

ja next2b

cmp cx,1

ja next1b

add _b,al

jmp doneb

next2b:mov dl,64h

mul dl

add _b,al

jmp doneb

next1b:mov dl,0ah

mul dl

add _b,al

doneb: inc bx

loop againb

;求cmov bx,offset string3+2h

mov cl,string3+1h

mov ch,0

againc:mov al,[bx]

sub al,30h

cmp cx,2

ja next2c

cmp cx,1

ja next1c

add _c,al

jmp donec

next2c:mov dl,64h

mul dl

add _c,al

jmp donec

next1c:mov dl,0ah

mul dl

add _c,al

donec: inc bx

loop againc

;求是否有根

判斷是否是一元二次方程

判斷是否是一元二次方程 declare a int,b int,c int,x1 decimal 18,2 x2 decimal 18,2 set a 1 set b 5 set c 4 if a 0 begin print 不是一元二次方程,因為a 0 endelse begin declare ...

一元二次方程

作 者 a42 覃燕玲 完成日期 2014年 10 月 25 日 版 本 號 v1.0 問題描述 建立乙個程式解平方根 輸入描述 ax 2 bx x 0 a o 程式輸出 平方根 using system using system.collections.generic using system.l...

一元二次方程

一 知識要點 一元二次方程和一元一次方程都是整式方程,它是初中數學的乙個重點內容,也是今後學習數學的基 礎。一元二次方程的一般形式為 ax 2 2為次數,即x的平方 bx c 0,a 0 它是只含乙個未知數,並且未知數的最高次數是2 的整式方程。解一元二次方程的基本思想方法是通過 降次 將它化為兩個...