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

正文內(nèi)容

dsp匯編語(yǔ)言程序設(shè)計(jì)(已修改)

2025-01-24 18:06 本頁(yè)面
 

【正文】 第 4章 DSP匯編語(yǔ)言程序設(shè)計(jì) TMS320C54x匯編語(yǔ)言的基本概念 TMS320C54x匯編語(yǔ)言程序設(shè)計(jì)的基本方法 TMS320C54x匯編語(yǔ)言程序的編輯、匯編與鏈接過(guò)程 匯編器 鏈接器 匯編程序舉例 1. 匯編語(yǔ)言源程序的句法格式 要點(diǎn) 以 .asm為擴(kuò)展名 每一行由 4個(gè)部分組成 格式 [標(biāo)號(hào) ][: ] 空格 [助記符 ] 空格 [操作數(shù) ] 空格 [;注釋 ] [ ]中的內(nèi)容為可選擇部分 供本程序的其它部分或其它程序調(diào)用。標(biāo)號(hào)是任選項(xiàng),標(biāo)號(hào)后面可以加也可以不加冒號(hào) “ : ” 。 TMS320C54x匯編語(yǔ)言的基本概念 要 點(diǎn) , 32個(gè)字符,可以是 A~ Z, a~ z, 0~ 9, _,以及 $,但標(biāo)號(hào)的第 1個(gè)字符不能是數(shù)字。 ,標(biāo)號(hào)的大小寫(xiě)必須一致。 SPC的值。 ,則第一個(gè)字母必須為空格、分號(hào) 或星號(hào)( *)。 要點(diǎn) 建議 [標(biāo)號(hào) ][: ] 空格 [助記符 ] 空格 [操作數(shù) ] 空格 [;注釋 ] 可以是助記符指令、匯編指令、宏指令和宏調(diào)用命令。 ,一般用大寫(xiě); ,以句號(hào) “ .” 開(kāi)始,且為通常用小寫(xiě)。 要點(diǎn) [標(biāo)號(hào) ][: ] 空格 [助記符 ] 空格 [操作數(shù) ] 空格 [;注釋 ] 編命令中定義的內(nèi)容 號(hào) “ , ” 分開(kāi)。 “ ; ” 開(kāi)始 , 也可以放在單獨(dú)的一行或數(shù)行。 要點(diǎn) 2. 匯編語(yǔ)言源程序的數(shù)據(jù)型式 二進(jìn)制:如 1110001b或 1111001B; 八進(jìn)制: 226q或 572Q; 十進(jìn)制: 1234或 +1234或 1234( 缺省型 ) 十六進(jìn)制: 0A40h或 0A40H或 0xA40 浮點(diǎn)數(shù): ( 僅 C語(yǔ)言程序中能用 , 匯編程序不能用 ) 字符: ‘ D’,每位字符由 8位 ASCII碼表示; 字符串: “ this is a string” 符號(hào)用作標(biāo)號(hào)、常數(shù)和替代符號(hào)。符號(hào)名可以是長(zhǎng)達(dá) 200個(gè)字符的字母 (A~ Z, a~ z)、數(shù)字 (0~ 9)加上 $或下劃線 (_)。第一個(gè)字符不能是數(shù)字,符號(hào)中間不能有空格。符號(hào)分大小寫(xiě),例如: Abc。 3.匯編語(yǔ)言源程序的符號(hào) 4. 表達(dá)式 1) 運(yùn)算順序 影響表達(dá)式運(yùn)算順序的三個(gè)主要因素是:圓括號(hào) 、優(yōu)先級(jí)和同級(jí)運(yùn)算順序 。 圓括號(hào)內(nèi)的表達(dá)式最先運(yùn)算 , 不能用 { }或 [ ]來(lái)代替 ( )。 TMS320C54x匯編器的優(yōu)先級(jí)使用與 C語(yǔ)言類(lèi)似 ,優(yōu)先級(jí)高的運(yùn)算先執(zhí)行 。 表 41給出了表達(dá)式中可用的運(yùn)算符及優(yōu)先級(jí) 。 表 41 表達(dá)式的運(yùn)算符及優(yōu)先級(jí) 符 號(hào) 操 作 計(jì)算順序 +、 ?、 ~ 取正 、 取負(fù) 、 按位求補(bǔ) 從右到左 *、 /、 % 乘 、 除 、 求模 從左到右 、 左移 、 右移 從左到右 +、 ? 加 、 減 從左到右 、 = 、 、 = 小于 、 小于等于 、 大于 、 大于等于 從左到右 !=、 = 不等于 、 等于 從左到右 amp。 按位與 從左到右 ^ 按位異或 從左到右 | 按位或 從左到右 2) 表達(dá)式的合法性 表達(dá)式在使用符號(hào)時(shí) , 匯編器對(duì)符號(hào)在表達(dá)式中的使用具有一些限制 , 由于符號(hào)的屬性不同 (即定義不同 ), 使表達(dá)式存在合法性問(wèn)題 。 符號(hào)按屬性可分為三種:外部符號(hào) 、 可重定位符號(hào)和絕對(duì)符號(hào) 。 外部符號(hào)是那些在一個(gè)模塊定義而被另一個(gè)模塊引用的符號(hào)。 (一般用 .global定義) 在匯編和執(zhí)行階段,符號(hào)值、符號(hào)地址不同的是可重定位符號(hào),相同的是絕對(duì)符號(hào)。 含有乘、除法的表達(dá)式中只能使用絕對(duì)符號(hào) (其值不能改變 )。表達(dá)式中不能使用未定義的符號(hào)。 表 42 表達(dá)式符號(hào)的合法性 若 A為 … 若 B為 … 則 A+B為 … 則 A?B為 … 絕對(duì) 絕對(duì) 絕對(duì) 絕對(duì) 絕對(duì) 外部 外部 非法 絕對(duì) 可重新定位 可重新定位 非法 可重新定位 絕對(duì) 可重新定位 可重新定位 可重新定位 可重新定位 非法 絕對(duì) 可重新定位 外部 非法 非法 外部 絕對(duì) 外部 外部 外部 可重新定位 非法 非法 外部 外部 非法 非法 TMS320C54x偽指令 TMS320C54x偽指令給程序提供數(shù)據(jù) 、 控制匯編過(guò)程 。 具體實(shí)現(xiàn)以下任務(wù): (1) 將數(shù)據(jù)和代碼匯編到特定的段 。 (2) 為未初始化的變量保留存儲(chǔ)空間 。 (3) 控制展開(kāi)列表的形式 。 (4) 存儲(chǔ)器初始化 。 (5) 匯編條件塊 。 (6) 定義全局變量 。 (7) 指定匯編器可以獲得宏的特定庫(kù) 。 (8) 檢查符號(hào)調(diào)試信息 。 表 43 常 用 偽 指 令 偽指令 句 法 作 用 title .title “string” 標(biāo)題名 。 例如: .title “” end .end 結(jié)束偽指令 , 放在匯編語(yǔ)言源程序的最后 text .text[段起點(diǎn) ] 包含可執(zhí)行程序代碼 data .data[段起點(diǎn) ] 包含初始化數(shù)據(jù) int .int value1[, … , valuen] 設(shè)置 16位無(wú)符號(hào)整型量 word .word value1[, … , valuen] 設(shè)置 16位帶符號(hào)整型量 bss .bss 符號(hào) , 字?jǐn)?shù) 為未初始化的變量保留存儲(chǔ)空間 sect .sect “段名 ” [, 段起點(diǎn) ] 建立包含代碼和數(shù)據(jù)的自定義段 usect 符號(hào) .usect “段名 ” , 字?jǐn)?shù) 為未初始化的變量保留存儲(chǔ)空間的自定義段 def .def 變量 1[, … , 變量 n] 在當(dāng)前模塊中定義 , 并可在別的模塊中使用 ref .ref 變量 1[, … , 變量 n] 在當(dāng)前模塊中使用 , 但在別的模塊中定義 global .global變量 1[, … , 變量 n] 可替代 ?.def和 ?.ref偽指令 mmregs .mmregs 定義存儲(chǔ)器映像寄存器的替代符號(hào) 1. 段定義偽指令 段定義偽指令有以下五個(gè): ● .bss(未初始化段 ) ● .data(已初始化段 ) ● .sect(已初始化段 ) ● .text(已初始化段 ) ● .usect(未初始化段 ) 1) 未初始化段 .bss和 .usect命令建立未初始化段。 .bss偽指令為未初始化變量在 .bss段中預(yù)留空間; .usect偽指令在一個(gè)未初始化的自定義段中預(yù)留空間。 .usect偽指令與 .bss類(lèi)似,但是它可以把預(yù)留空間與 .bss段分離。 這兩條命令的句法如下: .bss 符號(hào) , 字?jǐn)?shù) 符號(hào) .usect “段名 ” , 字?jǐn)?shù) 2) 已初始化段 .text 、 .data 和 .sect 命 令 建 立 已 初 始 化 段 。 這三條命令的句法如下: .text [段起點(diǎn) ] .data [段起點(diǎn) ] .sect 段名 ” [, 段起點(diǎn) ] .text后是匯編語(yǔ)言程序的正文 。 經(jīng)匯編后 , .text后的是可執(zhí)行程序代碼 , 一般存放于程序存儲(chǔ)器區(qū)域中 。 .data后是已初始化數(shù)據(jù) , 有 int和 word兩種數(shù)據(jù)形式 。 由命令文件可以將定義的數(shù)據(jù)存放于程序或數(shù)據(jù)存儲(chǔ)器中 。 .sect建立包含代碼和數(shù)據(jù)的自定義段,常用于定義中斷向量表。 2.常數(shù)初始化偽指令 (1) .bes和 .space。匯編器對(duì)這些保留的位填 0,將位數(shù)乘以 16來(lái)實(shí)現(xiàn)保留字。當(dāng)標(biāo)號(hào)與 .space連用時(shí),標(biāo)號(hào)指向保留位的第一個(gè)字;當(dāng)標(biāo)號(hào)與 .bes連用時(shí),標(biāo)號(hào)指向保留位的最后一個(gè)字。 (2) .field。 此指令可以把多個(gè)域打包成一個(gè)字 , 匯編器不會(huì)增加 SPC的值 , 直至填滿一個(gè)字 。 (3) .float和 .xfloat。 這兩個(gè)指令將 32位浮點(diǎn)數(shù)存放在當(dāng)前段的連續(xù)字中 , 高位字先存 。 .float偽指令能自動(dòng)按長(zhǎng)字 (偶地址 )邊界排列 , 但 .xfloat不能 。 (4) .long和 .xlong。 這兩個(gè)指令將 32位數(shù)存放在當(dāng)前段的連續(xù)字中 , 高位字先存 。 .long偽指令能自動(dòng)按長(zhǎng)字 (偶地址 )邊界排列 , 但 .xlong不能 。 (5) .string和 .pstring。 .string類(lèi)似于 .byte,把 8位字符放到當(dāng)前段的連續(xù)字中,每 8位字符占一個(gè)字。 (6) .int和 .word。 例如 “ table: .int 1, 2, 3, 4”,或例 “ table: .word 8, 6, 4, 2”。 3. 段程序計(jì)數(shù)器定位偽指令 段程序計(jì)數(shù)器定位偽指令的句法如下: .align [size in bits] 該指令使段程序計(jì)數(shù)器 SPC對(duì)準(zhǔn) 1~ 128字的邊界 ,保證該指令后面的代碼從一個(gè)字或頁(yè)的邊界開(kāi)始 。 不同的操作數(shù)代表了不同的含義: “ 1”表示讓 SPC對(duì)準(zhǔn)字邊界; “ 2”表示讓 SPC對(duì)準(zhǔn)長(zhǎng)字 /偶地址邊界; “ 128”表示讓 SPC對(duì)準(zhǔn)頁(yè)邊界 。 當(dāng) .align不帶操作數(shù)時(shí),其缺省值為 128,即對(duì)準(zhǔn)頁(yè)邊界。 4. 條件匯編偽指令 以下分兩種情況介紹條件匯編偽指令 。 (1) 第一種情況: .if welldefined expression .elseif welldefined expression .else .endif (2) 第二種情況: .loop [welldefined expression] .break [welldefined expression] .endloop TMS320C54x宏命令 TMS320C54x匯編器支持宏語(yǔ)言 。 宏命令是源程序中具有獨(dú)立功能的一段程序代碼 , 它可以根據(jù)用戶的需要 , 由用戶創(chuàng)建自己的指令 。 宏命令一經(jīng)定義 , 便可在以后的程序中多次調(diào)用 ,從而可以簡(jiǎn)化和縮短源程序 。 1
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1