freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第3章mcs-51的指令系統(tǒng)-資料下載頁

2024-10-17 13:16本頁面

【導(dǎo)讀】介紹MCS-51匯編語言的指令系統(tǒng)。雙字節(jié)指令45條;12MHz晶振:機(jī)器周期為1?兩部分組成,即操作碼和操作數(shù)。有單字節(jié)指令、雙字節(jié)指令、三字節(jié)不同長度的指令,作數(shù)同在一個(gè)字節(jié)中。其中操作數(shù)既可能是數(shù)據(jù),也可能是地址。共7種尋址方式。4組通用工作寄存區(qū)共32個(gè)工作寄存器。還可用寄存器符號的形式給出。MOVA,80H與MOVA,P0是等價(jià)的。能采用R0或R1作為間址寄存器。其中Ri中的內(nèi)容為40H,把內(nèi)部RAM40H單元內(nèi)容送A。作為變址寄存器。尋址范圍可達(dá)到64KB。是把位40H的值送到進(jìn)位位C。位有兩種表示方法,例如,的是28H單元中的最低位。例如:F0標(biāo)志位,可使。偏移量rel是一帶符號的8位二進(jìn)制數(shù)補(bǔ)碼數(shù)。7種尋址方式及尋址空間,見表3-1。Rn當(dāng)前寄存器區(qū)的8個(gè)工作寄存器R0~R7。#data16包含在指令中的16位立即數(shù)。DPTR數(shù)據(jù)指針,可用作16位的數(shù)據(jù)地址寄存器。bit內(nèi)部RAM或特殊功能寄存器中的直接尋址位。C(或Cy)進(jìn)位標(biāo)志位或位處理機(jī)中的累加器?!^右邊的內(nèi)容被箭頭左邊的內(nèi)容所取代。

  

