菜鸟提问:关于多项式的计算

t200017 2007-11-30 09:20:18
昨天实验老师布置了一道题,题目如下:实现(X+Y)/Z, 且X,Y,Z由键盘输入并且要求可以计算两位数或两位数以上~并且输出结果
我只完成了一位数的....麻烦高手们能说说具体怎样实现吗?我实在不会做了....先谢谢大家了
...全文
86 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Joke_Olive 2007-12-05
  • 打赏
  • 举报
回复
看了一下程序的主要部分,应该没错。

如果要输出余数,只需要象RESULT那样再定义一个存放余数的变量,在DIV Z以后,除了将AX中的商存入RESULT以外,再加一条将DX中的余数存到其中的指令,然后再用与显示商相同的方法处理余数的显示。



gejianlin 2007-12-04
  • 打赏
  • 举报
回复
feyin 2007-12-04
  • 打赏
  • 举报
回复
楼上的,那是汇编语言吗?看的我都不敢学汇编了怕怕
Joke_Olive 2007-11-30
  • 打赏
  • 举报
回复
一位数运算你是怎么处理的?
用ASCII直接运算再加上ASCII调整指令?
还是转成二进制计算后再将结果转为十进制显示?

大熊猫侯佩 2007-11-30
  • 打赏
  • 举报
回复
你1位的可以做,2位的就完全不会了么?再想想
t200017 2007-11-30
  • 打赏
  • 举报
回复
data segment
x dw ?
y dw ?
z dw ?
result dw ?
string1 db 'input x:','$'
string2 db 'input y:','$'
string3 db 'input z:','$'
string db '(x+y)/z=','$'
data ends

code segment
main proc far
assume cs:code, ds:data
start:
mov ax, data
mov ds, ax

lea si,x
lea dx,string1
mov ah,9
int 21h
call input

lea si,y
lea dx,string2
mov ah,9
int 21h
call input

lea dx,string3
mov ah,9
int 21h
lea si,z
call input

mov ax,x
add ax,y
cwd
div z
mov result,ax

lea di,result
lea dx,string
mov ah,9
int 21h

call disp
mov ah,1
int 21h
mov ax, 4c00h
int 21h
main endp

input proc near
next: mov bx, 0
mov cx,5
newchar: mov ah, 1
int 21h
sub al,30h
jl exit
cmp al, 9
jg exit
cbw
xchg ax, bx
mov cx, 10
mul cx
xchg ax, bx
add bx, ax
loop newchar
exit:
call crlf
mov [si],bx
tj:ret
input endp

disp proc near
repeat1:
mov bx,[di]
mov di,100d
call dec_div
mov di,10d
call dec_div
mov di,1d
call dec_div
ret
disp endp

dec_div proc near
mov ax,bx
mov dx,0
div di
mov bx,dx
mov dl,al
add dl,30h
mov ah,2
int 21h
ret
dec_div endp

crlf proc near
mov dl,0ah
mov ah,2
int 21h
mov dl,0dh
mov ah,2
int 21h
ret
crlf endp

code ends

end start

大家看看着样行不行???如果要输出余数又怎么改呢?

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