




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第3章 SPCE061A指令系統(tǒng) 第3章 SPCE061A指令系統(tǒng) 3.1 概述概述 3.2 數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令 3.3 算術(shù)運算指令算術(shù)運算指令 3.4 邏輯運算指令邏輯運算指令3.5 控制轉(zhuǎn)移類指令控制轉(zhuǎn)移類指令 3.6 常用偽指令常用偽指令 思索題思索題 第3章 SPCE061A指令系統(tǒng) 3.1 概概 述述 3.1.1 指令分類指令分類 以以nSP為內(nèi)核的單片機(jī)系列指令集按功能可劃分為:為內(nèi)核的單片機(jī)系列指令集按功能可劃分為: (1) 數(shù)據(jù)傳送指令:立刻數(shù)到存放器、存放器到存放器、存數(shù)據(jù)傳送指令:立刻數(shù)到存放器、存放器到存放器、存放器到存儲器、存儲器到存放器的數(shù)據(jù)傳送操作。放器到存
2、儲器、存儲器到存放器的數(shù)據(jù)傳送操作。 (2) 算術(shù)運算指令:加、減、乘等運算。算術(shù)運算指令:加、減、乘等運算。 (3) 邏輯運算指令:與、或、異或、測試、移位等操作。邏輯運算指令:與、或、異或、測試、移位等操作。 (4) 轉(zhuǎn)移指令:條件轉(zhuǎn)移、無條件轉(zhuǎn)移、中斷前往、子程序轉(zhuǎn)移指令:條件轉(zhuǎn)移、無條件轉(zhuǎn)移、中斷前往、子程序調(diào)用等操作。調(diào)用等操作。 (5) 控制指令:如開中斷、關(guān)中斷、有限沖擊呼應(yīng)控制指令:如開中斷、關(guān)中斷、有限沖擊呼應(yīng)FIR(Finite Impluse Response)濾波器的數(shù)據(jù)自在挪動等操作。濾波器的數(shù)據(jù)自在挪動等操作。 第3章 SPCE061A指令系統(tǒng) 3.1.2 尋址方式
3、尋址方式 尋址方式主要有以下幾種:尋址方式主要有以下幾種: (1) 立刻尋址:操作數(shù)以立刻數(shù)的方式出現(xiàn)。立刻尋址:操作數(shù)以立刻數(shù)的方式出現(xiàn)。 例如,例如,R1 = 0 x1234是把十六進(jìn)制數(shù)是把十六進(jìn)制數(shù)0 x1234賦給存放器賦給存放器R1。 (2) 直接尋址:經(jīng)過存儲器地址來訪問存儲器中的數(shù)據(jù)。直接尋址:經(jīng)過存儲器地址來訪問存儲器中的數(shù)據(jù)。 例如,例如,R1 =0 x2222 將將0 x2222單元的數(shù)據(jù)傳送到存放器單元的數(shù)據(jù)傳送到存放器R1。 (3) 存放器尋址:操作數(shù)在存放器中。存放器尋址:操作數(shù)在存放器中。 例如,例如,R1 = R2 是把存放器是把存放器R2中的數(shù)據(jù)賦給存放器中的
4、數(shù)據(jù)賦給存放器R1。 第3章 SPCE061A指令系統(tǒng) (4) 存放器間接尋址:存放器中存儲的是操作數(shù)的地址。 例如,R1 = BP 是把由BP指向的內(nèi)存單元的數(shù)據(jù)傳送到存放器R1。 (5) 變址尋址:操作數(shù)的地址由基址和偏移量共同提供。 例如,R1 = BP+0 x34,BP為基址,0 x34為偏移量,兩者共同確定操作數(shù)存放的地址。 第3章 SPCE061A指令系統(tǒng) 表表3.1 符符 號號 約約 定定 符號 功能說明 R1,R2,R3,R4,R5(BP) 通用寄存器 PC 程序計數(shù)器 CS,DS 段寄存器中的代碼段選擇字段和數(shù)據(jù)段選擇字段 NZSC 寄存器中的四個標(biāo)志位 SR 段寄存器 IM
5、6 6 位立即數(shù) IM16 16 位立即數(shù) A6 6 位地址碼 A16 16 位地址碼 Rd 目的(destination)寄存器或存儲器指針 Rs 源寄存器或存儲器指針 數(shù)據(jù)傳送符號 第3章 SPCE061A指令系統(tǒng) MR 由 R4 和 R3 組成的 32 位結(jié)果寄存器,R4 為高 16 位,R3 為低 16 位 &, |, 邏輯與、邏輯或、邏輯異或符號 可選項 寄存器間接尋址標(biāo)志 +, - - 指針單位字增量,字減量 ss,us 兩個有符號數(shù)之間的操作,無符號數(shù)與有符號數(shù)之間的操作 Label 程序標(biāo)號 FIR Finite Impulse Response(有限沖擊響應(yīng)),數(shù)字信
6、號處理中的一種具有線性相位及任意幅度特性的數(shù)字濾波器算法 N 負(fù)標(biāo)志,N=0 表示運算結(jié)果最高有效位為 0;N=1 表示最高有效位 為 1 Z 零標(biāo)志,Z=0 表示運算結(jié)果不為 0;Z=1 表示運算結(jié)果為 0 S 符號標(biāo)志,S=0 表示結(jié)果不為負(fù);S=1 表示結(jié)果為負(fù)數(shù)(2 的補數(shù)) C 進(jìn)位標(biāo)志,C=0 表示運算過程中無進(jìn)位或有借位產(chǎn)生;C=1 表示運算過程中有進(jìn)位或無借位產(chǎn)生 / 注釋符 第3章 SPCE061A指令系統(tǒng) 3.2 數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令 數(shù)據(jù)傳送指令是把源操作數(shù)傳送到指令所指定的目的地址。數(shù)據(jù)傳送操作屬復(fù)制性質(zhì),不是搬家性質(zhì),指令執(zhí)行后源操作數(shù)堅持不變,只是用源操作數(shù)替代
7、目的操作數(shù)。 數(shù)據(jù)傳送指令的通用格式如下: = 源操作數(shù)可以是立刻數(shù)、存放器尋址、存放器間接尋址、直接尋址、變址尋址等。目的操作數(shù)可以是存放器和直接地址。 第3章 SPCE061A指令系統(tǒng) 表表3.2 數(shù)據(jù)傳送指令一覽表數(shù)據(jù)傳送指令一覽表(ISA1.1指令集指令集) 語法 指令長度(Word) 影響標(biāo)志 周期數(shù) Rd = IM16 2 4 Rd =IM6 2 Rd = BP +IM6 6 Rd = A6 1 5 Rd = A16 2 7 Rd = Rs 4 Rd = Rs Rd = Rs+ Rd = +Rs Rd = Rs- 4 BP + IM6 = Rs 6 A6 = Rs 1 5 A16
8、= Rs 2 7 Rd = Rs +Rd = Rs Rd- = Rs Rd+ = Rs 1 N,Z 6 第3章 SPCE061A指令系統(tǒng) 1. 立刻尋址立刻尋址格式格式1:Rd = IM16闡明:闡明:16位立刻數(shù)送入目的存放器位立刻數(shù)送入目的存放器Rd。格式格式2:Rd = IM6闡明:闡明:6位立刻數(shù)擴(kuò)展為位立刻數(shù)擴(kuò)展為16位送入目的存放器位送入目的存放器Rd。例如:。例如:R1=0 xF001 /R1的值變?yōu)榈闹底優(yōu)? xF001第3章 SPCE061A指令系統(tǒng) 2. 存放器尋址格式1:Rd = Rs 闡明:將源存放器Rs 的數(shù)據(jù)送給目的存放器Rd。例如:R2=0 xF001/R2的值為
9、0 xF001R1=R2 /R1的值變?yōu)? xF001 第3章 SPCE061A指令系統(tǒng) 3. 直接尋址直接尋址格式格式1:Rd = A6 闡明:把闡明:把A6指定的存儲單元數(shù)據(jù)讀到指定的存儲單元數(shù)據(jù)讀到Rd存放器。存放器。格式格式2:Rd = A16闡明:把闡明:把A16指定的存儲單元數(shù)據(jù)讀到指定的存儲單元數(shù)據(jù)讀到Rd存放器。存放器。格式格式3:A6 = Rs 闡明:將源存放器闡明:將源存放器Rs中的數(shù)據(jù)送給以中的數(shù)據(jù)送給以A6為地址的存儲單元。為地址的存儲單元。格式格式4:A16 = Rs 闡明:把闡明:把Rs數(shù)據(jù)存儲到數(shù)據(jù)存儲到A16 指出的存儲單元。例如:指出的存儲單元。例如:R1=0
10、 x0011 /R1的值為的值為0 x0011 0 x0010=R1 /0 x0010單元的值變?yōu)閱卧闹底優(yōu)? x0011 第3章 SPCE061A指令系統(tǒng) 4. 變址尋址 格式1:Rd = BP +IM6 闡明:把基址指針BP與6位的立刻數(shù)的和作為地址,將該存儲單元的數(shù)據(jù)讀到Rd存放器。 格式2:BP + IM6 = Rs 闡明:把Rs的值存儲到基址指針BP與6位的立刻數(shù)之和為地址的存儲單元。例如: R1=0 x0010 BP+0 x0002=R1 第3章 SPCE061A指令系統(tǒng) 5. 存放器間接尋址 格式1:Rd = Rs 闡明:把Rs的數(shù)據(jù)存儲到Rd的值所指的存儲單元(Rd中存放的是
11、操作數(shù)的地址)。 格式2:+Rd = Rs 闡明:首先把Rd 的值加1,再將Rs的數(shù)據(jù)存儲到Rd的值所指的存儲單元。 格式3:Rd = Rs+ 闡明:讀取Rs所指的存儲單元的值存入Rd,而后Rs的值加1。 第3章 SPCE061A指令系統(tǒng) 例例1 將將R3的值保管于的值保管于0 x25單元。單元。 R3 =0 x5678 /把把16位立刻數(shù)位立刻數(shù)0 x5678賦給賦給R3方法方法1: 0 x25=R3 /將將R3的值存儲于的值存儲于0 x25存儲單元存儲單元(直接尋直接尋址址), / 0 x25單元的內(nèi)容為單元的內(nèi)容為0 x5678 方法方法2: R2 =0 x25 /立刻數(shù)立刻數(shù)0 x25
12、送入送入R2 R2=R3 /將將R3的值存儲于的值存儲于0 x25存儲單元存儲單元(存放器存放器間間/接尋址接尋址),0 x25單元的內(nèi)容為單元的內(nèi)容為0 x5678第3章 SPCE061A指令系統(tǒng) 方法方法3:BP= 0 x20 /立刻數(shù)立刻數(shù)0 x20送入送入BP BP+5= R3 /將將R3的值存儲于的值存儲于0 x25存儲單元存儲單元(變址尋變址尋 /址址),0 x25單元的內(nèi)容單元的內(nèi)容/為為0 x5678 第3章 SPCE061A指令系統(tǒng) 例例2 將將0 x25,0 x26和和0 x27單元清零。單元清零。方法方法1:R1 = 0 R2 = 0 x25 /立刻數(shù)立刻數(shù)0 x25送入
13、送入R2中中R2+ = R1 /R1的值存儲于的值存儲于0 x25,存儲單元,存儲單元R2=R2+1R2+ = R1 /R1的值存儲于的值存儲于0 x26,存儲單元,存儲單元R2=R2+1R2 = R1 /R1的值存儲于的值存儲于0 x27 第3章 SPCE061A指令系統(tǒng) 方法方法2:R1 = 0 R2 = 0 x27R2- =R1 /R1的值存儲于的值存儲于0 x27,存儲單元,存儲單元R2=R2-1R2- =R1 /R1的值存儲于的值存儲于0 x26,存儲單元,存儲單元R2=R2-1R2 = R1 /R1的值存儲于的值存儲于0 x25 第3章 SPCE061A指令系統(tǒng) 方法方法3:R1
14、= 0 /影響標(biāo)志位影響標(biāo)志位Z=1,N=0R2 = 0 x24/立刻數(shù)立刻數(shù)0 x24 送入送入R2中中+R2= R1 /R2=R2 +1,R2=0 x25,而后,而后R1的值存儲于的值存儲于0 x25單元單元+R2=R1 /R2=R2 +1,R2=0 x26,而后,而后R1的值存儲于的值存儲于0 x26 單元單元+R2=R1 /R2=R2 +1,R2=0 x27,而后,而后R1的值存儲于的值存儲于0 x27單元單元 第3章 SPCE061A指令系統(tǒng) 例3 用不同方式讀取存儲器的值。BP = 0 x20 /將立刻數(shù)0 x20 賦給BPR1 = BP + 5 /BP+5=0 x25,那么讀0
15、x25單元數(shù)據(jù)到R1中R1 = 0 x2345 /讀0 x2345單元數(shù)據(jù)到R1中R1 = BP /讀0 x20單元的數(shù)據(jù)到R1中R1 = BP+ /讀0 x20 單元的數(shù)據(jù)到R1中,并使BP=0 x20+1R1 = BP- /讀取0 x21單元的數(shù)據(jù)到R1中,并使BP=0 x21-1R1 = +BP /修正BP=0 x201,讀0 x21單元的數(shù)據(jù)到R1第3章 SPCE061A指令系統(tǒng) 6. 堆棧操作堆棧操作 除以上引見的指令外,堆棧除以上引見的指令外,堆棧(stack)操作屬于一種特殊的數(shù)操作屬于一種特殊的數(shù)據(jù)傳送指令,在此也一并作以引見。堆棧操作如圖據(jù)傳送指令,在此也一并作以引見。堆棧操
16、作如圖3.1所示。所示。 0 x07FF0 x0000堆棧生成方向0 x07FD0 x07FC0 x07FB0 x07FA0 x07F9R5棧頂棧底棧頂R4R3R2R1堆棧生成方向0 x0000圖3.1 堆棧操作 第3章 SPCE061A指令系統(tǒng) 堆棧指針SP總是指向棧頂?shù)牡谝粋€空項,壓入一個字后SP減1,將多個存放器同時壓棧,總是序號最高的存放器先入棧,然后依次壓入序號較低的存放器。所以,執(zhí)行指令 PUSH R1,R4 TO SP 與 PUSH R4,R1 TO SP是等效的,即將R4,R3,R2,R1壓棧,在數(shù)據(jù)出棧前SP加1,總是先彈出入棧指令中序號最低的存放器,而后依次彈出序號較高的存
17、放器,即先進(jìn)后出,后進(jìn)先出。 第3章 SPCE061A指令系統(tǒng) 堆棧操作的指令格式: PUSH Rx,Ry TO SP POP Rx,Ry FROM SP 闡明:Rx,Ry 可以是R1R4、BP、SP或PC中的恣意兩個或一個,執(zhí)行后將Rx、Ry的序列存放器壓棧,或?qū)⒍褩V械臄?shù)據(jù)彈入Rx、Ry序列存放器中。壓棧操作不影響標(biāo)志位,出棧操作影響N和Z標(biāo)志。當(dāng)Rx、Ry中含有SR時,一切標(biāo)志位都會改動。壓棧、出棧操作的執(zhí)行周期為3n + 4,假設(shè)出棧操作的目的存放器中含有PC時,執(zhí)行周期為3n+6,其中n是壓棧數(shù)據(jù)的個數(shù)。壓棧和出棧的指令長度均為1字長。例如: 第3章 SPCE061A指令系統(tǒng) PUS
18、H R1,R5 to SP /將R5,R4,R3,R2,R1壓棧 PUSH R2,R2 to SP /將R2壓棧PUSH R3 to SP /將R3壓棧POP R3 from SP /R3出棧POP R2,R2 from SP/R2出棧POP R1,R5 from SP /R1,R2,R3,R4,R5出棧 第3章 SPCE061A指令系統(tǒng) 3.3 算術(shù)運算指令算術(shù)運算指令 3.3.1 加法運算指令加法運算指令 加法運算影響標(biāo)志位加法運算影響標(biāo)志位N,Z,S和和C,尋址方式有以下幾種。,尋址方式有以下幾種。 1. 立刻尋址立刻尋址(不帶進(jìn)位不帶進(jìn)位) 格式格式1:Rd += IM6 或或 Rd
19、= Rd + IM6 操作:操作:Rd + IM6 Rd 闡明:闡明:Rd的數(shù)據(jù)與的數(shù)據(jù)與6位位(高位擴(kuò)展成高位擴(kuò)展成16位位)立刻數(shù)相加,結(jié)果送立刻數(shù)相加,結(jié)果送Rd。 格式格式2:Rd = Rs + IM16 操作:操作:Rs + IM16 Rd 闡明:闡明:Rd的數(shù)據(jù)與的數(shù)據(jù)與16位的立刻數(shù)相加,結(jié)果送位的立刻數(shù)相加,結(jié)果送Rd。例如:。例如: R1=0 x0099 /R1的值為的值為0 x0099 R1+=0 x0001/R1的值變?yōu)榈闹底優(yōu)? x009A R1+=0 x0012 /R1的值變?yōu)榈闹底優(yōu)? x00AC 第3章 SPCE061A指令系統(tǒng) 2. 直接尋址格式1:Rd +=
20、A6 或 Rd = Rd + A6操作:Rd + A6 Rd闡明:Rd的數(shù)據(jù)與6位地址指定的存儲單元中的數(shù)據(jù)相加,結(jié) 果送Rd。格式2:Rd = Rs + A16操作:Rs + A16 Rd闡明:Rs的數(shù)據(jù)與16位地址指定的存儲單元中的數(shù)據(jù)相加,結(jié)果送Rd。例如:R2=0 x0010 /R2的值為0 x00100 x0088=R2 /把0 x0010送到內(nèi)存單元0 x0088 R1=0 xF099 /R1的值為0 xF099R1+=0 x0088 /R1的值變?yōu)? xF0A9 第3章 SPCE061A指令系統(tǒng) 3. 變址尋址 格式:Rd += Bp + IM6 或Rd = Rd + BP +
21、IM6 操作:Rd + Bp + IM6 Rd 闡明:取基址指針BP 與6 位立刻數(shù)的和作為存儲單元的地址,存儲單元中的數(shù)據(jù)與Rd相加,結(jié)果送Rd存放器。例如: R1=0 x0010 /R1的值變?yōu)? x0010 R2=0 x0090 /R2的值變?yōu)? x0090 0 x0015=R2 /R2的值送到0 x0015 內(nèi)存單元 R1+=BP+0 x0015 /R1的值變?yōu)? x00A0(設(shè)BP=0 x0000) 第3章 SPCE061A指令系統(tǒng) 4. 存放器尋址格式: Rd += Rs操作: Rd + Rs Rd闡明:Rd與Rs的數(shù)據(jù)相加,結(jié)果送Rd。例如: R1=0 x0010 /R1的值為0
22、 x0010 R2=0 x0032 /R2的值為0 x0032R1+=R2 /R1的值變?yōu)? x0042 第3章 SPCE061A指令系統(tǒng) 5. 存放器間接尋址 格式1:Rd += Rs 操作:Rd + Rs Rd 闡明:Rd的數(shù)據(jù)與Rs所指定的存儲單元中的數(shù)據(jù)相加,結(jié)果送Rd。 格式2:Rd += Rs+ 操作:Rd + Rs Rd, Rs + 1 Rs 闡明:Rd的數(shù)據(jù)與Rs所指定的存儲單元中的數(shù)據(jù)相加,結(jié)果送Rd,并且Rs=Rs+1。 格式3:Rd += Rs 第3章 SPCE061A指令系統(tǒng) 操作:Rd + Rs Rd, Rs 1 Rs 闡明:Rd的數(shù)據(jù)與Rs所指定的存儲單元中數(shù)據(jù)相加
23、,結(jié)果送Rd,且Rs=Rs1。 格式4:Rd += +Rs 操作:Rs + 1 Rs, Rd + Rs Rd 闡明:首先修正Rs=Rs+1,Rd 的數(shù)據(jù)與Rs 所指定的存儲單元中的數(shù)據(jù)相加,結(jié)果送Rd。例如:R1=0 x0010/R1的值為0 x0010R2=0 x0020 /R2的值為0 x00200 x0010= R2 /R2的值送到內(nèi)存單元0 x0010中R2=0 x0010 /R2的值為0 x0010 R1+=R2+ /R1的值變?yōu)? x0030,同時R2 的值變?yōu)? x0011 第3章 SPCE061A指令系統(tǒng) 3.3.2 減法運算指令減法運算指令1. 立刻尋址立刻尋址格式格式1:R
24、d = IM6 或或 Rd = Rd IM6操作:操作:Rd IM6 Rd闡明:闡明:Rd的數(shù)據(jù)減去的數(shù)據(jù)減去6位立刻數(shù),結(jié)果送位立刻數(shù),結(jié)果送Rd。格式格式2:Rd = Rs IM16操作:操作:Rs IM16 Rd闡明:闡明:Rs的數(shù)據(jù)減去的數(shù)據(jù)減去16位立刻數(shù),結(jié)果送位立刻數(shù),結(jié)果送Rd。例如:。例如:R1=0 x0010 /R1的值為的值為0 x0010 R2=0 x0001 /R2的值為的值為0 x0001 R1 =R2 /R1的值為的值為0 x000F 第3章 SPCE061A指令系統(tǒng) 2. 直接尋址格式1:Rd = A6 或 Rd = Rd A16操作:Rd A6 Rd闡明:Rd
25、的數(shù)據(jù)減去A6存儲單元中的數(shù)據(jù),結(jié)果送Rd。格式2:Rd = Rs A16操作:Rs A16 Rd 闡明:Rs的數(shù)據(jù)減去A16存儲單元中的數(shù)據(jù),結(jié)果送Rd。 第3章 SPCE061A指令系統(tǒng) 例如,假設(shè)開場時的標(biāo)志位為N=0,Z=1,S=0,C=1。 R1=0 x0002 /R1的值為0 x0002,N=0,Z=0,S=0,C=1 0 x0020=R1 /把R1的值送到內(nèi)存單元0 x0020中,標(biāo)志位不變 R2=0 x0001 /R2的值為0 x0001,N=0,Z=0,S=0,C=1 R2 =0 x0020 /R2的值變?yōu)? xFFFF,C為0闡明運算過程產(chǎn)生了借位, /N=1,Z=0,S=
26、1 第3章 SPCE061A指令系統(tǒng) 3. 變址尋址 格式:Rd = BP + IM6 或 Rd = Rd BP + IM6 操作:Rd BP + IM6 Rd 闡明:Rd的值減去基址加變址指定的存儲單元的值,結(jié)果送Rd。例如: R1=0 x8031 /R1的值為0 x8031 R2=0 x0020 /R2的值為0 x0020 0 x0010=R2 /把0 x0020 送到地址單元0 x0010 R1 =BP+0 x0010 /R1的值變?yōu)? x8011(設(shè)BP=0 x0000) 第3章 SPCE061A指令系統(tǒng) 4. 存放器尋址格式:Rd=Rs操作:RdRsRd闡明:存放器Rd的數(shù)據(jù)減去Rs
27、的數(shù)據(jù)結(jié)果送Rd存放器。例如: R1 =0 x31E0 /R1的初值為0 x31E0R2 =0 x31DF /R2的初值為0 x31DFR1 =R2 /R1的值變?yōu)? x0001第3章 SPCE061A指令系統(tǒng) 5. 存放器間接尋址 格式1:Rd= Rs 操作:RdRsRd 闡明:Rd的數(shù)據(jù)與Rs所指定的存儲單元中的數(shù)據(jù)相減,結(jié)果送Rd。 格式2:Rd = Rs+ 操作:Rd Rs Rd, Rs+1 Rs 闡明:Rd的數(shù)據(jù)與Rs所指定的存儲單元中的數(shù)據(jù)相減,結(jié)果送Rd,且RsRs+1。 格式3:Rd = Rs 第3章 SPCE061A指令系統(tǒng) 操作:Rd Rs Rd, Rs1 Rs 闡明:Rd
28、的數(shù)據(jù)與Rs所指定的存儲單元中的數(shù)據(jù)相減,結(jié)果送Rd, 且RsRs1。 格式4:Rd= +Rs 操作:Rs + 1Rs, Rd Rs Rd 闡明:Rs的值加1,Rd的數(shù)據(jù)與Rs所指定單元的數(shù)據(jù)相減,結(jié)果送Rd。 第3章 SPCE061A指令系統(tǒng) 3.3.3 帶進(jìn)位的加減法運算指令帶進(jìn)位的加減法運算指令 由于帶進(jìn)位的加減運算與不帶進(jìn)位的加減運算在尋址方式、由于帶進(jìn)位的加減運算與不帶進(jìn)位的加減運算在尋址方式、周期數(shù)、指令長度、影響標(biāo)志位等均一樣,格式類似,故這里周期數(shù)、指令長度、影響標(biāo)志位等均一樣,格式類似,故這里只給出指令格式供讀者參考。只給出指令格式供讀者參考。 帶進(jìn)位的加法指令格式:帶進(jìn)位的
29、加法指令格式: Rd += IM6,Carry Rd = Rd + IM6,Carry Rd = Rs + IM16,Carry Rd += BP + IM6 ,Carry Rd = Rd + BP + IM6 ,Carry Rd += A6 ,Carry Rd = Rd + A6 ,Carry 第3章 SPCE061A指令系統(tǒng) Rd = Rs + A16 ,CarryRd += Rs,CarryRd += Rs ,CarryRd += +Rs ,CarryRd += Rs ,CarryRd += Rs+,Carry帶進(jìn)位的減法指令格式:Rd = IM6,CarryRd = Rd IM6,Ca
30、rryRd = Rs IM16,Carry 第3章 SPCE061A指令系統(tǒng) Rd = BP + IM6 ,CarryRd = Rd BP + IM6 ,CarryRd = A6 ,CarryRd = Rd A6 ,CarryRd = Rs A16 ,CarryRd = Rs,CarryRd = Rs ,CarryRd = +Rs ,CarryRd = Rs ,CarryRd = Rs+,Carry第3章 SPCE061A指令系統(tǒng) 3.3.4 乘法運算指令乘法運算指令 Rd和和Rs可用可用R1R2和和BP;MR由由R4、R3構(gòu)成,構(gòu)成,R4為為高位字,高位字,R3為低位字。不影響標(biāo)志位。為低位
31、字。不影響標(biāo)志位。 格式格式1:MR = Rd * Rs或或MR = Rd * Rs,ss 功能:功能:Rd * Rs MR 闡明:表示兩個有符號數(shù)相乘,結(jié)果送闡明:表示兩個有符號數(shù)相乘,結(jié)果送MR存放器。存放器。 格式格式2:MR = Rd * Rs,us 第3章 SPCE061A指令系統(tǒng) 功能:Rd * Rs MR 闡明:表示無符號數(shù)與有符號數(shù)相乘,結(jié)果送MR存放器。 例如,計算一年365 天共有多少小時,結(jié)果存放R4(高位)、R3(低位)。 R1 = 365 /R1的值為0 x016D R2 = 24 /R2的值為0 x0018 MR = R1 * R2,us/計算乘積,結(jié)果R3的值為0
32、 x2238,R4的值為0 x0000 第3章 SPCE061A指令系統(tǒng) 3.3.5 內(nèi)積運算指令內(nèi)積運算指令 內(nèi)積運算指令不影響標(biāo)志位。內(nèi)積運算指令不影響標(biāo)志位。 格式:格式:MR = Rd * Rs ,ss ,n 功能:功能:Rd與與Rs存放器內(nèi)容作為地址的存儲器內(nèi)有符號數(shù)存放器內(nèi)容作為地址的存儲器內(nèi)有符號數(shù)與有符號數(shù)之間或無符號數(shù)與有符號字?jǐn)?shù)之間進(jìn)展與有符號數(shù)之間或無符號數(shù)與有符號字?jǐn)?shù)之間進(jìn)展n項內(nèi)積項內(nèi)積運算,結(jié)果存入運算,結(jié)果存入MR。符號的缺省選擇為。符號的缺省選擇為ss,即有符號數(shù)據(jù),即有符號數(shù)據(jù)之間的運算。之間的運算。n的取值為的取值為116,缺省值為,缺省值為1。內(nèi)積運算操作
33、。內(nèi)積運算操作如圖如圖3.2所示,其中所示,其中Rd與與Rs可為存放器可為存放器R1R2或或BP。 執(zhí)行周期:執(zhí)行周期:10n+6個周期個周期 第3章 SPCE061A指令系統(tǒng) 闡明:當(dāng)FIR_MOV ON 時,允許FIR運算過程中數(shù)據(jù)自在挪動。為新樣本取代舊樣本進(jìn)展數(shù)據(jù)挪動預(yù)備:Xn4=Xn3,Xn3=Xn2,Xn2=Xn1。如圖3.2所示,當(dāng)完成一次內(nèi)積運算后X1、X2、X3自動右移,X4移出,在數(shù)字信號處置中非常有用。比如他要計算延續(xù)4次采樣值的平均值,可將采樣值放到X1X4 中,加權(quán)系數(shù)放到C中,然后完成Rd * Rs ,ss ,4運算,再求平均值。當(dāng)FIR_MOV ON時,運算完后X
34、1、X2、X3自動右移,X4 移出。這樣我們就可以把下一次的采樣值X0放到原X1的位置,下一次直接完成Rd * Rs ,ss ,4運算,即X0X3的運算,不用另外挪動Xn。 第3章 SPCE061A指令系統(tǒng) X1Rd運算前n1指針指向存儲器C1Rs存儲器內(nèi)MRC1*X1X1X2RdX3X4運算前n4指針指向存儲器C1C2RsC3C4存儲器內(nèi)MRC1*X1C2*X2C3*X3C4*X4X1RdC1RsX1X2RdX3X4C1C2RsC3C4運算后運算后圖3.2 內(nèi)積運算操作表示圖 第3章 SPCE061A指令系統(tǒng) 3.3.6 比較指令比較指令 比較指令執(zhí)行兩數(shù)的減法操作,不存儲運算結(jié)果,只影比較
35、指令執(zhí)行兩數(shù)的減法操作,不存儲運算結(jié)果,只影響標(biāo)志位響標(biāo)志位N、Z、S和和C。下面按尋址方式分別引見比較指令。下面按尋址方式分別引見比較指令。 1. 立刻尋址立刻尋址 格式格式1:CMP Rd,IM6 闡明:將闡明:將Rd的值與的值與6位立刻數(shù)相比較。位立刻數(shù)相比較。 格式格式2:CMP Rd,IM16 闡明:將闡明:將Rd的值與的值與16位立刻數(shù)相比較。位立刻數(shù)相比較。 第3章 SPCE061A指令系統(tǒng) 2. 直接尋址 格式1:CMP Rd, A6 闡明:將Rd的值與A6指定地址單元的數(shù)據(jù)相比較。 格式2:CMP Rd, A16 闡明:將Rd的值與A16指定地址單元的數(shù)據(jù)相比較。 3. 存放
36、器尋址 格式:CMP Rd,Rs 闡明:將Rd與Rs的值相減,只影響標(biāo)志位,不存儲結(jié)果。 第3章 SPCE061A指令系統(tǒng) 4. 變址尋址 格式:CMP Rd,BP + IM6 闡明:將Rd與BP + IM6指定地址單元的數(shù)據(jù)相比較。 第3章 SPCE061A指令系統(tǒng) 5. 存放器間接尋址 格式1:CMP Rd,Rs 闡明:將Rd的值與存放器Rs指定存儲單元的數(shù)據(jù)相比較。 格式2:CMP Rd,Rs+ + 闡明:將Rd的值與存放器Rs指定存儲單元的數(shù)據(jù)相比較,且RsRs+1。 格式3:CMP Rd,Rs- - 闡明:將Rd的值與存放器Rs指定存儲單元的數(shù)據(jù)相比較,且RsRs-1。 格式4:CM
37、P Rd,+Rs 闡明:Rs加1,再將Rd的值與存放器Rs指定存儲單元的數(shù)據(jù)相比較,結(jié)果只影響標(biāo)志位。 第3章 SPCE061A指令系統(tǒng) 3.4 邏輯運算指令邏輯運算指令 3.4.1 邏輯與指令邏輯與指令 1. 立刻尋址格式1:Rd &= IM6 或Rd = Rd & IM6功能:Rd & IM6Rd闡明:將Rd的數(shù)據(jù)與6位立刻數(shù)進(jìn)展邏輯與操作,結(jié)果送Rd 存放器。格式2:Rd = Rs & IM16功能:Rs & IM16Rd闡明:將Rs的數(shù)據(jù)與16 位立刻數(shù)進(jìn)展邏輯與操作,結(jié)果送Rd存放器。例如,假設(shè)開場時的標(biāo)志位為N=0,Z=1,S=0,C=1。R
38、1=0 x0010 /R1的初值為0 x0010,Z=0R1&=0 x000F /結(jié)果為0,標(biāo)志位Z由0變?yōu)?第3章 SPCE061A指令系統(tǒng) 2. 直接尋址直接尋址 格式格式1:Rd &=A6 或或 Rd=Rd&A6 功能:功能:Rd & A6 Rd 闡明:將闡明:將Rd和和A6指定存儲單元的數(shù)據(jù)進(jìn)展邏輯與操作,指定存儲單元的數(shù)據(jù)進(jìn)展邏輯與操作,結(jié)果送結(jié)果送Rd存放器。存放器。 格式格式2:Rd = Rs & A16 功能:功能:Rs & A16 Rd第3章 SPCE061A指令系統(tǒng) 3. 存放器尋址格式:Rd &= Rs或Rd=Rd&
39、amp;Rs功能:Rd & RsRd闡明:將Rd和Rs的數(shù)據(jù)進(jìn)展邏輯與操作,結(jié)果送Rd存放器。例如,假設(shè)開場時的標(biāo)志位為N=0,Z=1,S=0,C=1。R1=0 x00FF /R1的初值為0 x00FF,Z=0,N=0R2=0XFFFF /R1的初值為0XFFFF,Z=0,N=1R1&=R2 /結(jié)果為0 x00FF標(biāo)志位N變?yōu)?,Z=0 第3章 SPCE061A指令系統(tǒng) 4. 存放器間接尋址 格式1:Rd &= Rs 功能:Rd & Rs Rd 闡明: 將Rd的數(shù)據(jù)與Rs指定的存儲單元數(shù)據(jù)進(jìn)展邏輯與操作,結(jié)果送Rd存放器。 格式2:Rd &= Rs+ 功
40、能:Rd & RsRd,Rs+1Rs 闡明:將Rd的數(shù)據(jù)與Rs指定的單元的數(shù)據(jù)進(jìn)展邏輯與操作,結(jié)果送Rd存放器,并使Rs加1。 第3章 SPCE061A指令系統(tǒng) 格式3:Rd &= Rs- 功能:Rd & RsRd,Rs1Rs 闡明:將Rd 的數(shù)據(jù)與Rs 指定的單元的數(shù)據(jù)進(jìn)展邏輯與操作,結(jié)果送Rd存放器,并使Rs減1。 格式4:Rd &= +Rs 功能:Rs+1Rs,Rd&RsRd 闡明:Rs加1,將Rd的數(shù)據(jù)與Rs指定的單元的數(shù)據(jù)進(jìn)展邏輯與操作,結(jié)果送Rd存放器。 第3章 SPCE061A指令系統(tǒng) 例如,假設(shè)開場時的標(biāo)志位為N=0,Z=1,S=0,C=
41、1。 R1=0 x00FF /R1的初值為0 x00FF,Z=0,N=0 R2=0XFFFF /R2的初值為0XFFFF,Z=0,N=1 0 x0001=R2 R2=0 x0001 R1&=R2 /結(jié)果為0 x00FF,標(biāo)志位N變?yōu)?,Z=0 第3章 SPCE061A指令系統(tǒng) 3.4.2 邏輯或指令 1. 立刻尋址 格式1:Rd|=IM6或Rd=Rd|IM6 功能:Rd|IM6Rd 闡明:將Rd的數(shù)據(jù)與6位立刻數(shù)進(jìn)展邏輯或操作,結(jié)果送Rd存放器。 格式2:Rd=Rs|IM16 功能:Rs|IM16Rd第3章 SPCE061A指令系統(tǒng) 闡明:將Rs的數(shù)據(jù)與16位立刻數(shù)進(jìn)展邏輯或操作,結(jié)果
42、送Rd存放器。 例如,假設(shè)開場時的標(biāo)志位為N=0,Z=1,S=0,C=1。 R1=0 x00FF /R1的初值為0 x00FF,Z=0,N=0 R1|=0 xF000 /R1的值變?yōu)? xF0FF, Z=0,N=1 第3章 SPCE061A指令系統(tǒng) 2. 直接尋址 格式1:Rd|=A6或Rd=Rd|A6 功能:Rd|A6Rd 闡明:將Rd和A6指定單元的數(shù)據(jù)進(jìn)展邏輯或操作,結(jié)果送Rd存放器。 格式2:Rd =Rs|A16 功能:Rs|A16Rd第3章 SPCE061A指令系統(tǒng) 闡明:將Rs的數(shù)據(jù)和A16指定單元的數(shù)據(jù)進(jìn)展邏輯或操作,結(jié)果送Rd存放器。 例如,假設(shè)開場時的標(biāo)志位為N=0,Z=1,
43、S=0,C=1。 R1=0 x00FF /R1的初值為0 x00FF,Z=0,N=0 R1|=0 x0009 /R1值變?yōu)? x00FF, Z=0,N=0,假設(shè) 0 x0009的值為0第3章 SPCE061A指令系統(tǒng) 3. 存放器尋址 格式:Rd|=Rs 功能:Rd|Rs Rd 闡明:將Rd 和Rs 的數(shù)據(jù)進(jìn)展邏輯或操作,結(jié)果送Rd 存放器。 例如,假設(shè)開場時的標(biāo)志位為N=0,Z=1,S=0,C=1。 R1=0 x0000 /R1的初值為0 x0000,Z=1,N=0 R2=0 xFFF0 R1|=R2 /R1的值變?yōu)? xFFF0,Z=0,N=1 第3章 SPCE061A指令系統(tǒng) 4. 存放
44、器間接尋址 格式1:Rd|= Rs 功能:Rd|Rs Rd 闡明:將Rd的數(shù)據(jù)與Rs指定單元的數(shù)據(jù)進(jìn)展邏輯或操作,結(jié)果送Rd存放器。 格式2:Rd |= Rs+ 功能:Rd | Rs Rd,Rs + 1Rs 闡明:將Rd的數(shù)據(jù)與Rs 指定單元的數(shù)據(jù)進(jìn)展邏輯或操作,結(jié)果送Rd 存放器,并使Rs加1。 第3章 SPCE061A指令系統(tǒng) 格式3:Rd|= Rs- 功能:Rd|RsRd,Rs1Rs 闡明:將Rd的數(shù)據(jù)與Rs 指定單元的數(shù)據(jù)進(jìn)展邏輯或操作,結(jié)果送Rd存放器,并使Rs減1。 格式4:Rd|= +Rs 功能:Rs+1Rs,Rd|RsRd 闡明:首先將Rs的值加1,然后將Rd與Rs指定單元的數(shù)
45、據(jù)進(jìn)展邏輯或操作,結(jié)果送Rd存放器。 第3章 SPCE061A指令系統(tǒng) 例如,假設(shè)開場時的標(biāo)志位為N=0,Z=1,S=0,C=1。 R1=0 x0000; /R1的初值為0 x0000,Z=1,N=0 R2=0 xFFFF; /把0 xFFFF送到地址單元0 x0002中 0 x0002=R2; R2=0 x0002; /R2的值為0 x0002,Z=0,N=0 R1|=R2; /R1的值變?yōu)? xFFFF,Z=0,N=1 第3章 SPCE061A指令系統(tǒng) 3.4.3 邏輯異或指令邏輯異或指令 邏輯異或影響標(biāo)志位邏輯異或影響標(biāo)志位N和和Z,尋址方式有以下幾種。,尋址方式有以下幾種。 1. 立刻
46、尋址立刻尋址 格式格式1:Rd=IM6或或Rd= RdIM6 功能:功能:RdIM6Rd 闡明:將闡明:將Rd的數(shù)據(jù)與的數(shù)據(jù)與6位立刻數(shù)進(jìn)展邏輯異或操作,結(jié)果位立刻數(shù)進(jìn)展邏輯異或操作,結(jié)果送送Rd存放器。存放器。 格式格式2:Rd=RsIM16第3章 SPCE061A指令系統(tǒng) 功能:RsIM16Rd 闡明:將Rs的數(shù)據(jù)與16位立刻數(shù)進(jìn)展邏輯異或操作,結(jié)果送Rd存放器。 例如,假設(shè)開場時的標(biāo)志位為N=0,Z=1,S=0,C=1。 R1=0 x0F00 /R1的初值為0 x0F00,Z=0,N=0 R1=0 x0FFF /R1的值變?yōu)? x00FF,Z=0,N=0 第3章 SPCE061A指令系統(tǒng)
47、 2. 直接尋址 格式1:Rd=A6或RdRdA6 功能:Rd A6 Rd 闡明:將Rd 和A6 指定存儲單元的數(shù)據(jù)進(jìn)展邏輯異或操作,結(jié)果送Rd 存放器。 格式2:Rd=RsA16 功能:RsA16 Rd 第3章 SPCE061A指令系統(tǒng) 闡明:將Rs的數(shù)據(jù)和A16指定存儲單元的數(shù)據(jù)進(jìn)展邏輯異或操作,結(jié)果送Rd存放器。 例如,假設(shè)開場時的標(biāo)志位為N=0,Z=1,S=0,C=1。 R1=0 x0F00 /R1的初值為0 x0F00,Z=0,N=0 R2=0 x0FF0 0 x0010=R2 R1=0 x0010 /R1的值變?yōu)? x00F0,Z=0,N=0 第3章 SPCE061A指令系統(tǒng) 3.
48、 存放器尋址 格式:Rd = Rs 功能:Rd RsRd 闡明:將Rd 和Rs 的數(shù)據(jù)進(jìn)展邏輯異或操作,結(jié)果送Rd 存放器。 例如,假設(shè)開場時的標(biāo)志位為N=0,Z=1,S=0,C=1。 R1=0 x0E01 /R1的初值為0 x0E01,Z=0,N=0 R2=0 x0FF1 /R2的初值為0 x0FF1,Z=0,N=0 R1=R2 /R1的值變?yōu)? x01F0,Z=0,N=0 第3章 SPCE061A指令系統(tǒng) 4. 存放器間接尋址 格式1:Rd= Rs 功能:RdRsRd 闡明:將Rd的數(shù)據(jù)與Rs指定的存儲單元的數(shù)據(jù)進(jìn)展邏輯異或操作,結(jié)果送Rd存放器。 格式2:Rd= Rs+ 功能:RdRs
49、Rd,Rs + 1Rs 闡明:將Rd的數(shù)據(jù)與Rs指定的存儲單元的數(shù)據(jù)進(jìn)展邏輯異或操作,結(jié)果送Rd存放器,并使Rs加1。 格式3:Rd=Rs- 第3章 SPCE061A指令系統(tǒng) 功能:RdRsRd,Rs1Rs 闡明:將Rd的數(shù)據(jù)與Rs 指定的存儲單元中的數(shù)據(jù)進(jìn)展邏輯異或操作,結(jié)果送Rd存放器,并使Rs 減1。 格式4:Rd=+Rs 功能:Rs+1Rs ,RdRsRd 闡明:首先使Rs 加1,然后Rd 的數(shù)據(jù)與Rs 指定的存儲單元中的數(shù)據(jù)進(jìn)展邏輯異或操作,結(jié)果送Rd 存放器。 第3章 SPCE061A指令系統(tǒng) 例如,假設(shè)開場時的標(biāo)志位為N=0,Z=1,S=0,C=1。 R1=0 x0000 /R1
50、的初值為0 x0000,Z=1,N=0 R2=0 xFFFF /R2的初值為0 xFFFF,N=1,Z=0 0 x0002=R2 R2=0 x0002 R1=R2 /R1的值變?yōu)? xFFFF, Z=0,N=1 第3章 SPCE061A指令系統(tǒng) 3.4.4 測試指令 測試指令是將兩個數(shù)進(jìn)展邏輯與操作,不存儲結(jié)果,只影響N和Z標(biāo)志位。 1. 立刻尋址 格式1:TEST Rd,IM6 闡明:將Rd與IM6進(jìn)展邏輯與操作,不存儲結(jié)果,只影響N和Z標(biāo)志位。 格式2:TEST Rd,IM16 第3章 SPCE061A指令系統(tǒng) 闡明:將Rd與IM16進(jìn)展邏輯與操作,不存儲結(jié)果,只影響N和Z標(biāo)志位。 例如,
51、假設(shè)初始時標(biāo)志位分別為N=0,Z=1,S=0,C=1。 R1=0 x0E01 /R1的初值為0 x0E01,N=0,Z=0,S=0,C=1 TEST R1,0 x0000 /測試R1和0 x0000 相與的結(jié) 果,N=0,Z=1,S=0,C=1 JZ loop1 /測試結(jié)果為0,跳轉(zhuǎn)到loop1 R2=0 x0020loop1: R1=0 x0001 /標(biāo)號第3章 SPCE061A指令系統(tǒng) 2. 直接尋址 格式1:TEST Rd, A6 闡明:將Rd與A6指定存儲單元的數(shù)據(jù)進(jìn)展邏輯與操作,不存儲結(jié)果,只影響N和Z標(biāo)志位。 格式2:TEST Rd, A16 闡明:將Rd與A16指定存儲單元的數(shù)據(jù)
52、進(jìn)展邏輯與操作,不存儲結(jié)果,只影響N和Z標(biāo)志。 第3章 SPCE061A指令系統(tǒng) 例如,假設(shè)初始時標(biāo)志位分別為N=0,Z=1,S=0,C=1。R1=0 x0E01 /R1的初值為 0 x0E01,N=0,Z=0,S=0,C=1R2=0 x0011 /將0 x0011 送到內(nèi)存單元0 x0000中0 x0000=R2TEST R1,0 x0000 /R1和0 x0000單元的值相與,此時 N=0,Z=0,S=0,C=1JNZ loop1 /Z為0時跳轉(zhuǎn)到loop1,(此時測試結(jié)果 不為0)NOPNOPloop1: R1=0 x0000 .第3章 SPCE061A指令系統(tǒng) 3. 變址尋址 格式:T
53、EST Rd,BP+IM6 闡明:將Rd與BP+IM6指定存儲單元的數(shù)據(jù)進(jìn)展邏輯與操作,不存儲結(jié)果,只影響N和Z標(biāo)志位。 例如,假設(shè)初始形狀標(biāo)志位分別為N=0,Z=1,S=0,C=1。 R1=0 x0E01 /R1的初值為0 x0E01,N =0,Z=0,S=0,C=1 R2=0 x0011 /將0 x0011送到內(nèi)存單元0 x0000中 0 x0000=R2第3章 SPCE061A指令系統(tǒng) TEST R1,BP+0 x0000 /知BP的值為0,R1和BP+0 x0000單元的值相與, /N=0,Z=0,S=0,C=1 JNZ loop1 /測試結(jié)果不為0時跳轉(zhuǎn)到loop1 NOP NOPl
54、oop1: R1+=1 第3章 SPCE061A指令系統(tǒng) 4. 存放器尋址 格式:TEST Rd,Rs 闡明:將Rd 與Rs 的數(shù)據(jù)進(jìn)展邏輯與操作,不存儲結(jié)果,只影響N和Z標(biāo)志位。 例如,假設(shè)初始時標(biāo)志位分別為N=0,Z=1,S=0,C=1。 R1=0 x0000 /R1的初值為0 x0000,N=0,Z=1,S=0,C=1 R2=0 x1111 /R2的初值為0 x1111,N=0,Z=0,S=0,C=1 TEST R1,R2 /測試R1和R2的相與的結(jié)果,N=0,Z=1,S=0,C=1 JZ loop1 /測試結(jié)果為0時跳轉(zhuǎn)到loop1 NOPloop1: R1-=1 /標(biāo)號 第3章 SP
55、CE061A指令系統(tǒng) 5. 存放器間接尋址 格式1:TEST Rd,Rs 闡明:將Rd 與Rs 指定存儲單元中的數(shù)據(jù)進(jìn)展邏輯與操作,不存儲結(jié)果,只影響N和Z標(biāo)志位。 格式2:TEST Rd,Rs+ 闡明:將Rd與Rs指定存儲單元中的數(shù)據(jù)進(jìn)展邏輯與操作,不存儲結(jié)果,只影響N和Z標(biāo)志位,并且使Rs加1。 第3章 SPCE061A指令系統(tǒng) 格式3:TEST Rd,Rs- 闡明:將Rd 與Rs 指定存儲單元中的數(shù)據(jù)進(jìn)展邏輯與操作,不存儲結(jié)果,只影響N和Z標(biāo)志位,并且使Rs減1。 格式4:TEST Rd,+Rs 闡明:首先Rs加1,然后Rd 與Rs 指定存儲單元中的數(shù)據(jù)進(jìn)展邏輯與操作,不存儲結(jié)果,只影響
56、N和Z標(biāo)志位。 第3章 SPCE061A指令系統(tǒng) 例如,假設(shè)初始時標(biāo)志位分別為N=0,Z=1,S=0,C=1。 R1=0 x0000 /R1的初值為0 x0000,N=0,Z=1,S=0,C=1 R2=0 x1111 /0 x0001的初值為0 x1111,N=0,Z=0,S=0,C=1 0 x0001=R2 R2=0 x0001 TEST R1,R2 /測試R1和R2相與的結(jié)果,N=0,Z=1,S=0,C=1 JZ loop1 /測試結(jié)果為0時跳轉(zhuǎn)到loop1 Noploop1: R1=0 x0000/標(biāo)號 第3章 SPCE061A指令系統(tǒng) 3.4.5 移位操作指令移位操作指令 1. 邏輯左
57、移(LSL) 格式:RdRs LSL n 闡明:對Rs 進(jìn)展n(可設(shè)為14)位邏輯左移,將Rs高n 位移入SB存放器,同時Rs 的低n(14)位用0補足,結(jié)果送Rd存放器。 第3章 SPCE061A指令系統(tǒng) 例如,邏輯左移3位,存放器移位前的形狀如下: SB RS S3 S2 S1 S0 B15 B14 B13 B12 B11 B10 B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 寄存器移位后的狀態(tài)如下: SB RD S0 B15 B14 B13 B12 B11 B10 B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 0 0 0 程序: R1=0 xF00F /R1
58、初值為 0 xF00F R1=R1 LSL 3 /R1 左移 3 位后的值變?yōu)?0 x8078 第3章 SPCE061A指令系統(tǒng) 2. 邏輯右移(LSR) 格式:Rd=Rs LSR n 闡明: 對Rs進(jìn)展n(可設(shè)為14)位邏輯右移,將Rs低n位移入SB存放器,同時Rs的高n(14)位用0補足,結(jié)果送Rd存放器。 例如,邏輯右移3位,存放器移位前的形狀如下: SB RS S3 S2 S1 S0 B15 B14 B13 B12 B11 B10 B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 寄存器移位后的狀態(tài)如下: SB RD 0 0 0 S3 S2 S1 S0 B15 B14 B13
59、 B12 B11 B10 B9 B8 B7 B6 B5 B4 B3 程序: R1=0 xF00F /R1 的初值為 0 xF00F R1=R1 LSR 3 /R1 右移 3 位后的值變?yōu)?0 x1E01 第3章 SPCE061A指令系統(tǒng) 3. 循環(huán)左移(ROL) 格式:RdRs ROL n 闡明:對Rs進(jìn)展n(可設(shè)為14)位循環(huán)左移,將Rs的高n位移入SB存放器,同時將SB存放器的高n位移入Rs的低n位,結(jié)果送Rd 存放器。 例如,循環(huán)左移1位,存放器移位前的形狀如下: 第3章 SPCE061A指令系統(tǒng) SB RS S3 S2 S1 S0 B15 B14 B13 B12 B11 B10 B9
60、B8 B7 B6 B5 B4 B3 B2 B1 B0 寄存器移位后的狀態(tài)如下: SB RD S2 S1 S0 B15 B14 B13 B12 B11 B10 B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 S3 程序: R1=0 x0010 /R1 的初值為 0 x0010 R1=R1 ROL 1 /R1 循環(huán)左移 1 位后的值變?yōu)?0 x0020 第3章 SPCE061A指令系統(tǒng) 4. 循環(huán)右移(ROR) 格式:Rd Rs ROR n 闡明:對Rs進(jìn)展n(可設(shè)為14)位循環(huán)右移,將Rs的低n位移入SB 存放器,同時將SB存放器的低n位移入Rs的高n位,結(jié)果送Rd存放器。 例如,循環(huán)右移1位,存放器移位前的形狀如下: 第3章 SPCE061A指令系統(tǒng) SB RS S3 S2 S1 S0 B15 B14 B13 B12 B11 B10 B9 B8 B7 B6 B5 B
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安徽高中教科研聯(lián)盟2025年高一化學(xué)第二學(xué)期期末聯(lián)考模擬試題含解析
- 2025屆吉林省長春市汽車經(jīng)濟(jì)技術(shù)開發(fā)區(qū)第六中學(xué)化學(xué)高二下期末檢測試題含解析
- 2025屆江西省吉安市永豐中學(xué)高一下化學(xué)期末質(zhì)量檢測模擬試題含解析
- 醫(yī)院通訊費用管理辦法
- 機(jī)構(gòu)工資薪酬管理辦法
- 2025年暑假八上古詩文默寫強(qiáng)化訓(xùn)練早背晚默21-36 素材
- 財政政策與市場信心-洞察及研究
- 全國現(xiàn)代農(nóng)業(yè)發(fā)展規(guī)劃與實施策略
- 智慧學(xué)校信息管理辦法
- 云資源訪問控制機(jī)制-洞察及研究
- 招商大使選聘管理辦法
- 海外現(xiàn)場安全健康環(huán)境管理(HSE)
- 2025年公安機(jī)關(guān)人民警察(行政執(zhí)法)資格考試(客觀題及刑法)含答案
- DB3502∕T 166-2024 既有廠區(qū)及老舊小區(qū)海綿城市方案設(shè)計導(dǎo)則
- 2025年 江西省金控科技產(chǎn)業(yè)集團(tuán)有限公司招聘考試筆試試卷附答案
- 四川省成都市蓉城聯(lián)盟2024-2025學(xué)年高一下學(xué)期6月期末考試物理試題(含答案)
- 2025年中國模內(nèi)標(biāo)簽(IML)行業(yè)市場全景分析及前景機(jī)遇研判報告
- 【人教版】吉林長春2024-2025學(xué)年 五年級下學(xué)期期末數(shù)學(xué)試題【附答案】
- 福建省三明市永安林業(yè)(集團(tuán))股份有限公司招聘筆試題庫2025
- 地基基礎(chǔ)公司管理制度
- 科室vte預(yù)防管理制度
評論
0/150
提交評論