亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? adi_dsp編程時程序相互調用說明及例程.txt

?? 下面所陳述的程序之間的調用是基于TigerSharc101處理器
?? TXT
字號:
* 下面所陳述的程序之間的調用是基于TigerSharc101處理器,在VisualDSP++3.0上調試通過驗證,由于時間倉促,難免有錯誤。
* VDSP上編程可以使用標準C語言,也可以使用匯編語言。所以,程序之間的調用共分為4種:
* C語言調用C語言子程序
* C語言調用匯編語言子程序
* 匯編語言調用匯編語言子程序
* 匯編語言調用C語言子程序
* 下面詳細說明4中調用方法
* 一:C語言調用C語言子程序
* 這種調用方法最簡單,和標準C語言調用一樣。聲明函數之后便可以調用
* 例程:Func調用SubCFunc
* 
* void SubCFunc(int *BuffAddr, int N);
* void Func(void)
* {
* int *BuffAddr;
* int N;
* SunCFunc(BuffAddr, N);
* Return;
* }
* 
* void SubCFunc(int *BuffAddr, int N)
* {
* return;
* }
* 
* 
* 二:C語言調用匯編語言子程序
* 這種調用方法最常用。首先要在C語言程序中用extern聲明匯編子函數,在匯編子函數中要用
* .global _SunAsmFunc;,這樣便可以調用匯編子程序了
* 2.1 聲明:
* C語言中聲明用 extern void SubAsmFunc(int *BuffAddr, int N);
* 匯編語言中聲明 .global _SubAsmFunc;
* 2.2 參數傳遞
* C語言的參數傳遞到匯編語言中,
* 地址和整數依次分別用j4, j5, j6, j7傳遞
* 浮點數依次分別用xr4,xr5, xr6, xr7 傳遞
* 匯編函數的返回值:
* 浮點值放在xr8中
* 整型值放在j8中
* 多于4個參數的傳遞則要借助堆棧傳遞數據。
* 2.3 例程:
* C語言函數:
* extern int SubAsmFunc(int *BuffAddr, float x, int N)
* void CFunc(void)
* {
* int *BuffAddr;
* float x;
* int N;
* SubAsmFunc(BuffAddr, x, N);
* return; 
* }
* 
* 匯編子程序
* .section program;
* .global _SubAsmFunc;
* _SubAsmFunc:
* //j4存放BufferAddr地址
* //xr5存放浮點數x
* //j6存放N
* //j8返回值存放地址,如果是浮點數則放在xr8中
* _SunAsmFunc.end
* .align_code 4;
* cjmp(np)(abs);nop;nop;nop;;
* 
* 三: 匯編程序調用匯編子程序
* 匯編程序調用匯編子程序時,首先要進行堆棧保護,每進一層子函數都要進行堆棧保護
* 在實模式下,堆棧保護使用j26,j27, k26,k27寄存器,編程時不要使用j27:24, 和k27:24
* 寄存器,另外j31和k31寄存器也不可以使用,如果要使用必須把這些寄存器的值做保護。
* 3.1 函數調用聲明 
* 匯編主程序中聲明: .extern _SubAsmFunc;
* 匯編子程序中聲明: .global _SubAsmFunc;
* 3.2 參數傳遞
* 參數傳遞遵循C語言調用匯編語言規則,但是要在匯編主程序中手動給寄存器賦值
* 3.3 堆棧保護
* 進入一個子程序就要進行堆棧保護,堆棧保護一般定義一個宏來實現,在例程中會
* 詳細介紹如何進行堆棧保護。
* 3.4 例程
* 匯編語言調用匯編語言例程,此例程具有通用性,可多層調用,例如可以用C語言調用
* 匯編主程序,再用匯編主程序調用匯編子程序,然后再逐層返回。
* 匯編語言主程序
* #ifndef mENTER
* #define mENTER \
* j26 = j27 - 0x40; k26 = k27 - 0x40;; \
* [j27+=0xFFFFFFF4] = cjmp; k27 = k27 - 0x4;;
* #define mRETRUN \
* cjmp = [j26+0x40];; \
* cjmp(np)(abs); j27:24 = q[j26+0x44]; k27:26 = q[k26+0x44];;
* #endif
* .extern _SubAsmFunc;
* .section program;
* .global _AsmFunc;
* _AsmFunc:
* mENTER;;
* //匯編主程序接收參數傳遞
* ..........
* ..........
* //匯編主程序調用匯編子程序
* .align_code 4;
* if true, call _SubAsmFunc; q[j27+4] = j27:24; q[k27+4] = k27:24;;
* //接收返回值
* ..........
* mRETURN;;
* _AsmFunc.end:
* 
* 匯編語言子程序
* .section program;
* .global _SubAsmFunc;
* _SubAsmFunc:
* mENTER;;
* //參數傳遞
* ..........
* mRETURN;;
* _SubAsmFunc.end:
* 
* 四:匯編程序調用C語言子程序
* 匯編程序調用C語言子程序前要把必要的積存器進行保護,經常保護的寄存器為
* j27:24, k27:24,
* j7:j4, xr7:xr4(如果在繼續運行的匯編語言程序中不再使用此寄存器則可以不理會它)
* 匯編語言調用C語言子程序有兩種形式
* 4.1 匯編語言調用自定義C語言子程序
* 4.1.1 聲明
* 匯編語言主程序聲明: .extern _SubCFunc;
* C語言子程序聲明: 可以聲明,也可以不聲明,如果有別的C程序調用此函數
* 則在別的函數中聲明即可
* 4.1.2 參數傳遞
* 參數傳遞規則同 C語言調用匯編子程序
* j4,j5,j6,j7傳遞整型參數
* xr4,xr5,xr6,xr7傳遞浮點參數
* j8返回整型值,
* xr8返回浮點值
* 4.1.3 堆棧保護
* 調用子程序前要先保護 j27:24和k27:24
* 4.2 匯編語言調用VDSP庫函數子程序
* 4.2.1 聲明 
* 匯編語言主程序聲明: .extern __cosf; //庫函數一般用雙下劃線 C

