单片机C语言编程与汇编混合编程时出现的问题
首先#pragma src 的意思是向下编译至SRC文件中 在KEIL中第1次编译时很容易裤盯出错的。#pragma asm 这类型的命令先别加,编译通过一次就好了
如果是在向HEX文件编译时出的错误。因为#pragma src 的意思是向下编译至SRC文件中(汇编文件),
#pragma asm
MOV R2,#20
D1:
MOV R3,#100
D2:
MOV R4,#229
DJNZ R4,$
DJNZ R3,D2
DJNZ R2,D1
#pragma endasm
的意思是这段程序向SRC文件编译时保持源代码不变 也就把这段汇编加进SRC汇编文件中。
但C文件要生成HEX文件仿纯老时是通过OBJ文件进行的,所以直接编译是肯定出错的
正确的方法是生成SRC文件后备升 打开直接对SRC文件编译来生成HEX文件
IAR MSP430问题,C语言与汇编混合编程,程序执行完汇编代码后 跑飞
汇编中间有一唤升句 POP.B R14
把你本来进入子函数保存的地址,扒漏就春链烂给POP出来了。把它注释一下试试吧。