第4章匯編語言程序設計基礎4.2數(shù)據(jù)傳送指令_第1頁
第4章匯編語言程序設計基礎4.2數(shù)據(jù)傳送指令_第2頁
第4章匯編語言程序設計基礎4.2數(shù)據(jù)傳送指令_第3頁
第4章匯編語言程序設計基礎4.2數(shù)據(jù)傳送指令_第4頁
第4章匯編語言程序設計基礎4.2數(shù)據(jù)傳送指令_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、新編電類專業(yè)計算機基礎4.2 數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令共28條,分為4類。 內(nèi)部數(shù)據(jù)傳送指令外部數(shù)據(jù)傳送指令堆棧操作指令數(shù)據(jù)交換指令目 錄 內(nèi)部數(shù)據(jù)傳送指令 堆棧操作指令 外部數(shù)據(jù)傳送指令 數(shù)據(jù)交換指令 內(nèi)部數(shù)據(jù)傳送指令數(shù)據(jù)傳送發(fā)生在片內(nèi),助記符為“MOV”,通用格式為: MOV, 改變 不變 類似“Copy” 而非“Cut” 傳送拷 貝 F盤(電影) E盤 內(nèi)部數(shù)據(jù)傳送指令z內(nèi)部數(shù)據(jù)傳送指令立即尋址傳送指令 寄存器尋址傳送指令 直接尋址傳送指令 寄存器間接尋址傳送 指令 共28條,根據(jù)尋址方式不同,分為4類。 立即尋址傳送指令指令中包含有立即數(shù)的為立即尋址傳送指令。 MOV, 立

2、即數(shù)不能被修改, 只能作源操作數(shù) 不同類型的傳送指令就是將立即數(shù)、直接地址、寄存器、 間接寄存器分別放于目的及源操作數(shù)進行排列組合 立即尋址傳送指令 指令格式 指令功能 機器碼 MOV A,#dataMOV Rn,#dataMOV Ri,#dataMOV direct,#data #data:8位立即數(shù); (A) data01110100, data Rn:工作寄存器R0R7; 周期 (Rn) dataRn與機器碼對應關系指令機器碼MOV R0,#data0111 1000MOV R1,#data0111 1001MOV R2,#data0111 1010MOV R6,#data0111 11

3、10MOV R7,#data0111 1111帶有工作寄存器R0R7的指令翻譯成機器碼都存在上述對應關系 規(guī)律性 立即尋址傳送指令 指令格式指令功能機器碼MOV A,#dataMOV Rn,#data周期MOV Ri,#dataMOV direct,#data #data:8位立即數(shù); (A) data01110100, data Rn:當前選中的R0R7; (Rn) data 01111rrr, data Ri:R0或R1; (Ri) data 0111011i, data范例MOV R0,#78HMOVR0,#55H R0 = 78H(地址值) 0111011001010101操作碼立即數(shù)

4、程序存儲器片內(nèi)RAM78HR0 01111000 01010101執(zhí)行過程: (78H) 55H 將立即數(shù)55H傳送到R0指定的地址單元78H。 找到地址 立即尋址傳送指令 指令格式指令功能機器碼MOV A,#dataMOV Rn,#data周期MOV Ri,#dataMOV direct,#data #data:8位立即數(shù); (A) data01110100, data Rn:當前選中的R0R7; (Rn) data01111rrr, data Ri:R0或R1; (Ri) data 0111011i, data direct:直接地址(片內(nèi)RAM或SFR)。 (direct) data 0

5、1110101, direct, data范例MOV P1,#55HSJMP0003H(P1) = 55H 原地跳轉(zhuǎn)0111010110010000操作碼直接地址程序存儲器01010101立即數(shù)執(zhí)行過程: SFR90H 01010101將立即數(shù)55H傳送到直接地址90H。 立即數(shù)尋址傳送指令 指令格式指令功能機器碼MOV A,#dataMOV Rn,#data周期MOV Ri,#dataMOV direct,#data #data:8位立即數(shù); (A) data01110100, data Rn:當前選中的R0R7; (Rn) data01111rrr, data Ri:R0或R1; (Ri)

6、 data 0111011i, data direct:直接地址(片內(nèi)RAM或SFR)。 (direct) data 01110101, direct, data1112 指令格式指令功能機器碼周期寄存器尋址傳送指令指令中包含有寄存器的為寄存器尋址傳送指令。 11MOV A,RnMOV Rn,A(A) (Rn)11101rrr (Rn) (A)11111rrr2MOV direct,Rn (direct) (Rn)10001rrr寄存器與累加器A間進行數(shù)據(jù)傳送 寄存器內(nèi)容傳送入直接地址范例MOVR0,#78HMOVP1,R0SJMP0004H將寄存器內(nèi)容78H傳送入直接地址90H。 R0 =

