① keil编译汇编语言程序报错
芯片51单片机,keil
应使用keil
C51
的版本,注意区分keil
MDK版本。
汇编指令不对。51单片机自己的汇编指令和语法,详细可以搜索51单片机汇编指令。看图中程序指令,不是51单片机的汇编指令,所以全是语法错误。
② keil中编译汇编语言的错误,不懂!! 具体见程序,很简单,但是确有错误!!
出现了重复定义,可能是头文件的问题,也可能是你有些变量定义了多次!
一般在多个文件中,如果不加宏控制,会出现这种情况1
编译时会提示是那句出现了redefinition,你可以先删掉这一句!
③ 用Keil 编译汇编程序时 的问题
我帮你修改好了,你程序的错误就是把数字的'0'写成了字符的'o',这里要细心一写,因为在键盘上'o'的位置与数字'0'很近,我有的时候也可能会因为写的快而搞错了,,,,不过在keil中的默认设置,如果是合法的寄存器,会变成黑体(我一看字体,就找到你的错误了)
我这里调试的结果是,(30H)上的0x47,变成了0x74,(31H)上的0x36变成了0x63,(32H)上的0x21变成了0x12,,,,,,不知道你要的是不是这样的效果.个人修改的程序如下:
ORG
0000H
;这里的3条语句是为了调试使用
LJMP
MAIN
ORG
0100H
MAIN:
MOV
R7,#03H
MOV
R0,#30H
MOV
30H,#47H
MOV
31H,#36H
MOV
32H,#21H
BRLN:
MOV
A,R7
MOV
R2,A
ADD
A,R0
MOV
R0,A
MOV
R3,#0
BRL1:
DEC
R0
MOV
A,@R0
SWAP
A
MOV
@R0,A
;你原来把这里的R0,写成了RO(而且你这里'o'是大写,一下子更难找出来,幸亏你的程序短,你一下就找出来了)
MOV
A,@R0
;这里你错误原因同上
MOV
R3,A
DJNZ
R2,BRL1
END
④ KEIL编译51汇编程序出错,求指教啊
这程序,汗!
不说规范和内容,直接说语法错误吧
1.
不能PUSH
R7,也不能PUSH
A。对A压栈要用PUSH
ACC。
若要对R0-R7压栈,可以用MOV
A,R7
再PUSH
ACC。弹出时,
可以用POP
ACC再MOV
R7,ACC
当然,也可以直接压R7的地址,比如:PUSH
07H(BANK
0),但这样可读性很差。
2.你那儿的T1和TI是不一样的。建议,不要取一些无意义的标号,混乱不堪。
⑤ Keil问题,为什么可以编译C语言,不能编译汇编语言,添加的文件都打不开,出现下面的信息
是编译吧。不通过,可能是程序有错,应该有提示哪里出错的。
⑥ keil uvision5 为什么不能编译
你估计是安装错了,安装的时候有提示:安装51或是arm,你估计是选择了arm;
还有一种可能就是,你没有配置硬件的型号,在project_options for target..这个我估计你懂
⑦ 安装keil5出现的这东西,我始终用不了keil5编译
把debug设置成软件仿真了,改为jlink或你使用的工具就好了。
⑧ keil5软件有别人的工程,但是不能编译,应该怎么办,小白求详解
建一个工程慢慢加其它函数,先加.s文件,写一个空的main函数,编译一下,会报错,到.s文件中把
;IMPORT SystemInit
;LDR R0, =SystemInit
;BLX R0
这三行注释掉,再编译应该就没有错了,再一步步添加头文件路径和.c文件,先添加一个正确了有感觉了就一次性添加,很简单.
⑨ Keil不能用汇编。
首先,新建时没有任何文件,只有一个一个all files,你的自己给你新建的空白文档起名字,如test.asm
然后,你再往工程中,添加你所建立的test.asm时,就有这两种文件格式了。
⑩ Keil C51不能编译汇编程序的问题,请指教~~
C和汇编的混合编程没做过
但对于TH0、TL0、P1.0这些,你可以是直接用绝对地址代替它们试试