第三章 指令系統(tǒng)_第1頁
第三章 指令系統(tǒng)_第2頁
第三章 指令系統(tǒng)_第3頁
第三章 指令系統(tǒng)_第4頁
第三章 指令系統(tǒng)_第5頁
已閱讀5頁,還剩73頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

主要內(nèi)容尋址方式指令集典型指令說明第三章TMS320C24X尋址方式和指令系統(tǒng)

13.1尋址方式

TMS320LF240x指令集采用3種基本的存儲器尋址方式:立即尋址方式(1)、直接尋址方式(2)和間接尋址方式(3)。在立即尋址方式(1)中,指令中所需要的常數(shù)作為指令的操作數(shù)直接給出。當(dāng)需要訪問數(shù)據(jù)存儲器時,可采用直接(2)或間接尋址方式(3)。直接尋址方式將指令字的7位與數(shù)據(jù)存儲器頁指針(DP)的9位連接起來,形成16位數(shù)據(jù)存儲器地址;間接尋址通過8個16位輔助寄存器訪問數(shù)據(jù)存儲器。23.1.1立即尋址方式在立即尋址方式中,指令字中包含指令所需的一個常數(shù)。在指令中常數(shù)前加“#”用于表示立即操作數(shù)。1.短立即尋址方式,采用短立即尋址的指令將一個8位、9位或13位的常數(shù)作為操作數(shù)。短立即尋址指令為一個單指令字,并且有一個常數(shù)嵌在該指令中。3例3.1采用短立即尋址的RPT指令:

43.1.1立即尋址方式

2.長立即尋址方式:指令將一個16位常數(shù)作為操作數(shù),這種指令需要兩個指令字。該常數(shù)為第2指令字,該16位值可以是絕對常數(shù)或二進(jìn)制補(bǔ)碼。52例3.2采用長立即尋址的ADD指令:63.1.2直接尋址方式在直接尋址方式中,數(shù)據(jù)存儲器地址以128為單位被分成若干塊,這些塊被稱作數(shù)據(jù)頁。

64K的數(shù)據(jù)存儲器總共包含512個數(shù)據(jù)頁,標(biāo)號從0~511,見圖3.3。7當(dāng)前數(shù)據(jù)頁由狀態(tài)寄存器STO中的9位數(shù)據(jù)頁指針(DP)值決定。除數(shù)據(jù)頁之外,處理器還必須知道該頁上被訪問的特定單元,這取決于7位偏移量,8l.使用直接尋址方式使用直接尋址方式時,處理器用頁指針DP來尋找數(shù)據(jù)頁,用指令寄存器的低7位有效位來尋址該頁上的特定地址。設(shè)置數(shù)據(jù)頁將合適的值(從0-511)裝入DP。

LDP#32;設(shè)置當(dāng)前數(shù)據(jù)頁為32(1000h~107Fh)指明偏移量

7位偏移量由指令的操作數(shù)提供。

ADD5H;將當(dāng)前數(shù)據(jù)頁中偏移量為5處的數(shù)據(jù);加至累加器9注:采用直接尋址時,不必每條指令前都要設(shè)置數(shù)據(jù)頁。如果一段代碼的所有直接尋址指令都訪問同一個數(shù)據(jù)頁,則只需在該段代碼的最前面裝載一次DP值??傊仨毐WC要訪問新的數(shù)據(jù)頁之前改變DP。102.直接尋址示例例3.3采用直接尋址的ADD指令(移位0~15位):

LDP#4;數(shù)據(jù)頁設(shè)為4(0200h~027Fh)ADD9H,5;將數(shù)據(jù)地址0209h處的內(nèi)容;左移5位后加至累加器例3.4采用直接尋址的ADDC指令;

LDP#500;數(shù)據(jù)頁設(shè)為500(FA00h~FA7Fh)ADDC8H;數(shù)據(jù)地址FA08h處內(nèi)容和進(jìn)位;值(C)被加至累加器113.1.3間接尋址方式

