3847|3

75

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

混合编程调用子程序疑问? [复制链接]

按照2812开发板的一个混和编程调用子程序做个实验
主程序如下:
int add(int a,int b);
int x=0,y=0,z=0;

main()
{   
        x=3; y=17;
        while ( 1 )
        {
                z=add(x,y);       
                x+=1;
                y+=1;       
               
        }       
}
调用情况时,C子程序另存文件名add.c如下:
int add(int a,int b);
{
  return(a+b);
}
C相对应的Disassembly相应段为
0800BF      add:
0800BF FE02 ADDB    SP,#2
0800C0 9742 MOV     *-SP[2],AH
0800C1 9641 MOV     *-SP[1],AL
0800C2 9242 MOV     AL,*-SP[2]
0800C3 9441 ADD     AL,*-SP[1]
0800C4 FE82 SUBB    SP,#2
0800C5 0006 LRETR  

而调用调用汇编,asm程序文件add.asm如下:

FP        .set        XAR2
        .file        \"add.c\"

        .sect        \".text\"
        .global        _add
        .sym        _add,_add, 36, 2, 0
        .func        2

_add:
;        .line        2
;* AL    assigned to _a
        .sym        _a,0, 4, 17, 16
;* AH    assigned to _b
        .sym        _b,1, 4, 17, 16
        .sym        _a,-1, 4, 1, 16
        .sym        _b,-2, 4, 1, 16
        ADDB      SP,#2
        MOV       *-SP[2],AH            ; |3|
        MOV       *-SP[1],AL            ; |3|
;        .line        3
        MOV       AL,*-SP[2]            ; |4|
        ADD       AL,*-SP[1]            ; |4|
;        .line        4
        SUBB      SP,#2                 ; |4|
        LRETR
        ; return occurs
        .endfunc        5,000000000h,2

汇编情况下的disassembly和C的相同
为什么汇编的子程序中虚多加一些?什么作用?






最新回复

我没用过28的,你看下书后的附录应该有讲解  详情 回复 发表于 2008-4-9 05:11
点赞 关注

回复
举报

75

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
有很多是引用说明呀!
还有一些。SECT等是伪指令
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

r

    .func        .sym        哪位兄弟能给解释一下?
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

4
 
我没用过28的,你看下书后的附录应该有讲解
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表