《最新单片机第三次课幻灯片.ppt》由会员分享,可在线阅读,更多相关《最新单片机第三次课幻灯片.ppt(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、一、汇编语言的语法格式 l堆栈的含义堆栈是在内存RAM区专门开辟出来的按照“先进后出”原则进行数据存取的一种工作方式。l堆栈的作用主要用于子程序调用及返回和中断处理断点的保护及返回。lC程序中调用汇编函数 l汇编程序中调用C函数(过程) l函数调用协议 指不同的子程序代码之间形成的一种握手通讯接口,并完成一个子程序到另外一个子程序的参数传递和控制,以及定义出子程序调用与子程序返回值的规则 l参数传递 参数以相反的顺序(从右到左)被压入栈中 l堆栈维护及其排列 各参数和局部变量在堆栈中的排列如图 l函数返回值 16 位的返回值存放在寄存器R1 中;32 位的返回值存入寄存器对R1、R2中。其中低
2、字在R1 中,高字在R2 中 C语言汇编语言.external _addnum.public _main_main:R1=55; /第一个参数R2=20;/第二个参数PUSH R1,R2 TO SP;CALL _addnum;R3=R1;POP R1,R2 FROM SPLOOP:R1=0;JMP LOOPint addnum(int m,int n)int j=0;int i=0;for (i=1;i=m;i+)j=j+n;return(j);lC程序在调用汇编函数时的参数传递是将参数按照从右到左的顺序依次压入堆栈,然后才将PC和SR寄存器的值压入堆栈 l汇编程序调用C函数时的参数传递也是按照从右到左的顺序需要编程者自己在汇编程序里面将参数入栈,最先入栈的参数是C函数最右边的参数,最后入栈的参数才是C函数最左边的参数 .define xxx xxxx.public _main;_main:xxxRxLoop: Jmp loop22 结束语结束语