7、78H(90H) = (R0) = 78H原地跳轉(zhuǎn)執(zhí)行過程: 10001000操作碼程序存儲器10010000直接地址片內(nèi)RAMR0SFR90H0111100001111000直接尋址傳送指令 指令格式指令功能機器碼周期直接地址單元與累加器A間進行數(shù)據(jù)傳送指令中包含有直接地址的為直接尋址傳送指令。 MOV A,directMOV direct,A(A) (direct)11100101,direct(direct) (A)11110101,direct11MOV ,direct (Rn) (direct) 10101rrr,direct2MOV ,direct1 (direct2) (dire

8、ct1) 10000101 direct1,direct22MOV ,direct (Ri) data 1010011i,direct2直接地址單元中內(nèi)容傳送到寄存器、寄存器所指 地址單元、直接地址單元 RnRidirect2范例MOV20H,#0AAHMOVP1,20HSJMP0006H將直接地址單元20H中內(nèi)容送入直接地址單元90H中。 (20H) = AAH (90H) = (20H) = AAH 原地跳轉(zhuǎn) 執(zhí)行過程: 10000101操作碼程序存儲器 direct11001000090H20H片內(nèi)RAMSFR00100000direct21010101010101010寄存器間接尋址指

9、令 指令格式指令功能機器碼周期指令中包含有間接寄存器的為寄存器間接尋址傳送指令。 11MOV A,RiMOV Ri,A(A) (Ri)1110011i (Ri) (A)1111011i2MOV direct,Ri (direct) (Ri)1000011i, direct寄存器所指地址單元內(nèi)容與累加器A間進行數(shù)據(jù)傳送 寄存器所指地址單元內(nèi)容傳送入直接地址范例 將寄存器所指地址單元78H的內(nèi)容送入直接地址單元90H。 SFR 90H 01010101執(zhí)行過程: 10000110操作碼 程序存儲器 10010000直接地址 片內(nèi)RAM78HR0 MOVR0,#78HMOVR0,#55HMOVP1,

10、R001111000R0 = 78H(地址值)(R0) = (78H) = 55H(90H) = (R0) = 55H01010101目 錄 內(nèi)部數(shù)據(jù)傳送指令 堆棧操作指令 外部數(shù)據(jù)傳送指令 數(shù)據(jù)交換指令 外部數(shù)據(jù)傳送指令 用于片外RAM、ROM與單片機片內(nèi)存儲器間的數(shù)據(jù)傳送。 C:Code MOV MOVC MOVX X:External RAM 外部程序存儲器字節(jié)傳送指令16位數(shù)傳送指令外部RAM字節(jié)傳送指令外部數(shù)據(jù)傳送指令16位數(shù)傳送指令 指令格式指令功能機器碼周期2MOV DPTR,#data16 10010000data158, data70(DPH) data158(DPL) da

11、ta70唯一的16位傳送指令; 配合MOVC、MOVX指令實現(xiàn)外部數(shù)據(jù)傳送。 片外RAM、ROM 的地址 外部程序存儲器字節(jié)傳送指令 屬于變址尋址指令,專用于查表,稱為查表指令。 地址數(shù)據(jù)0040H55H0041H0AAH0042H0A0H0043H78H55H0AAH0A0H指令178H0040H0041H0043H0042H0000H程序存儲器程序存儲器中連續(xù) 存放的一段常數(shù) 地址數(shù)據(jù)對應的表格 表 抽象外部程序存儲器的字節(jié)傳送指令 指令格式指令功能機器碼周期 MOVC A,A+PC 10000011 2(PC) (PC) + 1 (A) (PC) + (A)MOVC A,A+DPTR (

12、A) (DPTR) + (A) 10010011 2 DPTR:表頭地址(基址),A:偏移量(變址); 范例MOVA,#dataMOVCDPTR,#0040HMOVCA,A+DPTR 程序存儲器中從地址0 x40H開始連續(xù)存放一串常數(shù),用MOVC A,A+DPTR指令查找任意數(shù)據(jù)。 取得表內(nèi)數(shù)據(jù) 取得16位表頭地址 偏移量data存入A 執(zhí)行過程偏移量為1PC偏移量為2、3 結(jié)果? ACC00H55H0AAH0A0H0111010078H0040H0041H0043H0042H1001001140HMOVC A,A+DPTR01H10010000MOV A,#01HMOV DPTR,#0040

