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

求助:为什么结果不正确?

yuyunliuhen 发布于 2006-12-15 16:34, 536 次点击

首地址为DAT的数据区中有3个互不相等的8位无符号数,编写一完整的程序,将

这3个数的最大者存放在MAX单元?要求用主程序与子程序之间参数传递的方法。
我编的老是输不出正确的结果!
DATA SEGMENT
DATA1 DB 9,11,6
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
SYART:

....................
错误的就不写了; 谁能编写个程序参考一下,非常感谢!

[此贴子已经被作者于2006-12-15 17:29:29编辑过]

3 回复
#2
lefttime2006-12-15 20:04
DATA SEGMENT
DATA1 DB 9,11,6
MAX DB ? ;存放最大数
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
CALL RETURN
XOR AX,AX ;清零AX,为下面转换ASCII码作准备
MOV AL,MAX
AAM
OR AX,3030H ;ASCII码转换
MOV DX,AX
MOV AH,2
INT 21H
MOV DL,DH
INT 21H
MOV AX,4C00H
INT 21H
RETURN PROC
LEA BX,DATA1
MOV AL,[BX]
CMP AL,[BX+1]
JA NEXT0
MOV AL,[BX+1]
NEXT0: CMP AL,[BX+2]
JA NEXT1
MOV AL,[BX+2]
NEXT1: MOV MAX,AL
RET
RETURN ENDP
CODE ENDS
END START
#3
3037709572006-12-16 20:55

我发现楼上的同志编的程序不仅思路清晰易懂,而且程序简洁明了,不愧为高手!呵呵,向你致敬了!

#4
yuyunliuhen2006-12-20 21:48
谢谢!我看我得多向楼上的学习,太棒了
1