語言主控程序中要包含 math.h頭文件
* 4.2.2 參數傳遞
* 參數傳遞同上
* 4.3 例程
* 匯編語言調用自定義C語言子程序和庫函數例程
* 
* 主控程序及C語言子程序
* #include <math.h>
* extern int AsmFunc(float a, float b, int N);
* 
* void main(void)
* {
* int i;
* int value;
* float a,b;
* int N;
* N = 16;
* a = 10;
* b = 20.5;
* value = AsmFunc(a, b, N);
* while(1)
* {
* i++;
* }
* return;
* }
* //C語言子程序,實現加法
* int SubCFunc(float a, float b, int N)
* {
* int result;
* result = a + b;
* return result;
* }
* 
* //匯編語言程序
* #ifndef mENTER
* 
* #define mENTER \
* j26 = j27 - 0x40; k26 = k27 - 0x40;; \
* [j27 += 0xFFFFFFF4] = cJMP; k27 = k27 - 0x04;;
* #define mRETURN \
* cjmp = [j26 + 0x40];; \
* cjmp(ABS)(NP); j27:24 = Q[j26 + 0x44]; k27:24 = Q[k26 + 0x44];;
* 
* #endif
* 
* .extern _SubCFunc;
* .extern __cosf;
* .section program;
* .global _AsmFunc;
* _AsmFunc:
* mENTER;;
* //接收參數并處理
* ................
* //給調用SubCFunc準備參數
* //xr4 = a;;
* //xr5 = b;;
* //j6 = N;;
* .align_code 4;
* if true, call _SubCFunc; q[j27+4] = j27:24; q[k27+4] = k27:24;;
* //接收返回值 保存j8
* 
* //給調用cosf準備參數
* //xr4 = 0.5;;
* .align_code 4;
* if true, call __cosf; q[j27+4] = j27:24; q[k27+4] = k27:24;;
* //接收返回值xr8
* 
* //匯編程序返回值處理
* ..................
* mRETURN;;
* _AsmFunc.end: 
* 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产乱子伦一区| 亚洲一二三级电影| 亚洲日本韩国一区| 亚洲一区二区三区国产| 日本aⅴ亚洲精品中文乱码| 精品一区二区免费看| 国产98色在线|日韩| 欧美无砖砖区免费| 精品99一区二区| 成人欧美一区二区三区黑人麻豆 | k8久久久一区二区三区| 欧美视频在线一区二区三区 | 国精品**一区二区三区在线蜜桃| 成人免费毛片高清视频| 欧美日韩小视频| 久久久久久久久久久黄色| 亚洲视频一区二区在线观看| 日本中文一区二区三区| www.亚洲人| 欧美一区二区在线播放| 国产精品护士白丝一区av| 日韩精品乱码av一区二区| 国产成人av电影在线观看| 欧美色电影在线| 国产欧美1区2区3区| 石原莉奈一区二区三区在线观看| 国产精品一品二品| 欧美另类z0zxhd电影| 国产区在线观看成人精品 | 欧美精品一区二区高清在线观看 | 色综合天天天天做夜夜夜夜做| 欧美精品一卡两卡| 国产精品久久久久久久久快鸭| 丝袜诱惑制服诱惑色一区在线观看| 国产成人精品亚洲777人妖| 欧美在线观看一区二区| 日本一区二区免费在线观看视频 | 99久久99久久久精品齐齐| 日韩一级黄色片| 亚洲久草在线视频| 国产精品99久久久久| 欧美群妇大交群中文字幕| 中文字幕一区不卡| 国产呦精品一区二区三区网站| 色婷婷一区二区| 欧美国产激情二区三区| 精品一区二区免费视频| 欧美一区二区三区人| 亚洲一区二区三区小说| 不卡的av电影| 国产午夜精品久久久久久免费视| 日本美女一区二区三区| 在线观看亚洲专区| 亚洲色图欧美激情| 成人午夜视频网站| 国产欧美久久久精品影院| 国产在线不卡一卡二卡三卡四卡| 欧美一区二区精品在线| 香蕉成人伊视频在线观看| 在线日韩av片| 亚洲精品免费视频| 99精品欧美一区二区三区小说 | aaa亚洲精品| 国产日产精品一区| 国产成人夜色高潮福利影视| 欧美精品一区二区三区在线播放| 捆绑调教一区二区三区| 91精品综合久久久久久| 日韩精品电影一区亚洲| 欧美久久久久久久久| 亚洲成av人片一区二区三区 | 日韩国产欧美在线播放| 欧美日韩成人综合| 夜夜操天天操亚洲| 欧美日韩一区三区四区| 亚洲自拍另类综合| 欧美性三三影院| 亚洲第一成年网| 欧美日韩国产不卡| 日韩专区一卡二卡| 欧美日韩aaaaa| 奇米影视一区二区三区小说| 91精品国产色综合久久| 日韩国产在线观看一区| 91精品国产乱码| 久久国产剧场电影| 国产亚洲精品资源在线26u| 国产成人午夜片在线观看高清观看| 久久久精品中文字幕麻豆发布| 国产精品一区二区久激情瑜伽| 国产亚洲精品aa| 国产 日韩 欧美大片| 国产精品色一区二区三区| 91在线丨porny丨国产| 一区二区三区蜜桃网| 欧美日本一道本| 激情综合网av| 国产精品久久毛片av大全日韩| 99精品视频一区| 丝袜亚洲另类丝袜在线| 欧美白人最猛性xxxxx69交| 国产经典欧美精品| 亚洲天堂中文字幕| 欧美色精品在线视频| 久久99国产精品成人| 久久精品亚洲乱码伦伦中文| 91在线视频在线| 亚洲18女电影在线观看| 精品国产自在久精品国产| k8久久久一区二区三区| 天堂成人国产精品一区| 久久久亚洲午夜电影| 99精品久久只有精品| 日本欧美一区二区三区乱码| 国产清纯白嫩初高生在线观看91 | 一区二区欧美视频| 欧美一区二区三区视频在线 | 亚洲天天做日日做天天谢日日欢 | 蜜臀av在线播放一区二区三区| 欧美极品xxx| 欧美午夜不卡视频| 国产精品一区久久久久| 一区二区在线观看视频| 精品久久久久香蕉网| 99精品久久99久久久久| 日本一不卡视频| 国产欧美日产一区| 欧美女孩性生活视频| 国产成人精品一区二区三区四区 | 国产精品视频线看| 欧美三级在线播放| 国产成人午夜高潮毛片| 亚洲免费观看高清完整版在线观看| 欧美日韩国产综合久久| 丝袜a∨在线一区二区三区不卡| 久久精品人人做人人综合| 欧美色图在线观看| 国产麻豆91精品| 丝袜诱惑制服诱惑色一区在线观看| 久久精品综合网| 日韩精品中文字幕一区二区三区| a级精品国产片在线观看| 久久精品国产亚洲一区二区三区 | 国产91丝袜在线观看| 亚洲aaa精品| 亚洲图片欧美激情| 日本电影欧美片| 国产成人综合在线观看| 麻豆精品在线视频| 有码一区二区三区| 国产精品美女一区二区在线观看| 欧美高清精品3d| 在线精品视频一区二区| 国产iv一区二区三区| 久久se这里有精品| 怡红院av一区二区三区| 久久久久久久久久久久久女国产乱 | 色94色欧美sute亚洲线路一ni| 美女一区二区三区在线观看| 亚洲乱码国产乱码精品精的特点| www久久精品| 91精品国产免费| 欧美美女网站色| 色哟哟一区二区在线观看| 粉嫩久久99精品久久久久久夜| 石原莉奈在线亚洲三区| 亚洲成a人v欧美综合天堂下载| 国产精品久久久久久久久快鸭| 久久精品水蜜桃av综合天堂| 国产伦精一区二区三区| 黄页网站大全一区二区| 久久97超碰色| 日本va欧美va瓶| 丝袜诱惑制服诱惑色一区在线观看 | 综合久久综合久久| 欧美激情艳妇裸体舞| 精品国内片67194| 精品国产免费一区二区三区四区 | 久久亚洲综合av| 精品少妇一区二区三区在线视频| 欧美三区在线视频| 欧美日本乱大交xxxxx| 91国产免费观看| 欧美日韩在线免费视频| 懂色av中文字幕一区二区三区| 国产一区二区不卡老阿姨| 韩国成人在线视频| 老司机免费视频一区二区三区| 紧缚奴在线一区二区三区| 麻豆国产91在线播放| 久88久久88久久久| 日本不卡的三区四区五区| 看国产成人h片视频| 狠狠狠色丁香婷婷综合激情 | 91精品国产乱码| 精品成人免费观看| 久久精品欧美一区二区三区麻豆| 精品成人佐山爱一区二区| 久久九九久精品国产免费直播| 久久久久久久网|