




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、.第第3章章 S12指令系統(tǒng)指令系統(tǒng).3.1 指令系統(tǒng)簡(jiǎn)介指令系統(tǒng)簡(jiǎn)介 豐富、強(qiáng)大、靈活,豐富、強(qiáng)大、靈活,16位處理,共位處理,共400多條。與硬件系統(tǒng)對(duì)應(yīng)。多條。與硬件系統(tǒng)對(duì)應(yīng)。 按功能分類:按功能分類: 數(shù)據(jù)傳送、算術(shù)運(yùn)算、邏輯運(yùn)算、數(shù)據(jù)傳送、算術(shù)運(yùn)算、邏輯運(yùn)算、位操作位操作、 移位、控制、特殊。移位、控制、特殊。 尋址方式多。尋址方式多。3.1.1 S12CPU的內(nèi)部寄存器的內(nèi)部寄存器 特點(diǎn):特點(diǎn):n默認(rèn)地址空間:默認(rèn)地址空間: $0000$03FF(1K),實(shí)際使用,實(shí)際使用512Bn除一般數(shù)據(jù)讀除一般數(shù)據(jù)讀/寫外,還可直接移位、置位、清零、位寫外,還可直接移位、置位、清零、位測(cè)試等
2、復(fù)雜操作測(cè)試等復(fù)雜操作n數(shù)據(jù)傳送速度較數(shù)據(jù)傳送速度較RAM快快.S12XCPU寄存器寄存器 n累加器累加器D 16位位=累加器累加器A(高高8位位)+累加器累加器B(低低8位位)。 常用于數(shù)據(jù)處理。常用于數(shù)據(jù)處理。n 變址寄存器變址寄存器X、Y 各各16位,常用于尋址操作。位,常用于尋址操作。n 堆棧指針寄存器堆棧指針寄存器SP( 16位)位) 指向堆棧區(qū)的頂部指向堆棧區(qū)的頂部 。 自動(dòng)處理自動(dòng)處理中斷、子程序返回地址。中斷、子程序返回地址。 參數(shù)傳遞,零時(shí)保存數(shù)據(jù)。初始化。參數(shù)傳遞,零時(shí)保存數(shù)據(jù)。初始化。n 程序計(jì)數(shù)器程序計(jì)數(shù)器PC 16位,程序運(yùn)行的地址指向位,程序運(yùn)行的地址指向下一條將下
3、一條將 要執(zhí)行的指令,要執(zhí)行的指令,可讀,不可寫可讀,不可寫 。 取指令后自動(dòng)增加。取指令后自動(dòng)增加。 .n 程序狀態(tài)寄存器程序狀態(tài)寄存器CCR 8位位 復(fù)位默認(rèn)值:復(fù)位默認(rèn)值:1101 0000BBit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0SXHINZVCn S-STOP指令禁止位。復(fù)位指令禁止位。復(fù)位1,1:禁止:禁止CPU執(zhí)行執(zhí)行STOPn X-非屏蔽中斷屏蔽位。復(fù)位非屏蔽中斷屏蔽位。復(fù)位1:屏蔽來自:屏蔽來自XIRQ引腳的中斷請(qǐng)求引腳的中斷請(qǐng)求n H-輔助進(jìn)位。輔助進(jìn)位。BCD操作時(shí)累加器操作時(shí)累加器A的低的低4位的進(jìn)位位的進(jìn)位n I-中斷屏蔽位。復(fù)位中斷屏蔽位。復(fù)
4、位1,1:屏蔽所有可屏蔽中斷源:屏蔽所有可屏蔽中斷源nN-符號(hào)位。當(dāng)指令運(yùn)算結(jié)果為負(fù)時(shí)置符號(hào)位。當(dāng)指令運(yùn)算結(jié)果為負(fù)時(shí)置1nZ-0標(biāo)志位。當(dāng)指令運(yùn)算結(jié)果為標(biāo)志位。當(dāng)指令運(yùn)算結(jié)果為0時(shí)置時(shí)置1nV-補(bǔ)碼溢出標(biāo)志位。當(dāng)指令運(yùn)算結(jié)果出現(xiàn)補(bǔ)碼溢出時(shí)置補(bǔ)碼溢出標(biāo)志位。當(dāng)指令運(yùn)算結(jié)果出現(xiàn)補(bǔ)碼溢出時(shí)置1nC-進(jìn)位標(biāo)志。當(dāng)加法運(yùn)算結(jié)果產(chǎn)生進(jìn)位(減法借位)時(shí)置進(jìn)位標(biāo)志。當(dāng)加法運(yùn)算結(jié)果產(chǎn)生進(jìn)位(減法借位)時(shí)置1.4.2 尋址方式尋址方式 尋址:尋找操作數(shù)地址的過程。尋址:尋找操作數(shù)地址的過程。有效地址有效地址(effective address):操作數(shù)所在的地址。:操作數(shù)所在的地址。尋址方式:通過確定操作數(shù)所在的
5、地址,提取操作數(shù)的方法。尋址方式:通過確定操作數(shù)所在的地址,提取操作數(shù)的方法。 S12有有7大種尋址方式:大種尋址方式:一一. 隱含尋址隱含尋址(INH) - 特點(diǎn)單字節(jié)指令特點(diǎn)單字節(jié)指令 如如 ROLA ;循環(huán)左移,操作數(shù)循環(huán)左移,操作數(shù)A隱含在指令中隱含在指令中 EDIV ;助記符中無寄存器名稱出現(xiàn)助記符中無寄存器名稱出現(xiàn) INCA ;加一,操作數(shù);加一,操作數(shù)A隱含在指令中隱含在指令中 有效地址包含在操作碼中,操作數(shù)是有效地址包含在操作碼中,操作數(shù)是CPU的寄存器。的寄存器。 操作碼操作碼 指令指令 操作操作 1 87 CLRA $00A 2 67 CLRB $00B.n立即尋址:指令的
6、操作數(shù)是一個(gè)立即尋址:指令的操作數(shù)是一個(gè)8位或位或16位二進(jìn)制數(shù);位二進(jìn)制數(shù);n指令中出現(xiàn)的操作數(shù)稱為立即數(shù);指令中出現(xiàn)的操作數(shù)稱為立即數(shù);n立即尋址常用來給寄存器賦值;立即尋址常用來給寄存器賦值;二二. 立即數(shù)尋址立即數(shù)尋址(IMM)如如 LDDA #$FF (將十六進(jìn)制數(shù)(將十六進(jìn)制數(shù)FF調(diào)入調(diào)入A中,中,#表示立即數(shù))表示立即數(shù)) 機(jī)器碼機(jī)器碼 指令指令 操作操作 1 86 0D LDAA#13 ; $0DA 2 CF 02FE LDS#$02FF ; $02FFSP 3 CE 12 34 LDX#$1234; $1234X 4 CD 00 67 LDY#$67 ; $0067Y 5 8
7、A 0B ORAA#%00001011 ; (A)$0BA .三三. 直接尋址直接尋址(DIR)- zero page addressing 地址范圍:地址范圍:$00 TO $FF = $0000 TO %00FF; CUP 自動(dòng)添加高自動(dòng)添加高8位為位為$00. 特點(diǎn):指令短、速度快。特點(diǎn):指令短、速度快。 機(jī)器碼機(jī)器碼 指令指令 操作操作 96 55 LDAA $55 ;($0055)A DC 20 LDX $20 ;($0020:$0021)X四四. 擴(kuò)展尋址擴(kuò)展尋址(EXT) 如如 LDAA $F03B (16位地址)位地址) LDAA #$F03B ? 機(jī)器碼機(jī)器碼 指令指令 操作
8、:操作:($0040)A 86 40 LDAA $40 ;直接尋址;直接尋址 B6 00 40 LDAA $0040 ;使用擴(kuò)展尋址;使用擴(kuò)展尋址.五五. 相對(duì)尋址相對(duì)尋址(REL) SHIFT: LDAA #$55 BRA SHIFT (相對(duì)地址跳轉(zhuǎn))(相對(duì)地址跳轉(zhuǎn)) 20 FE TRAP: BRA TRAP ;PC-2PC 程序利用轉(zhuǎn)移指令返回到指令首址,程序在該行落入程序利用轉(zhuǎn)移指令返回到指令首址,程序在該行落入陷阱,稱為陷阱,稱為“原地踏步原地踏步”。這是一種終止程序的普通。這是一種終止程序的普通方法,廣泛用于程序調(diào)試。方法,廣泛用于程序調(diào)試。.nn六六.變址尋址變址尋址 以某個(gè)寄存器
9、的內(nèi)容為基本地址,然后在這個(gè)基本地址上以某個(gè)寄存器的內(nèi)容為基本地址,然后在這個(gè)基本地址上加上地址偏移量,形成操作數(shù)地址或存放操作數(shù)地址的地址,加上地址偏移量,形成操作數(shù)地址或存放操作數(shù)地址的地址,并將這個(gè)地址單元的內(nèi)容作為指令的操作數(shù)。并將這個(gè)地址單元的內(nèi)容作為指令的操作數(shù)。.1.變址方式一般形成過程:變址方式一般形成過程: 操作數(shù)地址操作數(shù)地址= 偏移量偏移量 + 寄存器的內(nèi)容寄存器的內(nèi)容 (16位)位)2.偏移量定義范圍:偏移量定義范圍: 3 位正數(shù)位正數(shù) 1 - 8 ; 不含不含0 5 位數(shù)位數(shù) -16 - 15 9 位數(shù)位數(shù) -256 - 255 16位數(shù)位數(shù) -32768 - 327
10、67 累加寄存器內(nèi)容累加寄存器內(nèi)容A、B、D作為偏移量作為偏移量3.寄存器定義范圍:寄存器定義范圍: X 、Y、SP 、PC : 5、9、16累加器的偏移量累加器的偏移量 X、Y、SP : 3 位正數(shù)位正數(shù) 1 - 8 3.1 操作數(shù)地址操作數(shù)地址 = 偏移量偏移量 + a ) 類寄存器集合類寄存器集合 .地址地址 指令指令 操作數(shù)操作數(shù)C008 LDDA 1 , X ; 2字節(jié)字節(jié) 5位偏移量位偏移量C00A LDDA 15 , X ;2字節(jié)字節(jié) 5位偏移量位偏移量C00C LDAA 255 , X ;3字節(jié)字節(jié) 9位偏移量位偏移量C00F LDAA 0 , X ;2 5位偏移量位偏移量C0
11、11 LDAA 32767 , X ;4 16位偏移量位偏移量C015 LDAA A , X ;2 累加器偏移量累加器偏移量 C017 - 偏移量在指令中偏移量在指令中 IDX , 2字節(jié)指令。字節(jié)指令。 偏移量多偏移量多1個(gè)字節(jié)個(gè)字節(jié) IDX1, 3字節(jié)指令。字節(jié)指令。 偏移量多偏移量多2個(gè)字節(jié)個(gè)字節(jié) IDX2, 4字節(jié)指令。字節(jié)指令。 LDAA , X ;無偏移量;無偏移量 , 指令為指令為2B IDX ,等效指令等效指令 LDAA 0, X ;無偏移量;無偏移量 , 指令為指令為2B IDX ,等效指令等效指令 LDAA X ;無偏移量;無偏移量 , 指令為指令為2B IDX ,等效指令
12、等效指令 LDDA 7 , X ; 偏移量偏移量 = 5位位 ,2B IDX LDAA -150 , X ; 偏移量偏移量 = 9位位 ,3B IDX1 LDAA 10000, X ; 偏移量偏移量 = 16位位 ,4B IDX2.v語法:語法: operation , r ;無偏移;無偏移 operation 0 , r ;無偏移;無偏移 operation n , r ;正常數(shù)偏移量;正常數(shù)偏移量 operation -n, r ;負(fù)常數(shù)偏移量;負(fù)常數(shù)偏移量 r是變址寄存器是變址寄存器(IX,IY,SP,PC),n/-n是帶符號(hào)偏移量是帶符號(hào)偏移量(5位、位、9位、位、16位位)。. 3.
13、2 操作數(shù)地址 = 偏移量 + b)類寄存器集合 帶指針自動(dòng)調(diào)整功能的變址尋址(IDX) 調(diào)整范圍在調(diào)整范圍在1- 8正數(shù)正數(shù) ,寄存器:寄存器:X、Y、S 。 MOVW 2, X+ , 4 ,+Y STAA 1 , -SP STX 2 , -SP LDX 2 , SP+ LDAA 1 , SP+ 問題:下列指令屬于哪一類偏移量? LDAA 3 ,X ; LDAA 3 ,X+ ; 5位偏移量 -16 - 15 ; 3位 1-8偏移量.4. IDX 類變址尋址方法總結(jié):類變址尋址方法總結(jié): 偏移量或偏移量寄存器隱含在指令中,共有偏移量或偏移量寄存器隱含在指令中,共有3種對(duì)應(yīng)變址方法:種對(duì)應(yīng)變址方
14、法:n 偏移量偏移量1 8正數(shù)正數(shù), xyp 和和 1 8 正數(shù)正數(shù) ,xyp 。 INST oprx3 ,- xys INST oprx3 , +xys INST oprx3 , xys- INST oprx3 , xys+n 5位偏移量位偏移量 -16 - 15 , 變址寄存器變址寄存器xysp INST oprx5 , xyspn 寄存器偏移量寄存器偏移量A,B,D ,變址寄存器,變址寄存器 xysp INST abd ,xysp注:注:FREESCALE資料中,上述偏移量統(tǒng)一表示為資料中,上述偏移量統(tǒng)一表示為oprx0_xysp .5.間接指針尋址間接指針尋址INST OPRX16,X
15、YSPn間接間接16位常數(shù)偏移量變址尋址位常數(shù)偏移量變址尋址 IDX2.例:設(shè)指令執(zhí)行前例:設(shè)指令執(zhí)行前X = $1000,($100A) = $20,($100B) = $00,($2000) = $3A,($2001) = $1F。比較以下兩條指令的。比較以下兩條指令的執(zhí)行情況:執(zhí)行情況: LDAA $0A,X ;(X)+$0A)A ( X) + $0A = $1000 + $0A = $100A ($100A) = $20 A = $20 LDAA $0A,X ;(X)+$0A)A ( X) + $0A = $1000 + $0A = $100A ($100A) = $2000 ($20
16、00) = $3A A= $3A.INST D,XYSPn間接間接D變址尋址變址尋址 D、IDX偏移量范圍從偏移量范圍從-32768到到+32767. INC $1000 ;EXT INC 3,X+ ;IDX 1 - 8 INC 3,X ;IDX -16 - 15 INC D,X ;IDX INC 255 ,X ;IDX1 INC $1000,X ;IDX2 16偏移量偏移量 INC $1000,X ;IDX2 INC D,X ;D,IDX6.內(nèi)存地址加一指令尋址方法內(nèi)存地址加一指令尋址方法.4.3常用基本指令常用基本指令 4.3.1 傳輸類指令傳輸類指令 1.寄存器加載指令寄存器加載指令 L
17、OADn 功能:將功能:將內(nèi)存內(nèi)存數(shù)據(jù)加載到數(shù)據(jù)加載到寄存器寄存器n 源操作數(shù)內(nèi)容不變。源操作數(shù)內(nèi)容不變。n 支持尋址方式:支持尋址方式: IMM 、DIR、EXT、IDX、IDX1、IDX2、IDX2 、D,IDX。 不支持不支持 INH 、REL 尋址。尋址。n 對(duì)對(duì)CCR 影響:影響: V =0, N ,Z ,與,與C 無關(guān)。無關(guān)。 列:列:LDAA #$01 LDAA $01 LDAA $0001 如果內(nèi)存如果內(nèi)存 ( 0008)= 8F、(0009) = 00 , LDD $08 寄存器寄存器: A = 8F ,B = 00 。n M:M+1 M低地址低地址 , M+1高地址高地址
18、(M)()( M+1).寄存器加載指令列表寄存器加載指令列表. STX Y ;X寫入寫入Y指向數(shù)據(jù)地址指向數(shù)據(jù)地址 STX , Y ;等同上一條命令;等同上一條命令 STAB, ; STD$2000 ;2000 (A) 2001=(B) ;地址向高地址發(fā)展。;地址向高地址發(fā)展。寄存器存儲(chǔ)指令寄存器存儲(chǔ)指令STOREn功能:功能:累加器或寄存器內(nèi)容寫入內(nèi)存單元累加器或寄存器內(nèi)容寫入內(nèi)存單元。 源操作數(shù)不發(fā)生變化。源操作數(shù)不發(fā)生變化。n源操作數(shù)源操作數(shù) A、B、D、X、Y、SPn尋址方式:尋址方式: DIR、EXT、 IDX、IDX1、IDX2 、 IDX2 、 D,IDX nCCR: N ,Z,
19、V=0 ,與,與C無關(guān)無關(guān).寄存器存儲(chǔ)指令列表寄存器存儲(chǔ)指令列表.3.寄存器傳送指令寄存器傳送指令 (TAB TBA TFR 以外指令是以外指令是8位機(jī)兼容指令位機(jī)兼容指令)16位寄存器內(nèi)容傳到位寄存器內(nèi)容傳到8位時(shí),位時(shí), 低低8位內(nèi)容裝入位內(nèi)容裝入8位寄存器;位寄存器;8位寄存器內(nèi)容傳到位寄存器內(nèi)容傳到16位時(shí),位時(shí), 8位寄存器內(nèi)容裝入低位寄存器內(nèi)容裝入低8位,位, 并符號(hào)擴(kuò)展并符號(hào)擴(kuò)展. 寄存器傳送指令特點(diǎn):寄存器傳送指令特點(diǎn):n 傳到傳到CCR ,X不會(huì)發(fā)生不會(huì)發(fā)生0 到到 1 變化,即不能置位;變化,即不能置位;n TFR指令(除傳到指令(除傳到CCR以外)不會(huì)影響以外)不會(huì)影響C
20、CR的標(biāo)志。的標(biāo)志。n 注意:注意:TAB TBA 對(duì)對(duì)CCR影響同影響同LOAD ,STORE。n 所有指令在編譯后,所有指令在編譯后, 實(shí)際上隱含尋址方式。實(shí)際上隱含尋址方式。 列:列: TFR A , Y ; A=$0F , Y = $000F TFR X , B ; X=$0FEE , B = $EE TFR A , CCR .4.寄存器交換指令寄存器交換指令 EXG nEXG A/B/CC R , X/Y/SP ; 8位與位與16位交換位交換 X = $00:A/B/CCRnEXG X/Y/SP , A/B/CCR ; 16位與位與8位交換位交換 X = $00:A ;X = $FF
21、 : B/CCRn 源寄存器不同,結(jié)果不同!源寄存器不同,結(jié)果不同!n對(duì)對(duì)CCR沒有影響沒有影響 。EXG A,BEXG X,YEXG B,XEXG X,BEXG X,A注意:注意:EXG 編譯后是隱含尋址方式。建議一般不使用不編譯后是隱含尋址方式。建議一般不使用不匹配長(zhǎng)度寄存器之間的交換指令匹配長(zhǎng)度寄存器之間的交換指令.5.內(nèi)存數(shù)據(jù)傳送指令內(nèi)存數(shù)據(jù)傳送指令n功能:功能:內(nèi)存到內(nèi)存內(nèi)存到內(nèi)存的數(shù)據(jù)傳送。源操作數(shù)內(nèi)容不變化。的數(shù)據(jù)傳送。源操作數(shù)內(nèi)容不變化。n支持尋址方式:支持尋址方式:IMM -EXT ,IMM -IDX ,EXT-EXT EXT - IDX , IDX-EXT , IDX-ID
22、Xn不影響標(biāo)志位不影響標(biāo)志位;唯一不與寄存器發(fā)生關(guān)系的傳送指令;唯一不與寄存器發(fā)生關(guān)系的傳送指令;nIMM 尋址可以用于初始化內(nèi)存塊;尋址可以用于初始化內(nèi)存塊;列:列:MOVB $2000 , X MOVB $80 , 8 , Y ;(Y+8)=($0080) MOVW #$1234 ,1,Y+ ;(Y) = $12 , (Y+1)=$34 MOVW 2,X+ , 4,Y+ ; (Y)=(X),(Y+1)=(X+1) MOVB #12 , $0001 ; .6.堆棧操作指令進(jìn)堆棧先減,再存儲(chǔ)數(shù)據(jù);出堆棧先保存數(shù)據(jù),再加進(jìn)堆棧先減,再存儲(chǔ)數(shù)據(jù);出堆棧先保存數(shù)據(jù),再加。PSHX = STX 2,-
23、SPPULX = LDX 2,SP+.n堆棧操著指令堆棧操著指令尋址方式尋址方式SP 間接尋址。間接尋址。不影響不影響CCR,除除CCR相關(guān)彈出指令外。相關(guān)彈出指令外。隱含尋址。隱含尋址。 用途:參數(shù)傳遞。用途:參數(shù)傳遞。一種數(shù)據(jù)結(jié)構(gòu)。一種數(shù)據(jù)結(jié)構(gòu)。特點(diǎn):1、各寄存器都可以入棧、出棧2、可以做8位、16位操作3、入棧時(shí)SP-1(2),出棧時(shí)SP+1(2).CPS $1000DES INSLDS $2000LEAS 4, XSTS , XTSX TSYTXSTYSn堆棧指針指令堆棧指針指令.7.有效地址加載指令n功能:將尋址模式的有效地址加載到寄存器功能:將尋址模式的有效地址加載到寄存器n特點(diǎn):
24、不影響特點(diǎn):不影響 CCRn支持尋址方式:支持尋址方式: IDX IDX1 IDX2,不支持間址方式不支持間址方式列:列:LDY #$2000 LEAS 4,Y+ ; SP=$2000, Y=2004 LDS 4,Y+ ; SP = (Y) LEAX B,Y ; X = B+Y LDX B,Y ; X = (B+X) .4.3.2運(yùn)算類指令特點(diǎn)特點(diǎn):所有加減指令結(jié)果都存放在寄存器所有加減指令結(jié)果都存放在寄存器R R 的加減法,尋址方式的隱含,沒有帶借進(jìn)位的加減法,尋址方式的隱含,沒有帶借進(jìn)位. ABX 和和 ABY 不影響不影響CCR.ABX = LEAX B , X ; ABY = LEAY
25、 B , XR-M 加減法尋址方法8種:IMM、DIR、EXT、IDX、IDX1、IDX2、IDX2 、D,IDX .2.加減加減1指令指令特點(diǎn)特點(diǎn)1:不影響借進(jìn)位。方便循環(huán)控制:不影響借進(jìn)位。方便循環(huán)控制特點(diǎn)特點(diǎn)2:對(duì)寄存器對(duì)寄存器 X、Y的增減,僅影響的增減,僅影響Z位位其它指令影響其它指令影響 :N,Z,VINS ,DES 指令指令 不影響不影響 CCR 特點(diǎn)特點(diǎn)3:SP的操作編譯自動(dòng)轉(zhuǎn)變位的操作編譯自動(dòng)轉(zhuǎn)變位LEAS指令指令列:列: INS - LEAS 1, SP對(duì)A、B、X、Y寄存器操作,效率高,指令僅1字節(jié)長(zhǎng).3.比較測(cè)試指令比較測(cè)試指令特點(diǎn):比較指令對(duì)同等長(zhǎng)度的數(shù)據(jù)進(jìn)行比較;特
26、點(diǎn):比較指令對(duì)同等長(zhǎng)度的數(shù)據(jù)進(jìn)行比較; 不改變操作數(shù)的內(nèi)容。不改變操作數(shù)的內(nèi)容。尋址:尋址:IMM、DIR、EXT、IDX、IDX1、IDX2、IDX2 、D,IDX A,B 比較隱含尋址比較隱含尋址 影響:影響: C、V、N、Z 列:列: CMPA #$30 , CPD 5,Y n測(cè)試指令用于測(cè)試內(nèi)存、寄存器是否為測(cè)試指令用于測(cè)試內(nèi)存、寄存器是否為$00;n不改變操作數(shù)的內(nèi)容不改變操作數(shù)的內(nèi)容,測(cè)試單位是字節(jié);測(cè)試單位是字節(jié);n V ,C位始終清零;影響位始終清零;影響 N ,Z;n尋址:尋址:EXT、IDX、IDX1、IDX2、IDX2 、D,IDX n無:無: IMM . DIR 列:
27、TST $1000 .4.求補(bǔ)運(yùn)算指令求補(bǔ)運(yùn)算指令n功能:求出寄存器或內(nèi)存單元的補(bǔ)碼值;功能:求出寄存器或內(nèi)存單元的補(bǔ)碼值;n支持:支持:EXT、IDX、IDX1、IDX2、IDX2 、D,IDXnCCR: N、Z、V、Cn對(duì)內(nèi)存操作是按字節(jié)長(zhǎng)度操作對(duì)內(nèi)存操作是按字節(jié)長(zhǎng)度操作問題:?jiǎn)栴}: LDAA #$80 NEGA 答案:答案: A=$80 v=1 . 對(duì)于一位十進(jìn)制加法,每位數(shù)變化范圍對(duì)于一位十進(jìn)制加法,每位數(shù)變化范圍09 。 對(duì)應(yīng)的加法結(jié)果是對(duì)應(yīng)的加法結(jié)果是0到到18。 BCD碼:用碼:用4位二進(jìn)制碼表示一位十進(jìn)制數(shù)位二進(jìn)制碼表示一位十進(jìn)制數(shù) 比如:比如: %0100 - 4 , %10
28、00 -8 對(duì)于兩個(gè)對(duì)于兩個(gè) 0110 0000 0000 0000 0.0110 0000 0000 0000- 1/4 +1/8 = 0.375注意:是無符號(hào)數(shù)的除法!注意:是無符號(hào)數(shù)的除法!.例例:分別用無符號(hào)和有符號(hào)乘法指令計(jì)算分別用無符號(hào)和有符號(hào)乘法指令計(jì)算$8000 $4000LDD#$8000 ;32768LDY#$4000 ;16384EMUL ;Y=$2000,D=$0000,按無符號(hào)數(shù)運(yùn)算,按無符號(hào)數(shù)運(yùn)算 32768 16384=536870912=$20000000LDD#$8000 ;-32768LDY#$4000 ;+16384EMULS ;Y=$E000,D=$00
29、00,按有符號(hào)數(shù)運(yùn)算,按有符號(hào)數(shù)運(yùn)算 -32768 16384=-536870912=$E0000000 EMUL和EMULS指令的區(qū)別在于,EMULS指令的結(jié)果用補(bǔ)碼表示.【例例】計(jì)算計(jì)算$4000$407F單元所有字節(jié)數(shù)據(jù)的平方,并把計(jì)算結(jié)果存放在單元所有字節(jié)數(shù)據(jù)的平方,并把計(jì)算結(jié)果存放在$4080開始的單元中,按字方式存儲(chǔ)。開始的單元中,按字方式存儲(chǔ)。ORG$8000MAIN: LDS #$0800;定義堆棧;定義堆棧 LDX#$4000;初始化數(shù)據(jù)塊指針;初始化數(shù)據(jù)塊指針 LDY#$4080;LOOP1: JSR SQUARE;求平方循環(huán);求平方循環(huán) INX;指向下一個(gè)數(shù)據(jù);指向下一個(gè)
30、數(shù)據(jù) CPX #$4080;所有數(shù)據(jù)的平方是否計(jì)算完畢?;所有數(shù)據(jù)的平方是否計(jì)算完畢? BNELOOP1;未完,循環(huán);未完,循環(huán)HERE: BRAHERE;原地踏步;原地踏步SQUARE : LDAA$00, X;(X)A,取,取1個(gè)數(shù)據(jù)個(gè)數(shù)據(jù) TAB;(A) B MUL;計(jì)算數(shù)據(jù)的平方;計(jì)算數(shù)據(jù)的平方 STD $02, Y+;保存結(jié)果;保存結(jié)果 RTS.4.3.3邏輯指令邏輯指令寄存器寄存器CCR只有立即數(shù)尋址方式且無異或操作只有立即數(shù)尋址方式且無異或操作.特點(diǎn):特點(diǎn):A、B、CCR 、X、Y與與 立即數(shù)、或內(nèi)存邏輯操立即數(shù)、或內(nèi)存邏輯操作,結(jié)構(gòu)放于作,結(jié)構(gòu)放于寄存器;寄存器;用途:寄存器清
31、零某位或置位某位用途:寄存器清零某位或置位某位,測(cè)試內(nèi)存數(shù)據(jù)。測(cè)試內(nèi)存數(shù)據(jù)。CCR影響:影響:V=0, .2.清零和取反指令清零和取反指令清零指令執(zhí)行后,清零指令執(zhí)行后, CCR : Z=1, N=0,V=0,C=0取反指令執(zhí)行后,取反指令執(zhí)行后, CCR : V=0,C=1.3.位操作和位檢測(cè)指令位操作和位檢測(cè)指令A(yù)NDA #opr8BITA #opr8A #opr8 AA #opr8BCLR:將屏蔽碼為將屏蔽碼為1的對(duì)應(yīng)位清的對(duì)應(yīng)位清0,操作對(duì)象僅內(nèi)存操作對(duì)象僅內(nèi)存;BSET:將屏蔽碼為將屏蔽碼為1的對(duì)應(yīng)位置的對(duì)應(yīng)位置1,操作對(duì)象僅內(nèi)存操作對(duì)象僅內(nèi)存;列:列:BCLR $2000 , #$
32、81 ;最高最低位清零;最高最低位清零 BSET $55 , #$80 ;最高位置;最高位置 1 TST 、 AND 、BIT 、BCLR BSET 區(qū)別:區(qū)別:TST 對(duì)象內(nèi)存、寄存器,是否為對(duì)象內(nèi)存、寄存器,是否為0,操作數(shù)內(nèi)容不變,強(qiáng)調(diào)數(shù);,操作數(shù)內(nèi)容不變,強(qiáng)調(diào)數(shù);AND 對(duì)象內(nèi)存和寄存器,操作數(shù)內(nèi)容變化;強(qiáng)調(diào)位!對(duì)象內(nèi)存和寄存器,操作數(shù)內(nèi)容變化;強(qiáng)調(diào)位! BIT 對(duì)象內(nèi)存和寄存器,操作數(shù)內(nèi)容部不變,強(qiáng)調(diào)位!對(duì)象內(nèi)存和寄存器,操作數(shù)內(nèi)容部不變,強(qiáng)調(diào)位!BCLR、BSET位操作指令位操作指令 對(duì)象僅內(nèi)存對(duì)象僅內(nèi)存 ,操作數(shù)內(nèi)容變化。,操作數(shù)內(nèi)容變化。.4.移位指令移位指令n邏輯移位、循環(huán)移
33、位:控制操作邏輯移位、循環(huán)移位:控制操作n算術(shù)移位算術(shù)移位 :快速乘法,除法。:快速乘法,除法。協(xié)助記憶:n 算術(shù):Arithmeticn 邏輯:Logicn 左:Leftn 右:Rightn 循環(huán):Rotate 算術(shù)左移(算術(shù)左移(ASL) 邏輯左移(邏輯左移(LSL) 算術(shù)右移(算術(shù)右移(ASR) 邏輯右移(邏輯右移(LSR) 循環(huán)左移(循環(huán)左移(ROL) 循環(huán)右移(循環(huán)右移(ROR).【例例】閱讀該程序段。程序運(yùn)行前,(閱讀該程序段。程序運(yùn)行前,($3800)$36。ORG$B000;程序起始地址;程序起始地址LDX #$3800;數(shù)據(jù)地址;數(shù)據(jù)地址LDAB0, X;(X)B TFRB,
34、 A; ANDA#$0F;屏蔽高;屏蔽高8位位STAA 1, X;(A) (X)+1=$3801LSRB;右移;右移1次次LSRB;LSRB;LSRB;STAB0, X;HERE: BRA HERE;原地踏步;原地踏步程序功能程序功能: 將地址將地址$3800存放的壓縮存放的壓縮BCD碼解壓縮,存放在碼解壓縮,存放在$3800:$3801單單元中,高位在低地址單元。元中,高位在低地址單元。程序執(zhí)行后:(程序執(zhí)行后:($3800)$03,(,($3801)$06,A$06,B$03。.4.3.4 程序控制類指令程序控制類指令1.無條件轉(zhuǎn)移指令無條件轉(zhuǎn)移指令JMP , LBRA ,BRA.2.短分
35、支跳轉(zhuǎn)指令短分支跳轉(zhuǎn)指令.2.短分支跳轉(zhuǎn)指令短分支跳轉(zhuǎn)指令 功能:在當(dāng)前功能:在當(dāng)前PC的值加上一個(gè)的值加上一個(gè)8位帶符號(hào)數(shù)的偏移量,位帶符號(hào)數(shù)的偏移量,即跳轉(zhuǎn)范圍:即跳轉(zhuǎn)范圍:128 127. 無符號(hào) 有符號(hào)$88 = 136 , -120CMPA #$88 ;136BHI L1.CMPA #$88 ;-120BGT L2. 注意:注意:n 1、只作檢測(cè),滿足條件轉(zhuǎn)移,不影響標(biāo)志位、只作檢測(cè),滿足條件轉(zhuǎn)移,不影響標(biāo)志位n 2、結(jié)果不回傳、結(jié)果不回傳n 例:例:BRCLR $20, #$81, LP1n BRSET $20, #$81, LP2 位條件轉(zhuǎn)移指令位條件轉(zhuǎn)移指令.3.長(zhǎng)分支跳轉(zhuǎn)指令長(zhǎng)分支跳轉(zhuǎn)指令 功能:在當(dāng)前功能:在當(dāng)前PC的值加上一個(gè)的值加上一個(gè)16位帶符號(hào)數(shù)的偏移量,位帶符號(hào)數(shù)的偏移量,即跳轉(zhuǎn)范圍:即跳轉(zhuǎn)范圍:32768 32767.4.循環(huán)控制指令特點(diǎn):特點(diǎn):1、不影響、不依賴標(biāo)志位、不影響、不依賴標(biāo)志位 2、轉(zhuǎn)移范圍是、轉(zhuǎn)移范圍是 256 2554字節(jié)數(shù)加法程序:字節(jié)數(shù)加法程序:ADD: LDX #$0B00 ;加數(shù)起始地址加數(shù)起始地址 LEAY 4, X ;被加數(shù)地址;被加數(shù)地址
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司讀書會(huì)策劃方案
- 公司租車活動(dòng)方案
- 公司文娛游戲活動(dòng)方案
- 公司新人培養(yǎng)活動(dòng)方案
- 公司福利房活動(dòng)方案
- 公司生日小活動(dòng)方案
- 公司組織電影活動(dòng)方案
- 公司改善之星活動(dòng)方案
- 公司新年patty活動(dòng)方案
- 公司紀(jì)念活動(dòng)方案
- 信息系統(tǒng)的使用與維護(hù)管理制度
- 常州保安證考試題及答案
- 《合理用藥安全教育》課件
- 稽留流產(chǎn)治療
- NES-3000 ECDIS電子海圖顯示與信息系統(tǒng)操作手冊(cè)
- 2025年上半年內(nèi)蒙古包頭市市直事業(yè)單位招考易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 雪亮工程可行性研究報(bào)告
- 2025年度人工智能產(chǎn)業(yè)投資基金入股協(xié)議4篇
- 聚脲涂料施工方案
- T-CCIASD 10012-2024 ISO 標(biāo)準(zhǔn)集裝箱用水性涂料
- 激越管理的22項(xiàng)建議(精神科患者激越的評(píng)估和管理)
評(píng)論
0/150
提交評(píng)論