13、H(DPH)(DPL)DPTR程序存儲器0040H0AAH取得表頭地址 表頭地址加偏移量 取得值 外部程序存儲器的字節(jié)傳送指令 指令格式指令功能機器碼周期 MOVC A,A+PC 10000011 2(PC) (PC) + 1 (A) (PC) + (A)MOVC A,A+DPTR (A) (DPTR) + (A) 10010011 2 DPTR:表頭地址(基址),A:偏移量(變址); PC:表頭地址(基址),A:偏移量(變址)。 范例MOVA,#dataMOVA,A+PC 程序存儲器中從地址0 x40H開始連續(xù)存放一串常數(shù),用 MOVC A,A+PC指令查找任意數(shù)據(jù)。 取得表中數(shù)據(jù) 偏移量d

14、ata存入A 外部程序存儲器的字節(jié)傳送指令 偏移量為5 PCACC 0A0H0111010078H0040H0041H0043H0042H05H10000011MOV A,#05H MOVC A,A+PC 程序存儲器 0AAH55H0AAHPC當前值 1234PC + 5 = 41H 5外部程序存儲器的字節(jié)傳送指令指令格式 特 點 執(zhí)行結(jié)果由A和PC決定,表格只能存放在查表指令后的256個單元內(nèi),表格大小受到限制,且只能被一段程序所利用 執(zhí)行結(jié)果由A和DPTR決定,表格的大小和位置可在64KB程序存儲器中任意安排,1個表格可由各個程序塊公用 MOVC A,A+PC MOVC A,A+DPTR

15、外部RAM的字節(jié)傳送指令 指令格式 指令功能 機器碼 周期 MOVX A,Ri (A) (Ri) 1110001i 2 MOVX Ri,A (Ri) (A) 1111001i 2 MOVX A,DPTR (A) (DPTR) 11100000 2 MOVX DPTR,A (DPTR) (A) 11110000 2 A與片外RAM中由Ri指示的地址單元中內(nèi)容數(shù)據(jù)傳送; A與片外RAM中由DPTR指示的地址單元內(nèi)容數(shù)據(jù)傳送。 寫外部RAM讀外部RAM 外部RAM的字節(jié)傳送指令指令格式 特 點 Ri為8位寄存器,尋片外RAM范圍為0000H00FFH DPTR為16位寄存器,尋片外RAM范圍為000

16、0HFFFFH MOVX A,RiMOVX Ri,AMOVX A,DPTRMOVX DPTR,A目 錄 內(nèi)部數(shù)據(jù)傳送指令 堆棧操作指令 外部數(shù)據(jù)傳送指令 數(shù)據(jù)交換指令 堆棧操作指令 指令格式指令功能機器碼周期 POP direct 11010000,direct 2(SP) (direct) (SP) (SP) 1 PUSH direct 11000000,direct 2(SP) (SP) + 1 (SP) (direct)入棧操作指令; PUSHaddrnaddr+3addr+2addraddr+1addr+4堆棧區(qū) data1data2data3data4SP第一步:(SP) = (SP

17、) + 1 第二步:(SP) (addrn) 數(shù)據(jù)處理 PUSH將DPH內(nèi)的內(nèi)容送入SPPUSH DPL PUSH DPH 將DPL內(nèi)的內(nèi)容送入SP 假設(SP) = 09H,DPTR = 0123H,執(zhí)行DPTR入棧操作。 SPSFRDPHDPL0BH堆棧區(qū)0AH09H執(zhí)行過程: 00000001 00100011 00100011 00000001中斷、子程序調(diào)用現(xiàn)場保護堆棧操作指令 指令格式指令功能機器碼周期 POP direct 11010000,direct 2 (SP) (direct) (SP) (SP) 1 PUSH direct 11000000,direct 2 (SP)

18、(SP) + 1 (SP) (direct)出棧操作指令; POPaddrnaddr+3addr+2addraddr+1addr+4堆棧區(qū)data4data1data2data3數(shù)據(jù)處理SP第二步:(SP) = (SP) 1 第一步:(addrn) (SP) POP將SP內(nèi)的內(nèi)容送入DPHPOPDPHPOPDPLPOPSP將SP內(nèi)的內(nèi)容送入DPL將SP內(nèi)的內(nèi)容送入SP 假設(SP) = 32H,片內(nèi)RAM的30H32H內(nèi)容分別為20H、23H、01H,執(zhí)行出棧操作。 SPSFRDPHDPLSP32H堆棧區(qū)0010000031H30H 00000001 00100011xxxxxxxx1FH執(zhí)行過程: 00000001 00100011 00100000中斷、子程序調(diào)用現(xiàn)場恢復 SP = 20H目 錄 內(nèi)部數(shù)據(jù)傳送指令 堆棧操作指令 外部數(shù)據(jù)傳送指令 數(shù)據(jù)交換指令 數(shù)據(jù)交換指令數(shù)據(jù)交換指令可實現(xiàn)兩個操作數(shù)之間進行直接交換。 XCH操作數(shù)1,操作數(shù)2 既可作源操作數(shù),又可作

溫馨提示

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

評論

0/150

提交評論