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

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

?? 程序之間的調(diào)用.txt

?? 下面所陳述的程序之間的調(diào)用是基于TigerSharc101處理器
?? TXT
字號:
* 下面所陳述的程序之間的調(diào)用是基于TigerSharc101處理器,在VisualDSP++3.0上調(diào)試通過驗證。
* VDSP上編程可以使用標準C語言,也可以使用匯編語言。所以,程序之間的調(diào)用共分為4種:
*         C語言調(diào)用C語言子程序
*         C語言調(diào)用匯編語言子程序
*         匯編語言調(diào)用匯編語言子程序
*         匯編語言調(diào)用C語言子程序
* 下面詳細說明4中調(diào)用方法
* 一:C語言調(diào)用C語言子程序
*         這種調(diào)用方法最簡單,和標準C語言調(diào)用一樣。聲明函數(shù)之后便可以調(diào)用
*         例程:Func調(diào)用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語言調(diào)用匯編語言子程序
*         這種調(diào)用方法最常用。首先要在C語言程序中用extern聲明匯編子函數(shù),在匯編子函數(shù)中要用
*         .global _SunAsmFunc;,這樣便可以調(diào)用匯編子程序了
*         2.1 聲明:
*                 C語言中聲明用        extern void SubAsmFunc(int *BuffAddr, int N);
*                 匯編語言中聲明       .global _SubAsmFunc;
*         2.2 參數(shù)傳遞
*                 C語言的參數(shù)傳遞到匯編語言中,
*                 地址和整數(shù)依次分別用j4, j5, j6, j7傳遞
*                 浮點數(shù)依次分別用xr4,xr5, xr6, xr7 傳遞
*                 匯編函數(shù)的返回值:
*                                 浮點值放在xr8中
*                                 整型值放在j8中
*                 多于4個參數(shù)的傳遞則要借助堆棧傳遞數(shù)據(jù)。
*         2.3 例程:
*                 C語言函數(shù):
*                 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存放浮點數(shù)x
*                         //j6存放N
*                         //j8返回值存放地址,如果是浮點數(shù)則放在xr8中
*                 _SunAsmFunc.end
*                 .align_code 4;
*                 cjmp(np)(abs);nop;nop;nop;;
* 
* 三: 匯編程序調(diào)用匯編子程序
*         匯編程序調(diào)用匯編子程序時,首先要進行堆棧保護,每進一層子函數(shù)都要進行堆棧保護
*         在實模式下,堆棧保護使用j26,j27, k26,k27寄存器,編程時不要使用j27:24, 和k27:24
*         寄存器,另外j31和k31寄存器也不可以使用,如果要使用必須把這些寄存器的值做保護。
*         3.1 函數(shù)調(diào)用聲明  
*                 匯編主程序中聲明:        .extern _SubAsmFunc;
*                 匯編子程序中聲明:        .global _SubAsmFunc;
*         3.2 參數(shù)傳遞
*                 參數(shù)傳遞遵循C語言調(diào)用匯編語言規(guī)則,但是要在匯編主程序中手動給寄存器賦值
*         3.3 堆棧保護
*                 進入一個子程序就要進行堆棧保護,堆棧保護一般定義一個宏來實現(xiàn),在例程中會
*                 詳細介紹如何進行堆棧保護。
*         3.4 例程
*                 匯編語言調(diào)用匯編語言例程,此例程具有通用性,可多層調(diào)用,例如可以用C語言調(diào)用
*                 匯編主程序,再用匯編主程序調(diào)用匯編子程序,然后再逐層返回。
*                 匯編語言主程序
*                 #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;;
*                         //匯編主程序接收參數(shù)傳遞
*                         ..........
*                         ..........
*                         //匯編主程序調(diào)用匯編子程序
*                         .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;;
*                         //參數(shù)傳遞
*                         ..........
*                         mRETURN;;
*                 _SubAsmFunc.end:
* 
* 四:匯編程序調(diào)用C語言子程序
*         匯編程序調(diào)用C語言子程序前要把必要的積存器進行保護,經(jīng)常保護的寄存器為
*         j27:24, k27:24,
*         j7:j4, xr7:xr4(如果在繼續(xù)運行的匯編語言程序中不再使用此寄存器則可以不理會它)
*         匯編語言調(diào)用C語言子程序有兩種形式
*         4.1 匯編語言調(diào)用自定義C語言子程序
*                 4.1.1 聲明
*                         匯編語言主程序聲明: .extern _SubCFunc;
*                         C語言子程序聲明:    可以聲明,也可以不聲明,如果有別的C程序調(diào)用此函數(shù)
*                                             則在別的函數(shù)中聲明即可
*                 4.1.2 參數(shù)傳遞
*                         參數(shù)傳遞規(guī)則同 C語言調(diào)用匯編子程序
*                         j4,j5,j6,j7傳遞整型參數(shù)
*                         xr4,xr5,xr6,xr7傳遞浮點參數(shù)
*                         j8返回整型值,
*                         xr8返回浮點值
*                 4.1.3 堆棧保護
*                         調(diào)用子程序前要先保護 j27:24和k27:24
*         4.2 匯編語言調(diào)用VDSP庫函數(shù)子程序
*                 4.2.1 聲明                    
*                           匯編語言主程序聲明: .extern __cosf; //庫函數(shù)一般用雙下劃線                                      C語言主控程序中要包含 math.h頭文件
*                 4.2.2 參數(shù)傳遞
*                           參數(shù)傳遞同上
*         4.3 例程
*         匯編語言調(diào)用自定義C語言子程序和庫函數(shù)例程
* 
*         主控程序及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語言子程序,實現(xiàn)加法
* 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;;
*         //接收參數(shù)并處理
*         ................
*         //給調(diào)用SubCFunc準備參數(shù)
*         //xr4 = a;;
*         //xr5 = b;;
*         //j6 = N;;
*         .align_code 4;
*         if true, call _SubCFunc; q[j27+4] = j27:24; q[k27+4] = k27:24;;
*         //接收返回值 保存j8
* 
*         //給調(diào)用cosf準備參數(shù)
*         //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一区二区三区免费野_久草精品视频
成人永久aaa| 精品盗摄一区二区三区| 99视频有精品| 国产不卡视频一区二区三区| 黄页视频在线91| 国产美女视频一区| 国产99久久久久| 成人国产精品免费观看视频| 成人黄色777网| 91麻豆国产在线观看| 色欧美片视频在线观看在线视频| 在线视频中文字幕一区二区| 欧美四级电影在线观看| 在线不卡一区二区| 欧美成人一区二区三区在线观看| 精品久久久久久综合日本欧美| 久久综合九色综合久久久精品综合| 久久女同精品一区二区| 国产精品夫妻自拍| 亚洲老妇xxxxxx| 日韩高清不卡一区二区三区| 麻豆一区二区99久久久久| 国产盗摄精品一区二区三区在线| 丁香五精品蜜臀久久久久99网站| 99久久久久免费精品国产| 在线观看日韩毛片| 欧美一区二区三区四区高清 | 国产精品进线69影院| 亚洲视频一区在线| 五月激情综合色| 国产在线精品一区二区不卡了| 成人免费观看视频| 欧美人伦禁忌dvd放荡欲情| 欧美电影免费观看高清完整版| 欧美韩日一区二区三区| 亚洲成人一区在线| 激情久久五月天| 日本久久一区二区| 日韩欧美一二三| 亚洲天堂2014| 久久超级碰视频| 99re6这里只有精品视频在线观看| 欧美无人高清视频在线观看| 精品少妇一区二区三区视频免付费| 国产精品乱码久久久久久| 五月综合激情婷婷六月色窝| 国产精选一区二区三区| 欧美系列在线观看| 国产欧美一区二区精品仙草咪 | 成人精品免费看| 91黄色小视频| 精品国产一区二区三区久久久蜜月| 国产精品人人做人人爽人人添| 亚洲国产精品久久一线不卡| 国产ts人妖一区二区| 欧美乱妇一区二区三区不卡视频 | 国产精品一卡二卡在线观看| 91免费在线看| 久久婷婷综合激情| 亚洲国产aⅴ天堂久久| 成人免费视频国产在线观看| 91精品国产手机| 亚洲免费观看视频| 国内国产精品久久| 欧美精品粉嫩高潮一区二区| 亚洲欧美电影一区二区| 国产成人精品1024| 91精品国产高清一区二区三区| 成人免费小视频| 国产麻豆欧美日韩一区| 欧美精品久久久久久久多人混战 | 岛国av在线一区| 7777女厕盗摄久久久| 亚洲天堂网中文字| 国产成人日日夜夜| 欧美刺激午夜性久久久久久久| 亚洲制服丝袜在线| 色综合视频在线观看| 中文一区二区完整视频在线观看 | 欧美剧在线免费观看网站| 国产精品久久久爽爽爽麻豆色哟哟| 蜜臀av性久久久久蜜臀av麻豆 | 精品国产伦一区二区三区观看体验 | 91精品在线观看入口| 亚洲精品一二三| 波多野结衣亚洲| 国产日本欧美一区二区| 国产精品白丝av| 久久久精品国产免费观看同学| 蜜臀va亚洲va欧美va天堂| 欧美精选在线播放| 天堂蜜桃91精品| 欧美精品久久一区| 日韩av一级电影| 欧美一级一级性生活免费录像| 亚洲成人777| 欧美日本韩国一区二区三区视频| 亚洲午夜成aⅴ人片| 欧美亚洲国产怡红院影院| 亚洲免费观看高清完整版在线观看熊 | 一区二区欧美在线观看| 日本丶国产丶欧美色综合| 一区二区视频免费在线观看| 色综合天天综合给合国产| 亚洲色图欧洲色图| 在线一区二区三区做爰视频网站| 亚洲日本va午夜在线电影| 99久久精品免费看国产| 亚洲视频一区二区在线| 日本韩国精品一区二区在线观看| 亚洲免费资源在线播放| 在线观看亚洲精品视频| 午夜精品久久久久久久久久| 欧美老年两性高潮| 久久99在线观看| 久久久99精品免费观看| av一区二区三区在线| 一区二区三区资源| 欧洲在线/亚洲| 日韩高清在线观看| www一区二区| www.亚洲在线| 亚洲h动漫在线| 欧美α欧美αv大片| 国产乱理伦片在线观看夜一区| 国产精品三级电影| 色欧美片视频在线观看在线视频| 午夜视频在线观看一区二区三区| 日韩一区二区在线观看| 大白屁股一区二区视频| 一区二区三区视频在线看| 日韩一区二区在线免费观看| 国产成人综合在线播放| 亚洲精品国产成人久久av盗摄| 欧美日韩二区三区| 国产乱码精品一区二区三区五月婷| 国产精品麻豆欧美日韩ww| 欧美日韩一卡二卡| 国产一区在线观看麻豆| 亚洲人成亚洲人成在线观看图片 | 欧美成人福利视频| 在线综合+亚洲+欧美中文字幕| 国产在线日韩欧美| 亚洲精品视频在线观看免费| 56国语精品自产拍在线观看| 成人午夜伦理影院| 日日夜夜精品免费视频| 国产精品嫩草影院av蜜臀| 欧美军同video69gay| 国产999精品久久久久久| 一二三区精品福利视频| 久久久国产午夜精品| 欧美亚洲国产一区二区三区va| 紧缚奴在线一区二区三区| 一区二区三区资源| 久久久国产精品麻豆| 欧美日韩一区二区三区四区五区| 国产精品一区2区| 天天色综合天天| 国产精品人成在线观看免费| 在线不卡a资源高清| 波波电影院一区二区三区| 美女视频免费一区| 亚洲欧美欧美一区二区三区| 欧美哺乳videos| 91久久线看在观草草青青| 国产精品性做久久久久久| 丝袜美腿亚洲一区二区图片| 中文字幕中文字幕一区二区| 日韩免费一区二区| 欧美专区在线观看一区| 成人av手机在线观看| 国内精品视频一区二区三区八戒| 亚洲电影在线播放| 亚洲人吸女人奶水| 国产亚洲精品资源在线26u| 91精品国产综合久久精品麻豆| 91丝袜呻吟高潮美腿白嫩在线观看| 国产一区二区三区高清播放| 男女男精品视频网| 亚洲一级在线观看| 日韩码欧中文字| 国产精品欧美一区二区三区| 日韩精品专区在线| 9191成人精品久久| 在线免费观看日韩欧美| 成人va在线观看| 国产成人午夜片在线观看高清观看| 美腿丝袜亚洲色图| 日韩不卡一区二区三区| 午夜伊人狠狠久久| 一区二区免费视频| 亚洲精品自拍动漫在线| 综合久久给合久久狠狠狠97色| 国产视频一区二区三区在线观看| 日韩精品影音先锋| 精品理论电影在线| 精品国产一区二区三区忘忧草| 日韩一区二区精品在线观看| 日韩一级片在线观看|