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

正文內(nèi)容

匯編語言程序設(shè)計dsp技術(shù)與應(yīng)用實例第3版(已修改)

2025-01-18 17:12 本頁面
 

【正文】 第 6章 匯編語言程序設(shè)計 程序的控制與轉(zhuǎn)移 TMS320C54x具有豐富的程序控制與轉(zhuǎn)移指令,利用這些指令可以執(zhí)行分支轉(zhuǎn)移、循環(huán)控制及子程序操作。基本的程序控制指令如表 61所示。 表 61 基本的程序控制指令 分支轉(zhuǎn)移指令 執(zhí)行周期 子程序調(diào)用指令 執(zhí)行周期 子程序返回指令 執(zhí)行周期 B next 4 BACC src 6 BC next ,cond 5/3 CALL sub 4 CALA src 6 CC sub , cond 5/3 RET 5 RC cond 5/3 1. 條件算符 條件分支轉(zhuǎn)移指令或條件調(diào)用、條件返回指令都用條件來限制分支的轉(zhuǎn)移、調(diào)用和返回操作。條件算符分成兩組,每組組內(nèi)還有分類。 第 1組: EQ NEQ LEQ GEQ LT GT OV NOV 第 2組: TC NTC C NC BIO NBIO 選用條件算符時應(yīng)當(dāng)注意以下 3點 : ?第 1組:組內(nèi)兩類條件可以進(jìn)行與 /或運算,但不能在組內(nèi)同一類中選擇兩個條件算符與 /或。當(dāng)選擇兩個條件時,累加器必須是同一個。例如,可以同時選擇 AGT和 AOV,但不能同時選擇 AGT和 BOV。 ?第 2組:可從組內(nèi) 3類算符中各選一個條件算符與 /或,但不能在組內(nèi)同一類中選兩個條件算符與 /或。例如,可以同時測試 TC、 C和 BIO,但不能同時測試 NTC和 TC。 ?組與組之間的條件只能進(jìn)行或運算。 2. 循環(huán)操作 BANZ 在程序設(shè)計時,經(jīng)常需要重復(fù)執(zhí)行某段程序,利用BANZ(當(dāng)輔助寄存器不為 0時轉(zhuǎn)移)指令執(zhí)行循環(huán)計數(shù)和操作是十分方便的。 SUM: STM x,AR3 STM 4,AR2 loop: ADD *AR3+,A 。程序存儲器 BANZ loop,*AR2 STL A,@y 3. 比較操作 CMPR 編程時,經(jīng)常需要數(shù)據(jù)與數(shù)據(jù)進(jìn)行比較,這時利用比較指令 CMPR是很合適的。 CMPR指令測試所規(guī)定的 AR寄存器( AR1~ AR7)與 AR0的比較結(jié)果。如果所給定的測試條件成立,則 TC位置 1,然后,條件分支轉(zhuǎn)移指令就可根據(jù) TC位的狀態(tài)進(jìn)行分支轉(zhuǎn)移了。注意,所有比較的數(shù)據(jù)都是無符號操作數(shù)。 STM 5,AR1 STM 10,AR0 loop: ... ... *AR1+ ... ... CMPR LT,AR1 BC loop,TC 堆棧的使用方法 TMS320C54x提供一個用 16位堆棧指針( SP)尋址的軟件堆棧。當(dāng)向堆棧中壓入數(shù)據(jù)時,堆棧從高地址向低地址增長。堆棧指針是減在前、加在后,即先 SP?1再壓入數(shù)據(jù),先彈出數(shù)據(jù)后 SP+1。 如果程序中要用到堆棧,則必須先進(jìn)行設(shè)置,方法如下: size .set 100 stack .usect STK, size STM stack+size, SP 上述語句在數(shù)據(jù) RAM空間開辟一個堆棧區(qū)。前兩句在數(shù)據(jù) RAM中自定義一個名為 STK的保留空間,共 100個單元。第3句將這個保留空間的高地址( stack+size)賦給 SP,作為棧底,參見圖 61。至于自定義未初始化段 STK 究竟定位在數(shù)據(jù)RAM中的什么位置,應(yīng)當(dāng)在鏈接器命令文件中規(guī)定。 數(shù)據(jù)存儲器 0 STK 堆棧的設(shè)置 size . set 100 stack . usect STK, size STM stack+size, SP 堆棧的用法 壓入操作: SP先減 1后,再將數(shù)據(jù)壓入堆棧中 彈出操作:數(shù)據(jù)彈出后,再將 SP加 1 … stack 可用棧區(qū) SP→ 最后用的單元 已用棧區(qū) 65535 … 圖 61 堆棧 設(shè)置堆棧之后,就可以使用堆棧了,例如: CALL pmad ; (SP)1→SP , (PC)+2→TOS ; pmad→PC RET ; (TOS) →PC , (SP)+l→SP 堆棧區(qū)應(yīng)開辟多大?這需要按照以下步驟來確定 : ① 先開辟一個大堆棧區(qū),且用已知數(shù)填充。 ② 運行程序,執(zhí)行所有的操作。 ③ 暫停,檢查堆棧中的數(shù)值如下圖。 ④ 用過的堆棧區(qū)才是實際需要的堆??臻g。 【 例 64】 計算 z=x+y?w。 SUMB: LD @x,A ADD @y,A SUB @w,A STL A,@z RET .end 計算結(jié)果:數(shù)據(jù)寄存器地址 存儲內(nèi)容 十進(jìn)制數(shù) x 0060H 000AH 10 y 0061H 001AH 26 w 0062H 0017H 23 z 0063H 000DH 13 加減法運算和乘法運算 【 例 65】 計算 y=mx+b。 SU: LD @m,T MPY @x,A ADD @b,A STL A,@y RET .end 計算結(jié)果:數(shù)據(jù)寄存器地址 存儲內(nèi)容 十進(jìn)制數(shù) m 0060H 0003H 3 x 0061H 000FH 15 b 0062H 0014H 20 y 0063H
點擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1