8個輔助寄存器(AR0~AR7)為處理器提供了強(qiáng)大而靈活的尋址能力,提供間接尋址的16位地址,可以訪問64K數(shù)據(jù)存儲器空間的任意單元。l.當(dāng)前輔助寄存器通過向狀態(tài)寄存器ST0中的3位輔助寄存器指針(ARP)裝入0-7,可選擇特定的輔助寄存器。ARP可由MAR指令、LST指令或任何支持間接尋址的指令來裝載。輔助寄存器指針ARP所指的寄存器被作為當(dāng)前輔助寄存器或簡稱為當(dāng)前AR。執(zhí)行指令過程中,當(dāng)前AR的內(nèi)容用作被訪問的數(shù)據(jù)存儲器地址。122.間接尋址選項(xiàng)

TMS320C24x提供4種間接尋址選項(xiàng):不增不減,增1或減1,增加或減去索引量,增加或減去索引量且反向進(jìn)位。133.下一次的輔助寄存器除了更新當(dāng)前輔助寄存器的內(nèi)容以外,某些指令還可以指明下一個輔助寄存器AR,當(dāng)本條指令執(zhí)行完之后,下一個輔助寄存器AR便成為當(dāng)前輔助寄存器AR。例3.5選擇新的當(dāng)前輔助寄存器ARMAR*,ARl

;將當(dāng)前輔助寄存器AR設(shè)為ARlLACL*+,AR2;用輔助寄存器ARl所指向的地址;中內(nèi)容裝載累加器的低16位,;ARl內(nèi)容加1;AR2為當(dāng)前;輔助寄存器ARSACL*+;將累加器的低16位存于AR2所指;向的地址單元,AR2內(nèi)容加1144.間接尋址示例例3.6不增不減

ADD*,8;把當(dāng)前輔助寄存器指向的數(shù)據(jù);存儲器地址的內(nèi)容左移8位之后;加至累加器例3.7減1ADD*-,8 ;對比和例3.6有何不同?156.修改輔助寄存器內(nèi)容用于修改輔助寄存器(AR)內(nèi)容的特定指令有:LAR、ADRK、SBRK和MAR。LAR指令裝載AR;ADRK和SUBRK分別用來從AR中加上或減去一個立即數(shù);MAR指令可使AR值增加/減少1或增加/減少一個索引量。另外任何支持間接尋址操作數(shù)的指令都可修改輔助寄存器。163.2指令集根據(jù)指令的功能來分,提供6張表來說明指令集的概況:累加器、算數(shù)和邏輯指令,見表3.2;輔助寄存器和數(shù)據(jù)頁指針指令,見表3.3;TREG、PREG和乘法指令,見表3.4;轉(zhuǎn)移指令,見表3.5;控制指令,見表3.6;I/O和存儲器操作,見表3.7。17先定義這6張概述表的符號意義。ACC累加器。AR輔助寄存器。ARX用于LAR和SAR指令的3位數(shù)據(jù)值,指定被操作的輔助寄存器。BITX4位數(shù)值,用于指定數(shù)據(jù)存儲器數(shù)值中的哪一位將被BIT指令所測試。CM2位數(shù)值,CMPR指令執(zhí)行CM值所聲明的比較:若CM=00,測試當(dāng)前AR=AR0否;若CM=01,測試當(dāng)前AR<AR0否;若CM=10,測試當(dāng)前AR>AR0否;若CM=11,測試當(dāng)前AR≠AR0否。SHIFT4位右移量。TP用于條件執(zhí)行指令(BCND)的2位數(shù)值,代表如下4種條件;若BIO引腳為低,TP=00;若TC位=1,TP=01;若TC位=0,TP=10;無條件TP=1l。18(1)累加器、算數(shù)和邏輯指令算術(shù)取絕對值:ABS求反(求補(bǔ)碼):NEG求相反數(shù):CMPL加法:ADD,ADDC,ADDS,ADDT減法:SUB,SUBB,SUBC,SUBS,SUBT邏輯邏輯與:AND邏輯或:OR異或:XORACC移位,加載ACC,存儲ACC移位:ROL,ROR,SFL,SFR加載ACC:LACC,LACL,LACT存儲ACC:SACH,SACL19(2)輔助寄存器指令修改當(dāng)前AR:ADRK,MAR,SBRK加載、保存AR:LAR,SAR轉(zhuǎn)移:BANZ比較:CMPR20(3)TREG、PREG和乘法加載TREG:LT,LTA,LTD,LTP,LTS加載、保存PREG:APAC,LPH,PAC,SPAC,SPH,SPL乘法、平方:MPY,MPYA,MPYS,MPYU,SQRA,SQRS相乘并累加(移動):MAC,MACD21(4)轉(zhuǎn)移轉(zhuǎn)移無條件轉(zhuǎn)移:B,BACC條件轉(zhuǎn)移:BANZ,BCND調(diào)用無條件調(diào)用:CALA,CALL條件調(diào)用:CC返回?zé)o條件返回:RET條件返回:RETC中斷:INTR,NMI,TRAP22(5)控制位測試:BIT,BITT置位、清零:CLRC,SETC加載、保存ST0、ST1:LST,SST出、入棧:PUSH,POP,PUSHD,POPD加載DP、PM:LDP,SPM重復(fù):RPT23(6)I/O和存儲器指令數(shù)據(jù)(塊)移動:BLDD,BLPD,DMOV讀、寫I/O設(shè)備:IN,OUT表的讀/寫操作:TBLR,TBLW立即數(shù)加載數(shù)據(jù)存儲器:SPLK24加法指令25裝載累加器

