单片机汇编语言中,加了指令地址,为何不能通过编译呢,如下程序,在Keil中不能通过编译

ORG1000H1000H:MOV57H,#34H1003H:LJMP2000H而不加指令地址却能通过编译。我不是钻牛角尖,只是做一个研究而已。教材上说汇编语言指令格式中... ORG 1000H
1000H: MOV 57H,#34H
1003H: LJMP 2000H
而不加指令地址却能通过编译。
我不是钻牛角尖,只是做一个研究而已。教材上说汇编语言指令格式中,“指令地址:语句助记符,操作数”,这才是完整的语句指令。当然将其中的指令地址改为标号,如下语句能通过编译。
START: MOV 57H,#34H

问题是标号不就是指令地址吗,为什么不一样呢?
展开
 我来答
zhxiufan
2012-10-14 · 知道合伙人软件行家
zhxiufan
知道合伙人软件行家
采纳数:14923 获赞数:38379
国家科技进步奖

向TA提问 私信TA
展开全部
问题的关键点不在于这个表示方法的对与否,而在于编译系统的语法规则,对于KEIL来说,这样的表示是不符合语法规则的,所以在KEIL环境下是编译通不过的。
wufei608
2012-10-16 · 超过13用户采纳过TA的回答
知道答主
回答量:80
采纳率:0%
帮助的人:43.5万
展开全部
教材上是说:
[标号域:] 操作码域 [,操作数域] [;注释域]
括号里面可以没有的。
标号域就是标明了操作码的地址而已。
ORG 是指定程序或者数据起始地址。
org 1000h,表示下面的程序存储在1000H开始,,1000H: MOV 57H,#34H
,这个前面可写可不写。不管你写START 还是1000H,都不会错的,多看看书吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
做而论道
高能答主

2012-10-13 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.1亿
展开全部
指令前面,可以使用标号。

标号,必须用符号开头,还要加上冒号。

指令前面,不能使用数字形式的地址。

两者形式上的区别,还是很明显的。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e63964c
2012-10-14 · TA获得超过1510个赞
知道小有建树答主
回答量:426
采纳率:100%
帮助的人:461万
展开全部
不需要加地址的,ORG就是定位伪指令,写了这条指令,会把下面的指令自动放在你所指定的空间
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
GUEL86
2012-10-14 · TA获得超过5855个赞
知道大有可为答主
回答量:5538
采纳率:86%
帮助的人:2680万
展开全部
其实是重复定义了地址 如 这样试试 在 Keil uVision3 上可以编译
; ORG 1000H
1000H: MOV 57H,#34H
1003H: LJMP 2000H
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式