標題: 2440裸機編程之一 C語言調用匯編語言編程 [打印本頁]
作者: aabbcc 時間: 2014-11-12 14:49
標題: 2440裸機編程之一 C語言調用匯編語言編程
一、內嵌匯編的方式,使用關鍵字__asm{匯編指令……},這種方式操作簡單,但是限制很多,比如:不能寫PC、不支持標號表達式等等,許多正常的匯編指令和偽指令都不用。
下面是個例子:
//******************************************
int x = 3;
int y = 5;
int z;
int main(void)
{
__asm
{
MOV R0,x
MOV R1,y
ADD R0,R0,R1
MOV z,R0
}
while(1);
}
//******************************************
結果即z=x+y
如圖

二、調用外部匯編的方式
1) 如果參數不超過4個,依靠R0-R3傳遞,程序如下:
//******************************************
//main.C
int z;
extern int add(int,int); //外部鏈接
int main(void)
{
z = add(3,5);
while(1);
}
//******************************************
;*********************************************
;add.S
EXPORT add
AREA add,CODE,READONLY
CODE32
ADD R0,R0,R1
MOV PC,LR ;返回
END
;*********************************************
仿真結果: z=3+5
如下圖:

2) 如果參數超過4個,前四個用R0-R3傳遞,其余用堆棧傳遞,程序如下:
//******************************************
//main.C
int z;
extern int add(int,int,int,int,int); //外部鏈接
int main(void)
{
z = add(1,2,3,4,5);
while(1);
}
//******************************************
;*********************************************
;add.S
EXPORT add
AREA add,CODE,READONLY
CODE32
ADD R0,R0,R1
ADD R0,R0,R2
ADD R0,R0,R3
LDR R1,[SP] ;取出第五個參數
ADD R0,R0,R1
ADD SP,SP,#4 ;調整堆棧指針,找到返回地址
MOV PC,LR ;返回
END
;*********************************************
仿真結果: z=1+2+3+4+5
如下圖:

作者: liaolinhui 時間: 2014-11-12 15:58
正好剛買了2440就看到這教程,真是及時雨啊
作者: 黑心小飛俠 時間: 2020-7-31 17:30
感謝,對剛開始學的我很有幫助
作者: gaofahao 時間: 2021-11-18 16:32
感謝,對剛開始學的我很有幫助
作者: zzgoodwang 時間: 2021-11-26 07:31
現在用M4,照樣可以參考
歡迎光臨 (http://m.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
亚洲精品久久久久avwww潮水
|
欧美一级日韩一级
|
成人看片网站
|
成人爽a毛片一区二区免费
亚洲午夜在线观看
|
在线va|
9.1成人免费看片
|
欧美黄色一区
|
丁香九月婷婷
|
国产999视频
|
黄色片免费
|
免费看大片a
|
www国产亚洲精品久久网站
|
538精品视频
|
日产久久视频
|
日韩一区二区在线观看视频
|
亚洲性天堂
|
亚洲伦理精品
|
奇米影视888|
国产一区二区影院
|
精品国产一二三区
|
日韩欧美亚洲
|
久草福利视频
|
99久久精品国产一区二区三区
|
天天综合网站
|
日韩一区二区视频在线观看
|
国产香蕉av
|
中文久久乱码一区二区
|
日本伊人久久
|
四虎欧美|
日本精品网站
|
男女h黄动漫啪啪无遮挡软件
|
国产三级在线看
|
婷婷激情五月
|
www.黄色在线
|
日皮视频在线观看
|
亚州av在线
|
亚洲成人av
|
亚洲日本精品
|
aaaaaabbbbbb毛片|
国产小视频在线播放
|
日韩精品一区二区视频
|