DSP技術(shù)偽指令課件_第1頁(yè)
DSP技術(shù)偽指令課件_第2頁(yè)
DSP技術(shù)偽指令課件_第3頁(yè)
DSP技術(shù)偽指令課件_第4頁(yè)
DSP技術(shù)偽指令課件_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

2024年4月16日DSP原理及應(yīng)用1第4章匯編語(yǔ)言程序開(kāi)發(fā)工具4.4.3

匯編偽指令⑶

調(diào)整SPC的指令

如.align等。

對(duì)輸出列表文件格式化的命令

如.drlist、.drnolist等。

引用其他文件的命令

如copy、.def、.global、.include、.mlib、.ref等。

2024年4月16日DSP原理及應(yīng)用2第4章匯編語(yǔ)言程序開(kāi)發(fā)工具4.4.3

匯編偽指令⑹

控制條件匯編的命令

如.break、.else、.elseif、.endif、.endloop、.if、.loop等。

在匯編時(shí)定義符號(hào)的命令

如.asg、.endstruct、.equ、.eval、.label、.set、.sruct等。

⑻執(zhí)行其他功能的命令

如.algebraic、.emsg、.end、.mmregs、.mmsg、.newblock、.sblock、.version、.vmsg等。2024年4月16日DSP原理及應(yīng)用3第4章匯編語(yǔ)言程序開(kāi)發(fā)工具4.4.3

匯編偽指令1.定義段的偽指令

用于定義相應(yīng)的匯編語(yǔ)言程序的段。

助記符及語(yǔ)法格式

說(shuō)明

.bsssymbol,sizeinwords[,blocking][,alignment]

為未初始化的數(shù)據(jù)段.bss保留存儲(chǔ)空間。

.data

指定.data后面的代碼為數(shù)據(jù)段,通常包含初始化的數(shù)據(jù)。

.sect“sectionname”

定義初始化的命名段,可以包含可執(zhí)行代碼或數(shù)據(jù)。

.text

指定.text后面的代碼為文本段,通常包含可執(zhí)行的代碼。

symbol.usect“sectionname”,sizeinwords[,blocking][,alignmentflag]

為未初始化的命名段保留空間。類似.bss偽指令,但允許保留與.bss段不同的空間。

2024年4月16日DSP原理及應(yīng)用4第4章匯編語(yǔ)言程序開(kāi)發(fā)工具【例4.4.2】

段偽指令的使用。

1

************************************

2

*

開(kāi)始匯編到.text段*

3

************************************

4

000000

.text

5

000000

0001

.word1,2

000001

0002

6

000002

0003

.word3,4

000003

000471.定義段的偽指令

;定義文本段

;初始化值為1,2

;初始化值為3,42024年4月16日DSP原理及應(yīng)用5第4章匯編語(yǔ)言程序開(kāi)發(fā)工具【例4.4.2】

段偽指令的使用。

8

************************************

9

*

開(kāi)始匯編到.data段*

10

************************************

11

000000

.data

12

000000

0009

.word9,10

000001

000A

13

000002

000B

.word11,12

000003

000C141.定義段的偽指令

;定義數(shù)據(jù)段

;初始化值為9,10

;初始化值為11,122024年4月16日DSP原理及應(yīng)用6第4章匯編語(yǔ)言程序開(kāi)發(fā)工具【例4.4.2】

段偽指令的使用。

15

************************************

16

*

開(kāi)始匯編到命名的初始化段*

17

*

var_defs

*

18

************************************

19

000000

.sect“var_defs”

20

000000

0011

.word17,18

000001

0012

21

1.定義段的偽指令

;定義命名段

;初始化值為17,182024年4月16日DSP原理及應(yīng)用7第4章匯編語(yǔ)言程序開(kāi)發(fā)工具【例4.4.2】

段偽指令的使用。

22

************************************

23

*

再繼續(xù)匯編到.data段*

24************************************

25

000004

.data

26

000004

000D

.word13,14

000005

000E

27

000000

.bsssym,1928

000006

000F

.word15,16

000007

001029

1.定義段的偽指令

;繼續(xù)匯編數(shù)據(jù)段

;初始化值為13,14

