




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第六章匯編語言程序設計主講:胡文靜博士概述匯編語言源程序格式:助記符指令一般包含4個部分,其一般組成形式為:[標號][:]助記符[操作數(shù)][;注釋]書寫格式規(guī)則詳見P138,①②③④⑤⑥!標號—所有匯編指令和大多數(shù)匯編偽指令前面都可以帶有標號;必須從第一列開始書寫;最多32個字符;由字母、數(shù)字、下劃線和$組成,且不能以數(shù)字開頭;分大小寫;冒號不屬于標號名;沒有標號的源語句第一列必須為空格、星號或分號。助記符—不能從第一列開始,否則被認為是標號;指令助記符一般用大寫;匯編偽指令一般為小寫,且以“.”開頭。操作數(shù)—操作數(shù)列表,可以是常數(shù)、符號或常數(shù)與符號構成的表達式。操作數(shù)間需用“,”號隔開;三種前綴形式:#,*,@。10/2/20232數(shù)據(jù)類型舉例二進制10011000B,01111010b(最多16位)八進制226q,1001Q,0124(多達6位)十進制略十六進制0DH,123H,0X89,0x0D(多達4位)浮點數(shù)1.786e9(浮點數(shù)僅在C語言使用)字符常數(shù)‘a(chǎn)’,’b’…字符串“example”常數(shù)與字符串10/2/20233類型含義標號符號地址(可作為.global,.ref,.def的操作數(shù))局部標號$n,name?(臨時性的標號,.newblock,.sect,.text,.data,.include,.copy取消)符號常數(shù).set,.struct/.tag/.endstruct(提高可讀性)預定義符號常數(shù)$,寄存器符號,其他…替代符號符號替代變量,.asg“high”,AR2(可重新定義)標號10/2/20234舉例10/2/20235序號符號運算操作求值順序1+-~!取正、取負、按位求補、邏輯負從右至左2*/%乘法、除法、求模從左至右3+-加法、減法從左至右4^指數(shù)從左到右5<<>>左移、右移從左至右6<<=小于、小于等于從左至右7>>=大于、大于等于從左至右8!==不等于、等于從左至右9&按位與運算從左至右10∧
按位異或運算從左至右11|按位或運算從左至右匯編語言表達式10/2/20236有效定義表達式:10/2/20237有效定義表達式10/2/20238堆棧操作10/2/20239分類
指令
說明
無條件分支轉移
B[D]用該指令指定的地址加載PCBACC[D]用累加器的低16位指定的地址加載PC條件分支轉移
BC[D]若滿足指令給定條件,用該指令指定的地址加載PCBANG[D]若當前選擇輔助寄存器不等于0,用該指令指定的地址加載PC遠程分支轉移
FB[D]用該指令指定的地址加載PC和XPCFBACC[D]用累加器的低23位指定的地址加載PC和XPC控制程序10/2/202310分類指令說明無條件調用
CALL[D]將返回的地址壓入堆棧,并用該指令指定的地址加載PC
CALA[D]將返回的地址壓入堆棧,用累加器A或B指定的地址加載PC條件調用
CC[D]
如果滿足指令給定條件,將返回的地址壓入堆棧,并用該指令指定的地址加載PC遠程調用
FCALL[D]將XPC和PC壓入堆棧,并用該指令指定的地址加載PC和XPC
FCALA[D]將XPC和PC壓入堆棧,用累加器的低23位指定的地址加載PC和XPC分支操作10/2/202311分類
指令
說明
無條件返回
RET[D]將堆棧頂部的返回地址加載到PC。RETE[D]
將堆棧頂部的返回地址加載到PC,并使能可屏蔽中斷。RETF[D]
將RTN寄存器中的返回地址加載到PC,并使能可屏蔽中斷。條件返回
RC[D]如果滿足指令給定條件,將堆棧頂部的返回地址加載到PC。遠程返回
FCALL[D]將堆棧頂部的值彈出加載到XPC,將堆棧中下一個值彈出加載到PC。
FCALA[D]將堆棧頂部的值彈出加載到XPC,將堆棧中下一個值彈出加載到PC,并使能可屏蔽中斷。分支操作10/2/202312操作符號條件說明操作符號條件說明AEQA=0累加器A等于0AOVAOV=1累加器A溢出BEQB=0累加器B等于0BOVBOV=1累加器B溢出ANEQA0累加器A不等于0ANOVAOV=0累加器A不溢出BNEQB0累加器B不等于0BNOVBOV=0累加器B不溢出ALTA<0累加器A小于0CC=1ALU進位位置1BLTB<0累加器B小于0NCC=0ALU進位位置0ALEQA0累加器A小于等于0TCTC=1測試/控制標志位置1BLEQB0累加器B小于等于0NTCTC=0測試/控制標志位置0AGTA>0累加器A大于0BIOBIO低BIO信號電平為低BGTB>0累加器B大于0NBIOBIO高BIO信號電平為高AGEQA0累加器A大于等于0UNC無無條件操作BGEQB0累加器B大于等于0分支操作10/2/202313循環(huán)操作 .title "Ex534.asm" .mmregsstack .usect "STACK",10h .bss x,10 .bss y, 1table: .word 1,2,3,4,5,6,7,8,9,10 .def startstart: STM #0,SWWSR STM #stack+10h,SP CALL init STM #x,AR1 STM #9,AR2 LD #0, Aloop: ADD *AR1+,A BANZ loop,*AR2- STL A,@y B $init: STM #x,AR1 RPT #9 MVPD table,*AR1+ RET .end10/2/202314算術運算程序10/2/202315加法/減法指定堆??臻g為變量預留空間初值序列初始化變量設置堆棧指針利用MAC和RPT求乘累加和10/2/202316算術運算10/2/20231710/2/202318重復操作程序10/2/202319塊重復操作10/2/202320數(shù)據(jù)塊傳送程序10/2/202321數(shù)據(jù)塊傳送程序10/2/202322小數(shù)運算程序定點DSP的小數(shù)表示法基于2的補碼形式;數(shù)的定標有Q法和S法;C54X為16位:1位符號位,Q個小數(shù)位和15-Q個整數(shù)位。16位定點Q法和S法的表數(shù)范圍Q法S法表數(shù)范圍Q15S0.15-1≤x≤0.9999695Q14S1.14-2≤x≤1.9999390Q13S2.13-4≤x≤3.9998779Q12S3.12-8≤x≤7.9997559Q11S4.11-16≤x≤15.9995117Q10S5.10-32≤x≤31.9990124Q9S6.9-64≤x≤63.9980469Q8S7.8-128≤x≤127.9960938Q7S8.7-256≤x≤255.9921875Q6S9.6-512≤x≤511.984375Q5S10.5-1024≤x≤1023.96875Q4S11.4-2048≤x≤2047.9375Q3S12.3-4096≤x≤4095.875Q2S13.2-8192≤x≤8191.75Q1S14.1-16384≤x≤16383.5Q0S15.0-32768≤x≤3276710/2/202323小數(shù)運算程序定點DSP的小數(shù)表示法基于2的補碼形式;數(shù)的定標有Q法和S法;C54X為16位:1位符號位,Q個小數(shù)位和15-Q個整數(shù)位。十進制小數(shù)的2的補碼表示正數(shù):乘以32768;負數(shù):絕對值乘32768,再取反加1。0.5乘以327684000H-0.54000H乘以32768絕對值部分-18000H乘以32768絕對值部分C000H取反加18000H取反加110/2/202324小數(shù)乘法設字長為4位(累加器為8位),有如下小數(shù)乘法: 0.625×-0.12501011000×(0.625)(-0.125)0000000000001101(-0101)(-0.078125)乘積結果為7位,送入累加器;為保持乘積的符號不變,必須進行符號位擴展;因而,經(jīng)過符號擴展后累加器內容為8位:
11101000 (-0.1865)出現(xiàn)了冗余的符號位(兩個符號位)!怎么辦?ST1的FRCT小數(shù)方式控制位,可以控制乘積結果在送往累加器前是否自動左移1位!如FRCT=1,則可自動消去兩個符號位中冗余的一個。1符號位擴展FRCT=1時00.07812510/2/202325【例5.7.1】求,數(shù)據(jù)全為小數(shù)a1=0.3,a2=0.2,a3=-0.4,a4=0.1x1=0.6,x2=0.5,x3=-0.1,x4=-0.2分析存儲空間要求?采用何種指令?小數(shù)如何表示?冗余符號位的消去:需預留9個存儲單元;典型的乘-累加運算:MAC與RPT指令結合0.3=3*32768/10SSBX FRCT10/2/202326實現(xiàn)源代碼 .title
"Ex_571.asm" .mmregsstack .usect
"STACK",10H .bss
a,4 .bss
x,4 .bss
y,1 .def
start .datatable: .word
3*32768/10,2*32768/10,-4*32768/10,1*32768/10 .word
6*32768/10,5*32768/10,-1*32768/10,-2*32768/10 .textstart:
SSBX FRCT STM #a,AR1 RPT #7 MVPD table,*AR1+ STM #a,AR3 STM #x,AR4 RPTZ A,#3
MAC *AR3+,*AR4+,A
;只能最多用到AR5,教材代碼有誤
STH A,@ydone: B done .end10/2/202327浮點運算浮點數(shù)的表示包含尾數(shù)和指數(shù)兩部分如:定點數(shù)0x2000(0.25)用浮點數(shù)表示時,尾數(shù)為0x4000(0.5),指數(shù)為1,即0.5×2-1;尾數(shù)和指數(shù)都可正可負:尾數(shù)符號表示浮點數(shù)的正負,指數(shù)的符號表示浮點數(shù)的絕對值大小。定點數(shù)轉換成浮點數(shù)Step1:EXPAStep2:STT,EXPONENTStep3:NORMA定點數(shù)=尾數(shù)×2-指數(shù)10/2/202328浮點運算浮點數(shù)轉換為定點數(shù)將尾數(shù)按指數(shù)值進行左移(指數(shù)為負)或右移(指數(shù)為正)浮點運算舉例編寫浮點運算程序,完成x1*x2=0.4*(-0.9)。分析:首先確定需要分配的存儲單元確定需要用到的關鍵指令流程圖10/2/202329浮點運算實現(xiàn)代碼 .title
"Ex_581.asm" .mmregsstack .usect
"STACK",100H .bss
a,2 .bss
b,2 .bss
c,2 .bss
ep,1 .bss
mp,1 .bss
product,1 .bss
temp,1 .def
start .datatable: .word
4*32768/10,-9*32768/10 .textstart: STM #stack+100,SP MVPD table,@a MVPD table+1,@a+1 LD @a,16,A EXP A ST T,@b NORM A
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 焦耳電熔爐玻璃固化工藝控制系統(tǒng)設計及溫控算法研究
- 2025年度電子商務兼職聘用合同
- 2025年度柜臺顧客服務培訓合同
- 2025年度鋼結構工程防水保溫承包合同
- 2025年度科技創(chuàng)新園區(qū)出資建房協(xié)議
- 二零二五年度農(nóng)村土地轉包與農(nóng)業(yè)保險服務合同
- 二零二五年度美容美發(fā)店轉讓合同
- 二零二五年度民辦學校教職工團隊建設與協(xié)作協(xié)議
- 2025年度民房修建與裝配式建筑技術應用合同
- 二零二五年度建筑企業(yè)農(nóng)民工勞動合同社會保障配套協(xié)議
- 拼多多企業(yè)戰(zhàn)略分析報告
- 梁柱加固施工方案
- 孕婦枕行業(yè)深度研究報告
- 中考復習物理力學部分綜合試題(人教版含答案)
- 培訓資料預防混料培訓
- 《多元化之教學評量》課件
- 上海中考英語考綱詞匯
- 企業(yè)廉政教育培訓課件
- 電機制造工廠布局
- 三年級數(shù)學《搭配中的學問》 全國一等獎
- 2023初中七年級全體育教案(共36課)
評論
0/150
提交評論