指令2627移位

指令28減法指令29減法指令30313233相乘并累加指令34乘法指令35平方指令36轉(zhuǎn)移指令37調(diào)用指令返回指令3839404142433.3典型指令說明假設(shè)直接尋址一律認(rèn)為DP指針已經(jīng)指向要尋址的數(shù)據(jù)區(qū),就不用再重新裝載DP,而間接尋址則認(rèn)為輔助寄存指針ARP已經(jīng)指到當(dāng)前輔助寄存器AR,也不用再聲明當(dāng)前AR。

441.對累加器的加操作ADD指令

ADD指令執(zhí)行的操作是將數(shù)據(jù)存儲器單元的數(shù)或立即數(shù)左移后加至累加器。語法:ADDdma[,shift]ADDdma,16ADDind[,shift[,ARn]]ADDind,16[,ARn]ADD#kADD#lk[,shift]45舉例:ADD5,2

;(DP=4:0200h~027Fh)將數(shù)據(jù);存儲器單元205h的內(nèi)容左移2位;之后與ACC相加,結(jié)果存在ACC

ADD*+,2,AR0

;(ARP=4,AR4=282)將數(shù)據(jù);存儲器單元282的內(nèi)容左移2

;位之后加至ACC,結(jié)果存在;ACC,指令執(zhí)行后AR4=283,

;ARP=0

46

ADD#2

;短立即數(shù)2與ACC相加,;結(jié)果存在ACC

ADD#1111h,2

;長立即數(shù)llllh左移2位后與;ACC相加,結(jié)果存在ACC47

2.和累加器邏輯“與”操作指令A(yù)NDAND指令用來實(shí)現(xiàn)被尋址單元的內(nèi)容和累加器的邏輯“與”操作,以及長立即數(shù)經(jīng)過移位之后和累加器進(jìn)行邏輯“與”操作。邏輯“與”操作之后的結(jié)果保存在累加器中。語法:ANDdmaANDind[,ARn]AND#lk[,shift]AND#lk,1648舉例:AND16

;(DP=4:0200—027Fh)將數(shù)據(jù)存儲器單元

