久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7377|回復: 4
打印 上一主題 下一主題
收起左側

2440裸機編程之一 C語言調用匯編語言編程

[復制鏈接]
跳轉到指定樓層
樓主
ID:68618 發表于 2014-11-12 14:49 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
一、內嵌匯編的方式,使用關鍵字__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
如下圖:

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:58502 發表于 2014-11-12 15:58 | 只看該作者
正好剛買了2440就看到這教程,真是及時雨啊
回復

使用道具 舉報

板凳
ID:713846 發表于 2020-7-31 17:30 | 只看該作者
感謝,對剛開始學的我很有幫助
回復

使用道具 舉報

地板
ID:382728 發表于 2021-11-18 16:32 | 只看該作者
感謝,對剛開始學的我很有幫助
回復

使用道具 舉報

5#
ID:138149 發表于 2021-11-26 07:31 | 只看該作者
現在用M4,照樣可以參考
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩在线播放 | 欧美精品一区二区在线观看 | 91亚洲精品在线观看 | 亚洲高清在线观看 | 亚洲国产精品一区 | 日韩午夜 | 欧美日韩在线电影 | 蜜桃视频在线观看www社区 | 国产视频一区二区 | 国产成人精品免高潮在线观看 | h视频在线免费观看 | 亚洲巨乳自拍在线视频 | 日韩久久久久久久久久久 | 欧美黄色网络 | 国产一区二区三区四区区 | 亚洲免费久久久 | 亚洲欧美一区二区三区国产精品 | 欧美一区在线看 | 久久男人 | 天天射色综合 | 成人激情免费视频 | 福利片在线观看 | 欧美一区二区三区在线视频 | 国产精品久久久久久久久久久免费看 | 蜜桃av一区二区三区 | av中文字幕在线播放 | 国产一区二区三区四区在线观看 | 久久久久中文字幕 | 成人免费福利视频 | 99久久99| 欧美韩一区二区三区 | 亚洲国产aⅴ成人精品无吗 综合国产在线 | 国产 欧美 日韩 一区 | 中文字幕在线一区二区三区 | 久久精品无码一区二区三区 | 97久久久久久久久 | 韩日av在线 | 亚洲一区久久 | 亚洲风情在线观看 | 亚洲午夜在线 | 亚洲日本欧美 |