微机原理汇编语言,MASA编程遇到的一些问题!!求帮助,提供源代码,不知道哪里出问题了,谢谢!!

DATASEGMENTADB5DUP(?)SUMDB?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DSMOVD... DATA SEGMENT
A DB 5 DUP(?)
SUM DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DS
MOV DX,AX
MOV CX,5
MOV SI,0
LEA DX,A
MOV AH,0AH
INT 21H
LP: ADD AL,A[SI]
AAA
INC SI
LOOP LP
PUT: MOV SUM,AL
ADD AX,3030H
DAA
MOV BH,AH
MOV AH,2
MOV DL,BH
INT 21H
MOV DL,AL
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START

要求是从键盘输入最多五个数,求他们的和,存入SUM,能形成exe文件,但是结果不对,哪位大神给看一下哪里出问题了?如果问题解决的话,多给分!!!谢谢!!!
展开
 我来答
人才不1234
2012-12-08 · TA获得超过100个赞
知道答主
回答量:112
采纳率:0%
帮助的人:122万
展开全部
你有很多问题
1.不懂装载.. start第一句就是错答缓的。。
2.不了解十号功能的使用
3.不了解键盘的读取
4. 乱用指令。。。
还是先看旅誉看书清镇模再提问吧
下面这个程序能输入最多80个数字,不过都是一位的,而且加起来不超过256就行

DATA SEGMENT
BUF DB 81,?
A DB 81 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX

LEA DX,BUF
MOV AH,0AH
INT 21H

MOV AX,0
MOV CL,BUF[1]
MOV CH,0
MOV SI,0
LP:
ADD AL,A[SI]
SUB AL,30H
INC SI
LOOP LP

PUSH AX
MOV DL,13
MOV AH,2
INT 21H
MOV DL,10
INT 21H
POP AX

PUT:
MOV BL,10
DIV BL
PUSH AX
INC CX
MOV AH,0
CMP AL,0
JNE PUT

MOV AH,2
OUTP:
POP DX
MOV DL,DH
ADD DL,30H
INT 21H
LOOP OUTP
MOV AH,4CH
INT 21H

CODE ENDS
END START
百度网友d21f34fe8
2012-12-08 · TA获得超过513个赞
知道小有建树答主
回答量:241
采纳率:0%
帮助的人:81.3万
展开全部
主要有以下错误
(1)在做加法之前,你首先得将AL清零,一般用XOR ax,ax来做这个事
(2)输入的数据是从A+2地址开始放的,A的顷禅第1个数是缓区长度,第2数是你输入的实际长度
所以:SI初始化应该毕乎尺用:LEA SI,A+2
(3)使用DOS 0ah调用时对输入区格式有要求,你输入5个数,就要第一数为6才对,这个我记的不太清楚具体要求了,你看下资料。
你不会说,你不会改程序吧手高?哈…希望能帮到你。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式