;210h的內(nèi)容與ACC的內(nèi)容進(jìn)行;邏輯“與”操作,結(jié)果保留在ACC中

AND*

;(ARP=0,AR0=0301h)將數(shù)據(jù)存儲器單元

;301h的內(nèi)容與ACC的內(nèi)容進(jìn)行邏輯“與”;操作,結(jié)果保留在ACC中

AND#00FFh,4

;將立即數(shù)00FFh左移4位之后和;ACC邏輯“與”,結(jié)果保留在ACC中493.輔助寄存器不等于零轉(zhuǎn)移指令BANZ

若當(dāng)前輔助寄存器內(nèi)容不為零,則控制轉(zhuǎn)移至指定的程序存儲器地址,否則控制轉(zhuǎn)移到下一條指令。當(dāng)前AR的缺省修改為減1。該指令可用來實(shí)現(xiàn)程序的循環(huán)執(zhí)行。語法:BANZpma[,ind[,ARn]]舉例:

MAR*,AR0

;ARP指向AR0

LARARl,#3

;ARl中裝入3

LARAR0,#60h

;AR0中裝入0060hP1:ADD*+,ARl

;將AR0所指的數(shù)加到ACC,并將;AR0的值增1,設(shè)置AR1為當(dāng)前AR

BANZP1,AR0

;若ARl≠0則循環(huán),(AR1)-1,

;且重新設(shè)置AR0為當(dāng)前AR50

4.條件轉(zhuǎn)移指令BCND

當(dāng)所規(guī)定的條件符合時,控制轉(zhuǎn)移到指定的程序存儲器地址。語法:BCNDpma,cond1[,cond2][,…]

BCNDP1,LEQ

;若ACC的內(nèi)容小于等于0時,程;序轉(zhuǎn)到P1處開始執(zhí)行51

5.位測試指令BIT

該指令將數(shù)據(jù)存儲器中的指定位的值復(fù)制到狀態(tài)寄存器STl的TC位。將該指令和BCND指令結(jié)合可判斷指定位的狀態(tài),并根據(jù)該位的狀態(tài)來控制程序的轉(zhuǎn)移。語法:BITdma,bitcodeBITind,bitcode[,ARn]

BIT0h,15

;(DP=6)測試0300h處的最低;有效位

BCNDP1,TC

;若該位為l,則程序轉(zhuǎn)到P1處;執(zhí)行526.?dāng)?shù)據(jù)存儲器至數(shù)據(jù)存儲器間的塊傳送BLDD

把指定的數(shù)據(jù)存儲單元器源地址中的字拷貝到指定的數(shù)據(jù)存儲單元目的地址中。源地址和目的地址可由長立即數(shù)地址或數(shù)據(jù)存儲器地址指定。語法:BLDD#lk,dmaBLDD#lk,ind[,ARn]BLDDdma,#lkBLDDind,#lk[,ARn]53舉例:

BLDD#300h,20h

;(DP=6;0300h~037Fh)將數(shù);據(jù)存儲器單元0300h的內(nèi)容復(fù);制到數(shù)據(jù)存儲器0320h

BLDD*+,#321h,AR3

;執(zhí)行前:ARP=2,(AR2)=030lh,(030lh)=0001h,(0321h)=000Fh

;執(zhí)行后:ARP=3,(AR2)=0302h,(030lh)=OOOlh,(0321h)=0001h547.清除控制位指令CLRCCLRC指令將指定的控制位清除為0。指定的控制位為下述控制位之一:

C狀態(tài)寄存器STl的進(jìn)位位

CNF狀態(tài)寄存器STl的RAM配置控制位

INTM狀態(tài)寄存器ST0的中斷方式位

OVM狀態(tài)寄存器ST0的溢出方式位

SXM狀態(tài)寄存器STl的符號擴(kuò)展方式位

TC狀態(tài)寄存器STl的測試/控制標(biāo)志位

