freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

dsp匯編語言程序設計-文庫吧

2024-12-28 18:06 本頁面


【正文】 . 宏定義 宏命令可以在源程序的任何位置定義 , 但必須在宏調用之前先定義好 。 宏定義也可以嵌套 。 定義如下: 宏命令名 .macro 形式參數(shù) ; 宏體 ; .endm 2. 調用 宏命令定義好之后 , 就可以在源程序中將宏命令名作為指令來調用這個宏了 。 格式如下: 宏命令名 實際參數(shù) 3. 宏展開 當源程序中調用宏命令時 , 匯編時就將宏命令展開 。 在宏展開時 , 匯編器將實際參數(shù)傳遞給形式參數(shù) ,再用宏定義替代宏調用語句 , 并對其進行匯編 。 1 * 2 3 * add3 4 * 5 * ADDRP=P1+P2+P3 。說明宏功能 6 7 add3 .macro p1,p2,p3,ADDRP 。定義宏 8 9 LD p1,A 。將參數(shù) 1賦給 A 10 ADD p2,A 。將參數(shù) 2與 A相加 11 ADD p3,A 。將參數(shù) 3與 A相加 12 STL A,ADDRP 。將結果 A的低字存參數(shù) 4 13 .endm 。結束宏 14 15 16 .global abc,def,ghi,adr 。定義全局符號 17 18 000000 add3 abc,def,ghi,adr 。調用宏 1 1 000000 1000! LD abc,A 。宏展開 1 000001 0000! ADD def,A 1 000002 0000! ADD ghi,A 1 000003 8000! STL A,adr 例 42 宏定義、宏調用和宏展開的一個例子。 TMS320C54x匯編語言程序設計的 基本方法 DSP的軟件開發(fā)一般有以下幾種方式: (1) 直接編寫匯編語言源程序; (2) 編寫 C語言程序; (3) 混合編程 (既有 C代碼 , 又含匯編代碼 )。 TMS320C54x匯編語言源程序的完整結構 匯編語言源程序中 , 以 .asm為程序的擴展名 , 程序員用 “ 段 ” 偽指令來組織程序的結構 。 程序一般由數(shù)據(jù)段 、 堆棧段和代碼段組成 。 .data用于存放有初值的數(shù)據(jù)塊; .usect用于為堆棧保留一塊存儲空間; .text用于設置代碼段 。 另外 , .bss用于為變量保留一塊存儲空間; .sect常用于定義中斷向量表 。 程序的基本結構有四種:順序結構 、 分支結構 、循環(huán)結構和子程序結構 。 順序結構程序 順序結構是最基本 、 最簡單的程序結構形式 , 程序中的語句或結構被連續(xù)執(zhí)行 。 【 例 1】 試編制程序 , 求出下列公式中 z的值 。 z=(x+y) 8w 源程序編制如下: ************************************************ * z=(x+y)*8w * ************************************************ .title .mmregs STACK .usect STACK, 10H 。 開辟堆??臻g .bss x , 1 。 為變量分配 4個字的空間 .bss y , 1 .bss w , 1 .bss z , 1 .def start .data table: .word 6, 7, 9 .text start: STM 0 , SWWSR 。 零等待狀態(tài) STM STACK+10H, SP 。 設置堆棧指針 STM x, AR1 。 AR1指向 x RPT 2 。 從程序存儲器傳送 3個值至數(shù)據(jù)存儲器 MVPD table, *AR1+ LD @x, A ADD @y, A 。 A=x+y LD A, 3 。 A=(x+y)*8 SUB @w, A 。 A=(x+y)*8w STL A, @z end: B end .end 采用順序結構編程時應注意: ① 合理選取算法; ② 采用合適的尋址方式進行指令選??; ③ 存儲數(shù)據(jù)及結果時注意內存空間的分配和寄存器的使用。 分支結構程序 程序的分支主要是靠條件轉移指令來實現(xiàn)的。TMS320C54x具有豐富的程序控制與轉移指令,利用這些指令可以執(zhí)行分支轉移、循環(huán)控制以及子程序操作。分支轉移指令 (如 B、 BACC、 BC等 )通過改寫 PC,以改變程序的流向。分支結構也稱條件結構。 【 例 2】 試編制程序 , 求一個數(shù)的絕對值 , 并送回原處 。 源程序編制如下: ************************************************ * ABS of positive or negative * ************************************************ .title .mmregs STACK .usect STACK, 10H 。 開辟堆??臻g .bss x, 1 。 為變量分配一個字的空間 .def start .data table: .word 7 .text start: STM 0, SWWSR 。 零等待狀態(tài) STM STACK+10H, SP 。 設置堆棧指針 STM x, AR1 MVPD table, *AR1 LD *AR1, A BC end, AGT 。 若 A0, 則轉至 end, 否則往下執(zhí)行 ABS A STL A, @x end: B end .end 采用分支結構編程時應注意: ① 正確選擇條件運算符; ② 正確選擇相應指令; ③ 每個分支中要有完整的終結點; ④ 對于多分支程序,要檢查每個程序正確與否。 循環(huán)結構程序 循環(huán)結構程序設計主要用于某些需要重復進行的操作 , 它簡化程序 , 節(jié)約內存 。 循環(huán)結構程序的設計可分為設置循環(huán)初始狀態(tài) 、 循環(huán)體和循環(huán)控制條件三部分 。 ① 循環(huán)初始狀態(tài)主要是指設置循環(huán)次數(shù)的計數(shù)初值 , 以及其他為能使循環(huán)體正常工作而設置的初始狀態(tài)等 (比如緩沖區(qū)首地址 )。 ② 循環(huán)體是循環(huán)操作 (重復執(zhí)行 )部分 , 包括循環(huán)的工作部分及修改部分 。 循環(huán)的工作部分是實現(xiàn)程序功能的主要程序段;循環(huán)的修改部分是指當程序循環(huán)執(zhí)行時 , 對一些參數(shù) (如地址 、變量 )的有規(guī)律的修正 。 ③ 循環(huán)控制部分是循環(huán)程序設計的關鍵 。每個循環(huán)程序必須選擇一個控制循環(huán)程序運行和結束的條件 。 【 例 3】 試編制程序 , 在 4項乘積 aixi(i=1, 2, 3, 4)中找出最大值 , 并存放在累加器 A中 。 源程序編制如下: .title .mmregs STACK .usect STACK, 10H .bss a, 4 .bss x, 4 .def start .data table: .word 1, 2, 3, 4 .word 8, 6, 9, 7 .text start: STM 0, SWWSR STM STACK+10H, SP STM a, AR1 RPT 7 MVPD table, *AR1+ STM a, AR1 STM x, AR2 STM 2, AR3 LD *AR1+, T MPY *AR2+, A ;第一個乘積在累加器 A中 loop1: LD *AR1+, T MPY *AR2+, B ;其他乘積在累加器 B中 MAX A ;累加器 A和 B比較 , 選大的存在 A中 BANZ loop1, *AR3 ;此循環(huán)中共進行 3次乘法和比較 end: B end .end 子程序結構 子程序是一個獨立的程序段 , 具有確定的功能 ,可被其他程序調用 , 調用它的程序一般為主程序 。 子程序調用指令 (如: CALL、 CALA、 CC等 )將一個返回地址壓入堆棧 , 執(zhí)行返回指令 (如 RET、 RC等 )時復原 。子程序的定義的格式為 子程序名:
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1