【正文】 ( A) =90H,( R3) =73H 執(zhí)行指令: XRL A,R3 結(jié)果:( A) =E3H 控制轉(zhuǎn)移類指令 1. 無條件轉(zhuǎn)移指令 AJMP addrll 2K字節(jié)范圍內(nèi) 的無條件跳轉(zhuǎn)指令, 64K程序存儲器空間分為 32個(gè)區(qū),每區(qū) 2K字節(jié), 轉(zhuǎn)移的目標(biāo)地址必須與 AJMP下一條指令的地址的高 5位地址碼A15~A11相同。 執(zhí)行指令時(shí),先 PC加 2,然后把 addrll送入 ~, ~ ,程序轉(zhuǎn)移到目標(biāo)地址。 本指令是為能與 MCS48的 JMP指令兼容而設(shè)的。 2. 相對轉(zhuǎn)移指令 SJMP rel 實(shí)現(xiàn)的程序轉(zhuǎn)移是雙向的。 在編寫程序時(shí),直接寫上要轉(zhuǎn)向的目標(biāo)地址標(biāo)號就可以。 例如: LOOP: MOV A, R6 ┇ SJMP LOOP ┇ 程序在匯編時(shí) , 由匯編程序自動計(jì)算和填入偏移量 。 手工匯編時(shí),偏移量 rel的值則需程序設(shè)計(jì)人員計(jì)算。 3. 長跳轉(zhuǎn)指令 LJMP addr16 指令執(zhí)行時(shí)把指令的第二和第三字節(jié)分別裝入 PC的高位和低位字節(jié)中 , 無條件地轉(zhuǎn)向 addr16指出的目標(biāo)地址 。目標(biāo)地址可以在 64K程序存儲器地址空間的任何位置 。 4. 間接跳轉(zhuǎn)指令 JMP @A+DPTR 由 A中 8位無符號數(shù)與 DPTR的 16位數(shù)內(nèi)容之和來確定 。以 DPTR內(nèi)容作為基址 , A的內(nèi)容作變址 。 給 A賦予不同的值 , 即可實(shí)現(xiàn)程序的多分支轉(zhuǎn)移 。 5.條件轉(zhuǎn)移指令 規(guī)定的條件滿足,則進(jìn)行轉(zhuǎn)移,條件不滿足則順序執(zhí)行下一條指令。 當(dāng)條件滿足時(shí),把 PC裝入下一條指令的第一個(gè)字節(jié)地址,再把帶符號的相對偏移量 rel加到 PC上,計(jì)算出目標(biāo)地址。 JZ rel ;如果累加器為 “ 0”,則轉(zhuǎn)移 JNZ rel ;如果累加器非 “ 0”, 則轉(zhuǎn)移 6. 比較不相等轉(zhuǎn)移指令 CJNE A,direct,rel CJNE A,data,rel CJNE Rn,data,rel CJNE @Ri,data,rel 比較前面兩個(gè)操作數(shù)的大小,如果它們的值不相等則轉(zhuǎn)移。 如果第一操作數(shù)(無符號整數(shù))小于第二操作數(shù)(無符號整數(shù)),則置進(jìn)位標(biāo)志位 Cy,否則清 “ 0”Cy。 7. 減 1不為 0轉(zhuǎn)移指令 這是一組把減 1與條件轉(zhuǎn)移兩種功能結(jié)合在一起的指令 。 共兩條指令: DJNZ Rn,rel 。n=0~ 7 DJNZ direct,rel 將源操作數(shù)( Rn或 direct)減 1,結(jié)果回送到 Rn寄存器或 direct中去。如果結(jié)果不為 0則轉(zhuǎn)移。允許程序員把寄存器 Rn或內(nèi)部 RAM的 direct單元用作程序 循環(huán)計(jì)數(shù)器。主要用于控制程序循環(huán)。以減 1后是否為 “ 0”作為轉(zhuǎn)移條件,即可實(shí)現(xiàn)按次數(shù)控制循環(huán)。 8.調(diào)用子程序指令 (1)短調(diào)用指令 ACALL addrll 與 AJMP指令相類似 , 是為了與 MCS48中的 CALL指令兼容而設(shè)的 。 (2)長調(diào)用指令 LCALL addr16 9. 子程序的返回指令 RET 執(zhí)行本指令時(shí): ( SP) → PCH, 然后 ( SP) 1→SP ( SP) → PCL, 然后 ( SP) 1→SP 功能是從堆棧中退出 PC的高 8位和低 8位字節(jié),把棧指針減 2,從 PC值開始繼續(xù)執(zhí)行程序。 10. 中斷返回指令 RETI 功能與 RET指令相似 , 兩指令不同之處 , 是本指令清除了中斷響應(yīng)時(shí) , 被置 “ 1”的 MCS51內(nèi)部中斷優(yōu)先級寄存器的優(yōu)先級狀態(tài) 。 11. 空操作指令 NOP 位操作指令 MOV C,bit MOV bit,C 例 MOV C,06H ; (20H).6→Cy 06H是內(nèi)部 RAM 20H字節(jié)位 6的位地址 。 MOV ,C ; Cy→P 2. 位變量修改指令 CLR C ;清 “ 0”Cy CLR bit ;清 “ 0”bit位 CPL C ; Cy求反 CPL bit ; bit位求反 SETB C ;置 “ 1” Cy SETB bit ;置 “ 1” bit位 這組指令將操作數(shù)指出的位清 “ 0”、求反、置 “ 1”, 不影響其它標(biāo)志。 例 CLR C ; 0→Cy CLR 27H ; 0→ ( 24H) .7位 CPL 08H ; → ( 21H) .0位 SETB ; 1→P 3.位變量邏輯與指令 ANL C,bit ; bit∧Cy→Cy ANL C,/bit; ; /bit ∧Cy→Cy 4. 位變量邏輯或指令 ORL C,bit ORL C,/bit 5. 條件轉(zhuǎn)移類指令 JC rel ;如果進(jìn)位位 Cy=1, 則轉(zhuǎn)移 JNC rel ;如果進(jìn)位位 Cy=0, 則轉(zhuǎn)移 JB bit,rel ;如果直接尋址位 =1, 則轉(zhuǎn)移 JNB bit,rel ;如果直接尋址位 =0, 則轉(zhuǎn)移 JBC bit,rel ;如果直接尋址位 =1, 則轉(zhuǎn)移 , 并清 0直接尋址位 表 32至表 36( P61P64)列出了按 指令功能 排列的全部指令及功能的簡要說明,以及 指令長度、執(zhí)行的時(shí)間以及指令代碼 (機(jī)器代碼)。 讀者可根據(jù)指令助記符 ,迅速查到對應(yīng)的指令代碼( 手工匯編 )。也可根據(jù)指令代碼迅速查到對應(yīng)的指令助記符( 手工反匯編 )。 應(yīng)熟練地掌握這些指令表的使用,因?yàn)檫@是使用MCS51匯編語言進(jìn)行程序設(shè)計(jì)的基礎(chǔ)。 表 32
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1