liyute 发表于 2014-3-19 06:37:52

不能产生目标文件求解

org 0000h
ajmp main
org 0030h
mov sp,#70h
main:mov a,#0feh
jnb p0.0,ar
jnb p0.1,al
ajmp main
ar:rra
ajmp main
al:rl a
ajmp main
end
手机输入效果不好
下面是uv3的提示:
0个错误,2个警告。
warning l1:unresolved external symbol
symbol: ?c_start
module:startup.obj(?c_startup)
另一个警告和这差不多。

c2j888 发表于 2014-3-19 08:36:32

al:rl a
少了mov r1,a

mcu5i51 发表于 2014-3-19 08:43:19

warning l1:unresolved external symbol
symbol: ?c_start
module:startup.obj(?c_startup)

你是不是还在C环境下写的呀,他好像要C启动代码呢;

mcu5i51 发表于 2014-3-19 08:54:20

还是有输入错误的地方,注释掉可以生成目标和HEX文件

takashiki 发表于 2014-3-19 09:12:26

module:startup.obj(?c_startup),这个……删掉startup.A51,再编译

liyute 发表于 2014-3-19 10:19:14

c2j888 发表于 2014-3-19 08:36
al:rl a
少了mov r1,a

小写rl大写是RL循环左移,应该不用movrl,a

liyute 发表于 2014-3-19 10:25:07

mcu5i51 发表于 2014-3-19 08:43
warning l1:unresolved external symbol
symbol: ?c_start
module:startup.obj(?c_startup)


汗!有可能是这个原因。是在c环境下写的,后来复制代码到新建汇编工程编译的。第一次尝试写代码,输出显示都忘写了……回去再重写试试。感谢。

liyute 发表于 2014-3-19 10:27:27

takashiki 发表于 2014-3-19 09:12
module:startup.obj(?c_startup),这个……删掉startup.A51,再编译

uv3的提示看不明白,在网上找不到完整的使用手册。

takashiki 发表于 2014-3-19 10:37:32

liyute 发表于 2014-3-19 10:27
uv3的提示看不明白,在网上找不到完整的使用手册。

这个提示非常明白,网上找不到很正常,但是Keil自己的帮助文件应该有。
提示内容:

警告 L1:无法解析的外部符号
符号:?c_start
模块:startup.obj(?c_startup)

简单地说,就是找不到C语言的main函数。
很显然,因为你包含了startup.A51,这个是启动文件,它里面调用了?c_start,这个符号对应于C语言的main函数。
我为什么说这个文件应该剔除呢?如果不剔除的话,会在CODE空间产生重叠,以至于无法链接。

liyute 发表于 2014-3-19 23:56:09

takashiki 发表于 2014-3-19 10:37
这个提示非常明白,网上找不到很正常,但是Keil自己的帮助文件应该有。
提示内容:



受教了,非常感谢你的详细解答.

liyute 发表于 2014-3-20 00:03:26

本帖最后由 liyute 于 2014-3-20 00:13 编辑

晚上回来重新写了一段代码.请各位看看运行后会有什么样的后果呢?能不能达到预期的目的.我就是那个厚着脸皮出来被大家鄙视的小白!!!!
                                                        ;按键控制转移
;连接方法:p2口接LED灯        ,P0口接静态键盘.   
;按P0.0右移一位,按P0.1左移一位.



                   org 0000h
                   ljmp main
                   org 0030h
          main: mov sp,#70h
                  mov a,#0feh
            jj:jnb p0.0,ar
                   jnb p0.1,al
                   ljmp jj
             ar:rr a
                   mov p2,a
                   ljmp jj
             al:rl a
                mov p2,a
                  ljmp jj
                  end          

yuanyuxingqu 发表于 2014-3-20 01:26:22

感觉你没有将.C或.ASM文件加入工程中进行编译。才会提示上面的警告

liyute 发表于 2014-3-20 07:34:19

yuanyuxingqu 发表于 2014-3-20 01:26
感觉你没有将.C或.ASM文件加入工程中进行编译。才会提示上面的警告

是的,没加.asm要找uv3的资料学习学习了.

mcu5i51 发表于 2014-3-20 10:27:17

P0口接静态键盘,这个需要上拉的,看样子应该是成品板子上实现的,这方面倒不用考虑;
程序没有运行测试,目测没有去抖部分,可能工作状态不会太理想

liyute 发表于 2014-3-21 04:33:47

mcu5i51 发表于 2014-3-20 10:27
P0口接静态键盘,这个需要上拉的,看样子应该是成品板子上实现的,这方面倒不用考虑;
程序没有运行测试,目测没 ...

能运行,按下按键时LED灯会全亮,松开按键随机有一个灯亮,加去抖的话估计在延时中只接受一次信号.运行会好点但按键时间稍长LED灯也会循环点亮,没达到理想的按一次键只移动一个位的目的,不知道用汇编要怎么实现.

mcu5i51 发表于 2014-3-21 16:12:32

加入运行标志,指示按键状态,常用的单击,连按两种状态可以适应大部分应用

奮闘ing 发表于 2014-3-22 09:57:43

程序很短,你可以Debug一下看看·`~

liyute 发表于 2014-5-14 17:54:08

新建工程时保存为c了,然后在上面写的汇编,然后又没加.asm入工程-_-||,谢谢大家,就这样筒单的描述都说对了,都是高手啊。

一匹狼 发表于 2014-5-16 11:15:46

liyute 发表于 2014-3-19 10:19
小写rl大写是RL循环左移,应该不用movrl,a

汇编不区分大小写,但c有大小写的区别。
页: [1]
查看完整版本: 不能产生目标文件求解