悬而未决:在C51中子函数使用C51与汇编交互编程的问题
来源:互联网 发布:淘宝海外版怎么取消 编辑:程序博客网 时间:2024/06/05 16:04
C51源文件选段如下:
void main()
{
JN1 = 1;
JN2 = 0;
while(1)
{
JN1 = 0;
Delay(1);
JN1 = 1;
Delay(1);
// Pulse();
}
}
void Delay(u8 counter)
{
for( ; counter > 0; counter -- )
{
//
//注意以下程序段在交互编译后生成的汇编SRC文件
//
#pragma asm
NOP
NOP
NOP
NOP
#pragma endasm
}
}
交互编译后生成的汇编SRC文件选段如下:
RSEG ?PR?main?MAIN
main:
USING 0
; SOURCE LINE # 18
; {
; SOURCE LINE # 19
; JN1 = 1;
; SOURCE LINE # 20
SETB JN1
; JN2 = 0;
; SOURCE LINE # 21
CLR JN2
?C0001:
; while(1)
; SOURCE LINE # 22
; {
; SOURCE LINE # 23
; JN1 = 0;
; SOURCE LINE # 24
CLR JN1
; Delay(1);
; SOURCE LINE # 25
MOV R7,#01H
LCALL _Delay
;
; JN1 = 1;
; SOURCE LINE # 27
SETB JN1
; Delay(1);
; SOURCE LINE # 28
MOV R7,#01H
LCALL _Delay
;
;
;
; // Pulse();
; }
; SOURCE LINE # 33
SJMP ?C0001
; END OF main
;
; }
;
; void Delay(u8 counter)
RSEG ?PR?_Delay?MAIN
_Delay:
USING 0
; SOURCE LINE # 37
;---- Variable 'counter?140' assigned to Register 'R7' ----
; {
; SOURCE LINE # 38
; for( ; counter > 0; counter -- )
; SOURCE LINE # 39
?C0004:
MOV A,R7
SETB C
SUBB A,#00H
JC ?C0007
; {
; SOURCE LINE # 40
; counter ++;
; SOURCE LINE # 41
INC R7
; #pragma asm
; NOP
NOP
; NOP
NOP
; NOP
NOP
; NOP
NOP
; #pragma endasm
;
; }
; SOURCE LINE # 49
DEC R7
SJMP ?C0004
; }
; SOURCE LINE # 50
?C0007:
;
;注意,C51调用子函数后,没有执行NOP语句,而是直接返回主函数。
;
RET
; END OF _Delay
后记:
关于这个问题,暂无头绪,有知道答案的朋友请联系我,谢谢指教!
- 悬而未决:在C51中子函数使用C51与汇编交互编程的问题
- 关于在 KEIL C51 中嵌入汇编以及C51与A51间的相互调用
- C51和汇编混合编程----函数声明
- 关于C51与汇编的实用混合编程
- [Keil-C51]在Keil C51中使用sizeof()的一点问题记录
- c51 的编程误区
- C51下汇编的嵌入
- C51下汇编的嵌入
- 如何在 KEIL C51(v6.21) 中调用汇编函数的一个示例
- C51 main()函数和启动代码 --- 从汇编到c51
- PCF8951在90c51上的使用
- 如何实现C51和汇编的混合编程
- 如何实现C51和汇编的混合编程
- C51的堆栈问题
- KEIL C51环境下,汇编与C语言交叉编译的问题
- 编写c51程序调用汇编函数的一种方法
- C51与汇编语言混合编程
- C51程序中使用汇编代码
- HDU 1558 Segment Set
- getWindow().setFlags方法
- Js闭包和好处
- java常见异常总结
- jQuery HTML 操作
- 悬而未决:在C51中子函数使用C51与汇编交互编程的问题
- Windows Phone Toolkit MultiselectList in depth | Part1: key concepts and API
- ubuntu下配置nfs服务器
- android:scaleType
- Android中AsyncTask的简单用法
- 一个shell脚本,不明诀沥
- iOS版本迭代加速,Android 4.0用户亦愈发活跃
- Windows Phone Toolkit MultiselectList in depth| Part2: Data Binding
- ruby字符串处理函数