XF狀態(tài)寄存器STl的XF引腳狀態(tài)位語法:CLRCcontrolbit舉例:CLRCTC;將STl的TC位清0558.從端口輸入數(shù)據(jù)指令I(lǐng)NIN指令從一個I/O單元讀一個16位值到指定的數(shù)據(jù)存儲器單元。IS引腳變?yōu)榈碗娖?,用以指示訪問I/O口。

IN7,1000h

;(DP=6)從口地址為1000h的;外設(shè)讀數(shù)據(jù),并將數(shù)據(jù)存于;數(shù)據(jù)存儲器單元0307h

IN*,5h

;從口地址為0005h的外設(shè)讀數(shù);據(jù),并將數(shù)據(jù)存至當(dāng)前輔助寄;存器所指定的數(shù)據(jù)存儲器單元569.裝載累加器的LACC指令

LACC指令執(zhí)行的操作是將指定的數(shù)據(jù)存儲器單元的內(nèi)容或一個16位常量左移后送入累加器。移位時,低位填0,高位在SXM=l時為符號擴(kuò)展,在SXM=0時填0。

LACC5,4

;(DP=8:0400~047Fh)將數(shù)據(jù)存儲器;單元405的內(nèi)容左移4位之后送到ACC

LACC*,4

;(ARP=2,AR2=0305h)將數(shù)據(jù)存儲器單;元305的內(nèi)容左移4位之后送到ACC

LACC#1234h,2

;將長立即數(shù)1234h左移2位之后;送到ACC5710.裝載累加器低位并清累加器高位指令LACLLACL指令將被尋址數(shù)據(jù)存儲器單元的內(nèi)容或者被零擴(kuò)展的8位常量裝入累加器的低16位,累加器的高半部分填0。無論SXM為何狀態(tài),該指令的操作數(shù)抑制符號擴(kuò)展。

LACL#10h

;將0010h裝載入ACC

LACL1

;(DP=6:0300h~037Fh)將數(shù)據(jù)存儲;器單元0301h的內(nèi)容裝載入ACC

LACL*-,AR4

;(ARP=0,AR0=0301h,(0301h)=2)

;將數(shù)據(jù)存儲器單元0301h的;內(nèi)容裝載入ACC,指令執(zhí)行完后

;AR0=0300h,ARP=45811.修改輔助寄存器指令MAR和裝載輔助寄存器指令LARMAR指令用來修改輔助寄存器ARP的值。LAR指令用來將數(shù)據(jù)存儲器的值裝載入輔助寄存器。LAR和SAR指令可在子程序調(diào)用或中斷處理時裝載和存儲輔助寄存器,從而實(shí)現(xiàn)在中斷或子程序調(diào)用時上下文的保存。

MAR*,ARl

;向ARP裝入1

59

MAR*+,AR5

;將當(dāng)前輔助寄存器(ARl)增1,;并向ARP裝入5

LARARl,5H

;(DP=4:0200h~027Fh)將數(shù)據(jù)存儲;器地址205的內(nèi)容裝入ARl寄存器

LARARl,#50H

;將短立即數(shù)0050h裝入ARl寄存器

LARARl,#1234H;將長立即數(shù)1234h裝入ARl寄存器6012.裝載數(shù)據(jù)頁指針指令LDP

該指令將被尋址數(shù)據(jù)存儲器單元的9位最低有效位或9位立即數(shù)送入狀態(tài)寄存器ST0的數(shù)據(jù)頁指針DP。DP也可由LST指令裝入。

LDP5

;(DP=5:地址0280h~02FFh)

LDP#0

6113.裝載狀態(tài)寄存器指令LSTLST指令將被尋址數(shù)據(jù)存儲器單元中的值裝入指定的狀態(tài)寄存器(ST0或STl)。LST指令用于子程序調(diào)用和中斷后恢復(fù)狀態(tài)寄存器。

MAR*,AR0

LST#0,*,ARl