;定義未初始化段,保留19個(gè)空間;仍然在.data段中;初始化值為15,162024年4月16日DSP原理及應(yīng)用8第4章匯編語(yǔ)言程序開(kāi)發(fā)工具【例4.4.2】

段偽指令的使用。

30

************************************

31

*

再繼續(xù)匯編到.text段*

32

************************************

33

000004

.text

34

000004

0005

.word5,6

000005

0006

35

000000

usym

.usect“xy”,2036

000006

0007

.word7,8

000007

0008

1.定義段的偽指令

;繼續(xù)匯編文本段

;初始化值為5,6

;定義xy段,保留20個(gè)空間

;仍然在.text段中

;初始化值為7,82024年4月16日DSP原理及應(yīng)用9第4章匯編語(yǔ)言程序開(kāi)發(fā)工具【例4.4.2】

段偽指令的使用。

.text初始化值為1,2,3,4,5,6,7,8的字;

.data初始化值為9,10,11,12,13,14,15,16的字;

var_defs初始化值為17,18的字;

.bss保留19個(gè)字的空間;

.usect保留20個(gè)字的空間。1.定義段的偽指令

.bss和.usect偽指令既不結(jié)束當(dāng)前的段也不開(kāi)始新段,它們保留指定數(shù)量的空間,然后匯編器開(kāi)始將代碼或數(shù)據(jù)匯編進(jìn)當(dāng)前的段。

2024年4月16日DSP原理及應(yīng)用10第4章匯編語(yǔ)言程序開(kāi)發(fā)工具4.4.3

匯編偽指令2.初始化常數(shù)的偽指令

用于為當(dāng)前的段匯編常數(shù)值。助記符及語(yǔ)法格式

說(shuō)明

.bytevalue[,…,value]

初始化當(dāng)前段里的一個(gè)或多個(gè)連續(xù)字。每個(gè)值的寬度被限制為8位。即把8位的值放入當(dāng)前段的連續(xù)字。

.charvalue[,…,value]

初始化當(dāng)前段里的一個(gè)或多個(gè)連續(xù)字。每個(gè)值的寬度被限制為8位。即把8位的值放入當(dāng)前段的連續(xù)字。

.fieldvalue[,sizeinbits]

初始化一個(gè)可變長(zhǎng)度的域。將單個(gè)值放入當(dāng)前字的指定位域中。

.floatvalue[,…,value]

初始化一個(gè)或多個(gè)IEEE的單精度(32位)浮點(diǎn)數(shù),即計(jì)算浮點(diǎn)數(shù)的單精度(32位)IEEE浮

.xfloatvalue[,…,value]

初始化一個(gè)或多個(gè)IEEE的單精度(32位)浮點(diǎn)數(shù),即計(jì)算浮點(diǎn)數(shù)的單精度(32位)IEEE浮點(diǎn)表示,并將它保存在當(dāng)前段的兩個(gè)連續(xù)的字中。不自動(dòng)對(duì)準(zhǔn)最接近的長(zhǎng)字邊界。

2024年4月16日DSP原理及應(yīng)用11第4章匯編語(yǔ)言程序開(kāi)發(fā)工具2.初始化常數(shù)的偽指令助記符及語(yǔ)法格式

說(shuō)明

.intvalue[,…,value]

初始化一個(gè)或多個(gè)16位整數(shù)。即把16位的值放到當(dāng)前段的連續(xù)的字中。

.shortvalue[,…,value]初始化一個(gè)或多個(gè)16位整數(shù)。即把16位的值放到當(dāng)前段的連續(xù)的字中。

.wordvalue[,…,value]

初始化一個(gè)或多個(gè)16位整數(shù)。即把16位的值放到當(dāng)前段的連續(xù)的字中。

.doublevalue[,…,value]

初始化一個(gè)或多個(gè)雙精度(64位)浮點(diǎn)數(shù)。即計(jì)算浮點(diǎn)數(shù)的單精度(32位)

浮點(diǎn)表示,并將它存儲(chǔ)在當(dāng)前段的2個(gè)連續(xù)的字中。該偽指令自動(dòng)對(duì)準(zhǔn)長(zhǎng)字邊界。

