注册 登录
编程论坛 汇编论坛

大家看看这两题怎么做?

水水水 发布于 2006-05-18 18:07, 727 次点击
我是新手
刚学汇编
老师就布置了两个题目,说很简单
但对我来说还是有难度,望大家帮我看看
题目1:
试编写一个程序计算以下公式的值,并将结果放在F1(商)F2(余数)中

F=(10*(X+Y)-Z*(Z-1))/(X+Y+Z)
设中间和最后结果不超过16位.

题目2:
编写程序,比较两个长度相同的字符串是否相同,若相同显示YES,若不同显示NO.

第一次发贴,望大家多帮助,感激不尽!
8 回复
#2
–★–2006-05-18 20:01
.model small
.286
.data
str1 db 'English',0
str2 db 'England',0
msg1 db 13,10,'equal$'
msg2 db 13,10,'not equal$'
.code
start:
mov ax,@data
mov ds,ax
lea si,str1;;;;令si-->str1
lea di,str2;;;;令di-->str2
cld
next:lodsb ;;;;;;;;;;aL=[si],si=si+1
and aL,aL;;;;;;测试aL是否等于零
jz finish
inc di
cmp aL,[di-1]
je next
finish:
mov dx,offset msg1
jz disp
mov dx,offset msg2
disp: mov ah,9
int 21H
mov ax,4c00H
int 21H
end start



#3
水水水2006-05-18 20:45
非常感谢楼主!
有谁能帮我搞定第一题?
#4
水水水2006-05-19 19:45

谁能帮帮我啊!
急啊1

#5
行空天马2006-05-19 20:59

我不明白,为什么一定要用汇编呢?

这样的问题,用其它的任何语言,实现起来都很简单。

#6
公子吕2006-05-19 21:32

第一题:
mov ax,X
add ax,Y
mov bx,10
mul bx
mov dx,ax
mov bx,Z
mov ax,Z-1
mul bx
sub dx,ax
mov ax,dx
add bx,X
add bx,Y
div bx ;结果在ah,al中。
随手写的,还有更精简的做法。

第二个题目直接cmpsb就可以了.

行空天马 朋友不懂汇编请闪。

#7
水水水2006-05-20 18:18
行空天马 朋友
我们这是学习汇编当然得练习汇编程序
如果在实际生活中遇到可 以用其它语言
你说对吗?
谢谢二楼和六楼的朋友!
我先试试!
#8
水水水2006-05-26 19:10
str1 db 'English',0
str2 db 'England',0
首先谢谢楼上的朋友
两个程序基本成功
但有些我还有点看不懂
那上面的str1 db 'English',0这句后面的0是什么意思
我去掉之后只能显示NO
不去掉才能显示正确的判断!
望指教!

#9
lxgaaa2006-05-28 18:58

那个是代表结束符吧

我记的是$ 同问,顶上

1