;將輔助寄存器AR0所尋址;的數(shù)據(jù)存儲器單元內(nèi)容送入狀;態(tài)寄存器ST0,但不包括INTM

;位。盡管指定了下一ARP值,;但該值被忽略,指定的ARP

;不送入ARB

LST#1,0h

;(DP=6:0300h~037Fh)將數(shù);據(jù)存儲器單元0300h的內(nèi)容裝;入STl6214.裝載TREG寄存器指令LTD(1)LTD指令將數(shù)據(jù)寄存單元的內(nèi)容加載到TREG。(2)按PM狀態(tài)位指定的方式對乘積寄存器的內(nèi)容進(jìn)行移位,并把移位后的值與ACC相加,結(jié)果放在ACC中。(3)指定的數(shù)據(jù)存儲單元的內(nèi)容拷貝到地址加1的數(shù)據(jù)存儲單元。

LTD123

;(DP=5;0280h~02FFh,PM=0:乘積不移位)

;執(zhí)行前:(02FBh)=0022h,(02FCh)=0000h,(TREG)=0003h,(PREG)=000Fh,(ACC)=0005h;執(zhí)行后:(02FBh)=0022h

(1)(TREG)=0022h,(2)

(PREG)=000Fh,(ACC)=0014h,(3)(02FCh)=0022h,

63

LTD*,AR3

;(PM=0)執(zhí)行前:ARP=1,(ARl)=02FBh,(02FBh)=0022h,(02FCh)=0000h,(TREG)=0003h,(PREG)=000Fh,(ACC)=0005h執(zhí)行后:ARP=3,(ARl)=02FBh,(02FBh)=0022h,(1)(TREG)=0022h,(2)

(PREG)=000Fh,(ACC)=0014h(3)(02FCh)=0022h,64

15.乘且累加并帶數(shù)據(jù)移動指令MACD(1)按PM狀態(tài)位指定的方式把先前的乘積移位,再與ACC內(nèi)容相加;(2)把指定的數(shù)據(jù)存儲單元的內(nèi)容加載到TREG;(3)將存放在TREG寄存器中的數(shù)據(jù)存儲單元值乘以指定的程序存儲器地址中的內(nèi)容;(4)將指定的數(shù)據(jù)存儲器地址中的內(nèi)容復(fù)制到下一個數(shù)據(jù)存儲器。65

MACDFF00h,0008h

;DP=6:0300h~037Fh;PM=0;CNF=1:;B0配置為程序存儲器

執(zhí)行前:數(shù)據(jù)存儲器(0308h)=0023h,(0309h)=0018h,程序存儲器(FF00h)=0004h,(TREG)=0045h,(PREG)=00458972h,(ACC)=0723EC41h執(zhí)行后:數(shù)據(jù)存儲器(0308h)=0023h(1)(ACC)=076975B3h,(2)(TREG)=0023h,(3)(PREG)=008Ch,(4)(0309h)=0023h,程序存儲器(FF00h)=0004h,6616.乘指令MPYT寄存器內(nèi)容和被尋址數(shù)據(jù)存儲器單元的內(nèi)容相乘,其結(jié)果轉(zhuǎn)入P寄存器中。若使用短立即數(shù)尋址,則T寄存器和帶符號的13位常數(shù)相乘,無論SXM為何值,短立即數(shù)總是靠右對齊并在相乘之前進(jìn)行符號擴(kuò)展。

MPY5

;(DP=4:0200h一027Fh)將數(shù)據(jù)存儲器單;元0205h的內(nèi)容和TREG寄存器中的內(nèi)容

;相乘,結(jié)果保存在PREG中

MPY*,AR2

;(ARP=1,ARl=040Dh)將數(shù)據(jù)存儲器;單元040Dh的內(nèi)容和TREG中的內(nèi)容

;相乘,結(jié)果保留在PREG中,指令執(zhí);行完后ARP=2

MPY#031h

