3066|6

73

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

这段练手汇编哪里出问题了? [复制链接]

这段程序很简单,实际编译在目标板上运行没有问题。
#include "msp430x14x.h"
;自己第一次写的程序
;
        NAME    main;模块名称定义
        PUBLIC  main;全局符号声明
        ORG     0FFFEH;中断向量表复位向量地址
        DC16    init;存放用户程序入口地址,复位后开始执行
        RSEG    DATA16_C ;在ROM中存放LED的显示值
LEDdata:DC8 01H,02H,04H,08H,10H,20H,40H,80H
        RSEG    CSTACK ;定义堆栈段
        DS      0
        RSEG    CODE ;定义代码段
        DS      0
init:   MOV     #SFE(CSTACK),SP;初始化堆栈指针
main:   NOP;用户主程序开始
        MOV     #WDTPW+WDTHOLD,&WDTCTL;关闭看门狗定时器
        MOV.b   #0,&P4SEL;定义P4口为基本I/O口
        MOV.b   #0FFH,&P4DIR;设置P4口为输出端口
        MOV.b   #0,&P4OUT;使8个灯都为熄灭状态
again:  MOV     #LEDdata,R4;取输出表格首地址
        MOV     #8,R5;循环控制次数
next:   MOV.b   @R4+,&P4OUT;取表格的某一状态输出
        CALL    #delay;延时
        DEC     R5;
        JNZ     next;
        JMP     again;
delay:  PUSH    SR;
        MOV     #0FFFFH,R6;
wait:   DEC     R6;
        JNZ     wait;
        POP     SR;
        RET
        END

随便修改了一下,问题就出来了:
#include "msp430x14x.h"
;自己第一次写的MSP430汇编程序
;
        NAME    main;模块名称定义
        PUBLIC  main;全局符号声明
        ORG     0FFFEH;中断向量表复位向量地址
        DC16    init;存放用户程序入口地址,复位后开始执行
        RSEG    CSTACK ;定义堆栈段
        DS      0
        RSEG    CODE ;定义代码段
        DS      0
init:   MOV     #SFE(CSTACK),SP;初始化堆栈指针
main:   NOP;用户主程序开始
        MOV     #WDTPW+WDTHOLD,&WDTCTL;关闭看门狗定时器
        MOV.b   #0,&P4SEL;定义P4口为基本I/O口
        MOV.b   #0FFH,&P4DIR;设置P4口为输出端口
        MOV.b   #0,&P4OUT;使8个灯都为熄灭状态
        CALL    #delay;延时,这是出第二个问题的地方。
        MOV.b   #80H,&P4OUT;
        CALL    #delay;延时
        MOV.b   #0,&P4OUT;
        CALL    #delay;延时
        MOV.b   #40H,&P4OUT;
        CALL    #delay;延时
        MOV.b   #0,&P4OUT;
end:    NOP;这是第一个问题出的地方
        JMP     end;
delay:  PUSH    SR;
        MOV     #0FFFFH,R6;
wait:   DEC     R6;
        JNZ     wait;
        POP     SR;
        RET
        END

结果是:
for_user.asm
Error[0]: Invalid syntax E:\我的文档\for_user.asm 27
Error[50]: Undefined symbol:'delay' E:\我的文档\for_user.asm 19

Done. 2 error(s), 0 warning(s)

请大家指教
[ 本帖最后由 ywb888 于 2012-1-13 12:50 编辑 ]

最新回复

end是关键字吧,不要拿来命名,改掉试试  详情 回复 发表于 2012-1-13 13:15
 
点赞 关注

回复
举报

424

帖子

0

TA的资源

纯净的硅(高级)

沙发
 
delay:  PUSH    SR;
delay后的是tab?是不是这方面的问题?
 
 

回复

73

帖子

0

TA的资源

一粒金砂(高级)

板凳
 

不能是tab吗?

鸵鸟蝈蝈:为什么第一个程序没有提出这个错误呢?
 
 
 

回复

5015

帖子

12

TA的资源

裸片初长成(初级)

4
 
你先换下路径看看,目前的路径下有中文
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(高级)

5
 

谢谢wstt,关键是这两个文件位置是一样的。

应该不是位置的问题,两个文件在同一个文件架里面
 
 
 

回复

2002

帖子

24

TA的资源

五彩晶圆(高级)

6
 
end是关键字吧,不要拿来命名,改掉试试
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(高级)

7
 

shower.xu正解

谢谢shower.xu
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表