汇编语言的一道题目,老是编译出错!!!请各位不吝赐教

DATASEGMENTNUMDB82H,68H,88HSUMDB?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,... DATA SEGMENT
NUM DB 82H,68H,88H
SUM DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV BX,OFFSET NUM
MOV BX,[BX]
INC BX
ADD AL,[BX]
INC BX
ADD AL,[BX]
MOV SUM,AL
MOV AH,4CH
INT 21H
CODE ENDS
END START 错误如下
F:\EX11.asm(7) : error A2004: symbol type conflict
F:\EX11.asm(19) : warning A4023: with /coff switch, leading underscore required for start address : START
展开
 我来答
百度网友b79519e
2011-04-04 · TA获得超过3399个赞
知道大有可为答主
回答量:1417
采纳率:100%
帮助的人:1336万
展开全部
DATA SEGMENT
NUM DB 82H,68H,88H
SUM DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV BX,OFFSET NUM
MOV BX,[BX];这一句出了问题,即使能够运行出来,那么结果也不对.,分析:[bx]中的值是6882h(并不是你认为的82h),因为bx是16位的寄存器,那么下一次[bx]中的值并不是你期待的68,或88h,bx是6882h,[6882]这个存储单元的值是多少,是不确定的...
即使是你认为的 82h,那么[82]这个存储单元的值也是不确定,并不是你认为的68h
所以你的这一句有2个错误,建议改成,MOV AL,[BX],但是光这样还是不够,下面会给出修改好的代码
INC BX
ADD AL,[BX]
INC BX
ADD AL,[BX]
MOV SUM,AL
MOV AH,4CH
INT 21H
CODE ENDS
END START
修改后的代码:
DATA SEGMENT
NUM DB 82H,68H,88H
SUM DW ? ;为什么这样下面有解释...
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AX,0 ;这一行是增加的..
MOV BX,OFFSET NUM
MOV AL,[BX]
INC BX
ADD AL,[BX]
INC BX
ADC AL,[BX];上一次相加可能产生进位.,要加上cf.
MOV AH,0 ;若这一次相加产生进位,则送到AH中
MOV SUM,AX;因为有可能产生进位,所以需要用16位来表示相加的和,sum也应该用dw定义
MOV AH,4CH
INT 21H
CODE ENDS
END START
其他的地方都没有问题,不过要在屏幕上输出结果,还需要增加代码,你的程序运行之后,结果,存放在sum中,你可以通过查看对应内存中的值,来获得三数相加的和...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hygf99
2011-03-22 · TA获得超过140个赞
知道小有建树答主
回答量:335
采纳率:0%
帮助的人:214万
展开全部
话说用的是什么编译器,是masm5吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
呀豆荚
2011-03-22 · TA获得超过3080个赞
知道小有建树答主
回答量:752
采纳率:100%
帮助的人:1270万
展开全部
你用什么汇编程序啊?
我用masm5.0调试,程序没有错误啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jinkimjinkim
2011-03-23 · TA获得超过211个赞
知道答主
回答量:318
采纳率:0%
帮助的人:217万
展开全部
上面的程序,在masm5.0上可以运行,没有问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9045b38
推荐于2018-04-24 · TA获得超过1972个赞
知道小有建树答主
回答量:984
采纳率:90%
帮助的人:530万
展开全部
用masm5.0编译没问题:
E:\masm1>masm t.asm
Microsoft (R) Macro Assembler Version 5.00
Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved.

Object filename [t.OBJ]:
Source listing [NUL.LST]:
Cross-reference [NUL.CRF]:

50816 + 450496 Bytes symbol space free

0 Warning Errors
0 Severe Errors

E:\masm1>link t

Microsoft (R) Overlay Linker Version 3.60
Copyright (C) Microsoft Corp 1983-1987. All rights reserved.

Run File [T.EXE]:
List File [NUL.MAP]:
Libraries [.LIB]:
LINK : warning L4021: no stack segment
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式