.longvalue[,…,value]初始化一個(gè)或多個(gè)32位整數(shù)。即把32位的值放到當(dāng)前段的2個(gè)連續(xù)的字中。

.string“string[,…,“string”]”

初始化一個(gè)或多個(gè)字符串。把8位字符從一個(gè)或多個(gè)字符串放進(jìn)當(dāng)前段。

2024年4月16日DSP原理及應(yīng)用12第4章匯編語(yǔ)言程序開(kāi)發(fā)工具【例4.4.3】比較.byte,.int,.long,.xlong,.float,.xfloat,.word和.string偽指令。

源程序:

.byte

0AAh,0BBh

.word

0CCCh

.xlong

0EEEEFFFh

.long

0EEEEFFFFh

.int

0DDDDh

.xfloat

1.99999

.float

1.99999

.string

“help”

.byte:將一個(gè)或多個(gè)8位值放入當(dāng)前段的連續(xù)字中。word15

01500,100AA

00BB

.word:將一個(gè)或多個(gè)16位值放入當(dāng)前段的連續(xù)字中。20CCC

.xlong:將32位值放入當(dāng)前段的2個(gè)連續(xù)的字中,先存最高有效位。3,40EEE

EFFF

.long:將32位值放入當(dāng)前段的2個(gè)連續(xù)的字中,先存最高有效位。6,7

EEEE

FFFF

.int:將一個(gè)或多個(gè)16位值放入當(dāng)前段的連續(xù)的字中。8

DDDD

.xfloat:初始化單精度(32位)浮點(diǎn)數(shù),并保存在當(dāng)前段的兩個(gè)連續(xù)的字中。9,A3FFF

FFAC

.float:初始化單精度(32位)浮點(diǎn)數(shù),并保存在當(dāng)前段的兩個(gè)連續(xù)的字中。C,D3FFF

FFAC

.string:將一個(gè)或多個(gè)字符串中的8位字符放入當(dāng)前段中。heE,F0068

0065lp10,11006C

00702024年4月16日DSP原理及應(yīng)用13第4章匯編語(yǔ)言程序開(kāi)發(fā)工具列表文件:1000000

00aa

.byte0AAh,0BBh

000001

00bb2000002

0ccc

.word0CCCh3000003

0eee

.xlong0EEEEFFFh

000004

efff4000006

eeee

.long0EEEEFFFFh

000007

ffff5000008

dddd

.int0DDDDh6000009

3fff

.xfloat1.99999

00000a

ffac700000c

3fff

.float1.99999

00000d

ffac800000e

0068

.string“help”

00000f

0065

000010

006c

000011

0070

.long:自動(dòng)對(duì)準(zhǔn)最近長(zhǎng)字邊界

.xlong:不自動(dòng)對(duì)準(zhǔn)長(zhǎng)字邊界.float:自動(dòng)對(duì)準(zhǔn)最近長(zhǎng)字邊界

.xfloat:不自動(dòng)對(duì)準(zhǔn)長(zhǎng)字邊界2024年4月16日DSP原理及應(yīng)用14第4章匯編語(yǔ)言程序開(kāi)發(fā)工具2.初始化常數(shù)的偽指令.field偽指令:

功能:將單個(gè)數(shù)值放進(jìn)當(dāng)前字的指定位域中。

采用.field偽指令,可以將多個(gè)字段或域打包成單個(gè)字,直到字被填滿為止,匯編器不增加SPC。

指令格式:.

field

value

[,sizeinbits]

單個(gè)數(shù)值當(dāng)前字的指定位域2024年4月16日DSP原理及應(yīng)用15第4章匯編語(yǔ)言程序開(kāi)發(fā)工具2.初始化常數(shù)的偽指令

.field偽指令的使用。

源程序:

.field5,3.field9,6.field16,5.field01234h,20

.field01234h,32

.field5,3

.field9,6

.field16,5

.field01234h,20

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

01

0

11

0

10

0

1

0

0

10

0

1

0

0

11

0

0

0

01

0

0

0

0

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

000000001001000110100

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

00123h00000001001000110

0

0

0

0

0

0

1

0

0

1

0

0

0

1

14h01000

1

0

0

.field01234h,320

0

0

0

0

0

0

1

0

0

1

0

0

0

1

1

0

1

0

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論