这个程序有两处错误:
1. CODE SEGMENT 后面的ASSUME 应当另起一行
2. 算法中直接将MAX送到DL并输出到屏幕,用了下面的三条指令:
MOV DL, MAX
MOV AH, 02H
INT 21H
这么处理屏幕上是不会显示正确结果的。
不能显示的原因是:使用02H号DOS系统功能调用时,DL中的应当是字符的ASCII码。而你的MAX中存的是二进制的数值,不是这个数值对应字符的ASCII码值。
所以,对于不大于9的二进制数,只要加一条指令将二进制数转成该数的ASCII码值就可以正常显示了。
上面的三条指令改成这样:
MOV DL, MAX
ADD DL, 30H
MOV AH, 02H
INT 21H
你这么改一下再试试看