;立即數(shù)0031h和TREG相乘,結(jié)果保存;在PREG中6717.重復(fù)執(zhí)行下一條指令RPT

若使用直接或間接尋址,則被尋址的數(shù)據(jù)存儲器單元中的值送入重復(fù)計(jì)數(shù)器(RPTC);若使用短立即數(shù)尋址,則8位立即數(shù)送入RPTC。緊接RPT后的那條指令被執(zhí)行n+1次,。

PRT#20

;執(zhí)行NOP指令21次

NOP6818.移位并存儲累加器高位指令SACHSACH指令將整個累加器復(fù)制到輸出移位寄存器中,然后全部32位數(shù)左移0~7位,再將移位后數(shù)值的高16位復(fù)制到數(shù)據(jù)存儲器。在移位時,低位填0,高位丟失,累加器內(nèi)容不變。

SACH10,1

;(DP=4:0200h~027Fh)將ACC的左移一位,;高16位存至數(shù)據(jù)存儲器單元020Ah中

SACH*+,AR2

;(ARP=1)將ACC的高16位存至ARl指向的數(shù)據(jù);存儲器單元,操作完成之后ARP=269

19.移位并存儲累加器低位指令SACLSACL指令將整個累加器復(fù)制到輸出移位寄存器中,然后全部32位數(shù)左移0-7位,再將移位后數(shù)值的低16位復(fù)制到數(shù)據(jù)存儲器。在移位時,低位填0,高位丟失,累加器內(nèi)容不變。

SACL10,1

;(DP=4;0200h~027Fh)將ACC的左;移一位,低16位存至數(shù)據(jù);存儲器單元20Ah中

SACL*+,AR2

;(ARP=1)將ACC的低16位存至ARl指;向的數(shù)據(jù)存儲器單元,;操作完成之后ARP=27020.存儲輔助寄存器指令SARSAR指令將指定的輔助寄存器(ARx)內(nèi)容存入指定的數(shù)據(jù)存儲器單元。在間接尋址方式中,當(dāng)SAR指令同時也要對當(dāng)前輔助寄存器內(nèi)容進(jìn)行修改時,SAR將在增、減輔助寄存器內(nèi)容前將輔助寄存器值存至數(shù)據(jù)存儲器。

SARAR0,30h

;(DP=6:0300h一037Fh)將AR0的;值存至數(shù)據(jù)存儲器單元0330h

SARAR0,*+

;將AR0的值存入輔助寄存器AR0指;向的數(shù)據(jù)存儲器單元,同時AR0

;的值增1

執(zhí)行前:ARP=0,AR0=0400h,(0400h)=0000h

執(zhí)行后:ARP=0,AR0=0401h,(0400h)=0400h7121.從當(dāng)前輔助寄存器中減去立即數(shù)指令SBRK

該SBRK指令從指定的輔助寄存器中減去8位立即數(shù)值,其結(jié)果替換原有的輔助寄存器中的內(nèi)容。減法在輔助寄存器算術(shù)單元(ARAU)中進(jìn)行,立即數(shù)值被作為8位正數(shù)處理。所有輔助寄存器的算術(shù)運(yùn)算都是無符號的。

SBRK#20h

執(zhí)行前:ARP=5,AR5=0050h,執(zhí)行后:ARP=5,AR5=0030h7222.設(shè)置控制位指令SETCSETC指令設(shè)置指定的控制位為1。LST指令也可用于裝載ST0和STl寄存器。指定的控制位為下述控制位之一:

C狀態(tài)寄存器STl的進(jìn)位位

CNF狀態(tài)寄存器STl的RAM配置控制位

INTM狀態(tài)寄存器ST0的中斷方式位

OVM狀態(tài)寄存器ST0的溢出方式位

SXM狀態(tài)寄存器STl的符號擴(kuò)展方式位

TC狀態(tài)寄存器STl的測試/控制標(biāo)志位

XF狀態(tài)寄

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論