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

正文內(nèi)容

c指令系統(tǒng)ppt課件(已修改)

2025-02-02 22:10 本頁面
 

【正文】 第三章 80C51單片微機(jī)的指令系統(tǒng) 80C51指令系統(tǒng)概述 80C51指令系統(tǒng)專用于 80C51系列單片微機(jī),是一個(gè)具有255種操作碼 (00H至 FFH,除 A5H外 ) 的集合。 用匯編語言表達(dá)操作代碼時(shí),只要熟記 42種助記符。 42種助記符代表了 33種功能,因?yàn)橛械墓δ苋鐢?shù)據(jù)傳送,可以有幾種助記符,如 MOV、 MOVC、 MOVX。而指令功能助記符與操作數(shù)各種尋址方式的結(jié)合,共構(gòu)造出 111種指令,同一種指令所對應(yīng)的操作碼可以多至八種 (如指令中 Rn對應(yīng)寄存器 R0R7) 。 尋址方式就是在指令中給出的尋找操作數(shù)或操作數(shù)所在地址的方法 。 執(zhí)行任何一條指令都需要使用操作數(shù) 。 80C5l系列單片微機(jī)指令系統(tǒng)中共有以下 7種尋址方式 。 ⒈ 立即尋址 立即尋址是指在指令中直接給出操作數(shù),出現(xiàn)在指令中的操作數(shù)稱為立即數(shù),因此就將這種尋址方式稱為立即尋址。為了與直接尋址指令中的直接地址相區(qū)別,在立即數(shù)前面必需加上前綴“?!?。 例如:指令 MOV DPTR, # 1234H 其中 1234H就是立即數(shù) , 指令功能是把 16位立即數(shù) 1234H送入數(shù)據(jù)指針 DPTR中 , 如 圖 3–1所示 。 尋址方式 2.直接尋址 直接尋址是指在指令中直接給出操作數(shù)單元的地址 。 例如:指令 MOV A, 3AH 其功能是把片內(nèi) RAM中 3AH單元內(nèi)的數(shù)據(jù)傳送給累加器 A, 如 圖3–2所示 。 直接尋址方式只能給出 8位地址 , 因此這種尋址方式的尋址范圍只限于片內(nèi) RAM。 具體地說: ⑴ 低 128單元 , 在指令中直接以單元地址形式給出 。 ⑵ 特殊功能寄存器 , 這時(shí)除可以單元地址形式給出外 , 還可以寄存器符號形式給出 。 雖然特殊功能寄存器可以使用符號標(biāo)志 ,但在指令代碼中還是按地址進(jìn)行編碼的 。 應(yīng)當(dāng)說明的是 , 直接尋址是訪問特殊功能寄存器的唯一方法 。 3.寄存器尋址 寄存器尋址是指在指令中將指定寄存器的內(nèi)容作為操作數(shù) 。因此指定了寄存器就能得到操作數(shù) 。 寄存器尋址方式中 , 用符號名稱來表示寄存器 。 例如:指令 INC R0 其功能是把寄存器 R0的內(nèi)容加 1, 再送回 R0中 。 由于操作數(shù)在 R0中 , 指定了 R0, 也就得到了操作數(shù) , 如 圖 3–3所示 。 寄存器尋址方式的尋址范圍包括: ( 1) 四個(gè)寄存器組共 32個(gè)通用寄存器 。 但在指令中只能使用當(dāng)前寄存器組 。 因此在使用前要通過指定 PSW中的 RS RS0, 以選擇使用的當(dāng)前寄存器組 。 ( 2)部分特殊功能寄存器。例如累加器 A、 AB寄存器對以及數(shù)據(jù)指針 DPTR。 4.寄存器間接尋址 寄存器間接尋址是指在指令中給出的寄存器內(nèi)容是操作數(shù)的地址 , 從該地址中取出的才是操作數(shù) 。 寄存器間接尋址也需以寄存器符號名稱的形式表示 。 為了區(qū)別寄存器尋址和寄存器間接尋址 , 在寄存器間接尋址中 , 應(yīng)在寄存器的名稱前面加前綴 “ @ ” 。 假定 R1寄存器的內(nèi)容是 60H, 則指令 ANL A, R1的功能是以 R1寄存器的內(nèi)容 60H為地址將 60H地址單元的內(nèi)容與累加器 A中的數(shù)相 “ 與 ” , 其結(jié)果仍存放在 A中 、 其功能示意請參見 圖 3–4。 寄存器間接尋址的尋址范圍: ⑴ 片內(nèi) RAM的低 128單元 , 只能采用 R0或 R1為間址寄存器 ,其形式為 @Ri( i= 0, 1) 。 ⑵ 片外 RAM 的 64 KB單元 , 使用 DPTR作為間址寄存器 , 其形式為@ DPTR, 例如 MOVX A, @ DPTR, 其功能是把 DPTR指定的片外 RAM單元的內(nèi)容送累加器 A。 ⑶ 片外 RAM低 256單元 , 除了可使用 DPTR作為間址寄存器外 ,也可使用 R0或 R1作間址寄存器 。 例如: MOVX A, @ R0. 即把R0指定的片外 RAM單元的內(nèi)容送累加器 A。 ⑷ 堆棧區(qū):堆棧操作指令 ( PUSH和 POP) 也應(yīng)算作是寄存器間接尋址 , 即以堆棧指針 ( SP) 作間址寄存器的間接尋址方式 。 ⒌ 相對尋址 相對尋址是指在指令中給出的操作數(shù)為程序轉(zhuǎn)移的偏移量。 在相對轉(zhuǎn)移指令中 , 給出地址偏移量 ( 在 80C51系列單片微機(jī)的指令系統(tǒng)中 , 以 “ rel”表示 ) , 把 PC的當(dāng)前值加上偏移量就構(gòu)成了程序轉(zhuǎn)移的目的地址 。 轉(zhuǎn)移的目的地址可用如下公式表示: 目的地址=轉(zhuǎn)移指令所在地址+轉(zhuǎn)移指令字節(jié)數(shù)+ rel 在 8051系列單片微機(jī)的指令系統(tǒng)中 , 有許多條相對轉(zhuǎn)移指令 , 這些指令多數(shù)均為兩字節(jié)指令 . 只有個(gè)別的是三字節(jié)的指令 。偏移量 rel是一個(gè)帶符號的 8位二進(jìn)制補(bǔ)碼數(shù) , 所能表示 的數(shù)的范圍是一 128~+ 127。 因此以相對轉(zhuǎn)移指令的所在地址為基點(diǎn) , 向前最大可轉(zhuǎn)移 ( 127十轉(zhuǎn)移指令字節(jié)數(shù) ) 個(gè)單元地址 , 向后最大可轉(zhuǎn)移 ( 128一轉(zhuǎn)移指令字節(jié)數(shù) ) 個(gè)單元地址 。 例如:指令 JC 80H 表示若進(jìn)位位 C為 0, 則程序計(jì)數(shù)器 PC中的內(nèi)容不變 , 即不轉(zhuǎn)移;若進(jìn)位位 C為 1, 則以程序計(jì)數(shù)器 PC中當(dāng)前值為基地址 ,加上偏移量 80H后所得結(jié)果作為該轉(zhuǎn)移指令的目的地址 , 其執(zhí)行示意圖如 圖 3–5所示 。 指令的操作碼存在 1000H單元,偏移量存在 1001H單元。執(zhí)行該指令后,程序計(jì)數(shù)器 PC 指向 1002 H(即當(dāng)前值)。這里80H即 –128,故 1002H與 –128( 80H)相加(補(bǔ)碼運(yùn)算)后得到轉(zhuǎn)移地址 0F82H。 6.變址尋址 變址尋址是指以 DPTR或 PC作基址寄存器,累加器 A作變址寄存器,以兩者內(nèi)容相加。形成的 16位程序存儲器地址作為操作數(shù)地址。又稱基址寄存器+變址寄存器間接尋址。 例如:指令 MOVC A, @ A+ DPTR 其功能是把 DPTR和 A的內(nèi)容相加所得到的程序存儲器地址單元的內(nèi)容送 A。 假定指令執(zhí)行前 ( A) = 54H, ( DPTR) = 1256H 則該指令的操作示意請參見 圖 3–6。變址尋址形成的操作數(shù)地址為 1256H+ 54H= 12AAH,若 12AAH單元的內(nèi)容為 00H,則該指令執(zhí)行的結(jié)果是 A的內(nèi)容為 00H 。 80C51指令系統(tǒng)中的變址尋址指令有如下特點(diǎn): ⑴ 變址尋址方式只能對程序存儲器進(jìn)行尋址 , 或者說是專門針對程序存儲器的尋址方式 。 ⑵ 變址尋址指令只有三條 MOVC A, @A+ DPTR MOVC A, @ A+ PC JMP @A+ DPTR 其中前兩條是程序存儲器讀指令 , 后一條是無條件轉(zhuǎn)移指 令 。 ⑶ 這三條指令卻都是單字節(jié)指令 。 ⑷ 變址尋址方式用于查表操作 。 7.位尋址 80C51有位處理功能,可以對數(shù)據(jù)位進(jìn)行操作,因此就有相應(yīng)的位尋址方式。 位尋址的尋址范圍: ( 1)片內(nèi) RAM中的位尋址區(qū) 片內(nèi) RAM中的單元地址 20H~ 2FH, 共 16個(gè)單元 128位 ,為位尋址區(qū) , 位地址是 0H~ 7FH。 對這 128個(gè)位的尋址使用直接位地址表示 。 例如 MOV C, 2BH指令的功能是把位尋址區(qū)的 2BH位狀態(tài)送累加位 C。 ( 2) 可位尋址的特殊功能寄存器位 可供位尋址的特殊功能寄存器共有 11個(gè) , 有尋址位 83位 。 這些尋址位在指令中有以下 4種表示方法: ?直接使用位地址表示方法 。 ?單元地址加位的表示方法 。 例如 88H單元的位 5, 則表示為。 ?特殊功能寄存器符號加位的表示方法 、 例如 PSW寄存器的位 5,可表示為:為 PSW .5。 ?位名稱表示方法 , 特殊功能寄存器中的一些尋址位是有名稱的 , 例如 PSW寄存器位 5為 F0標(biāo)志位 , 則可使用 F0表示該位 。 對于指令中的操作數(shù) , 因?yàn)橹噶畈僮鞒0橛袕挠蚁蜃髠魉蛿?shù)據(jù)的內(nèi)容 , 所以常把左邊操作數(shù)稱為目的操作數(shù) , 而右邊操作數(shù)稱為源操作數(shù) 。 80C51指令系統(tǒng)的 7種尋址方式概括起來如 表 3–1所列。 指令的表示方法稱之為指令格式,其內(nèi)容包括指令的長度和指令內(nèi)部信息的安排等。一條指令通常由操作碼和操作數(shù)兩部分組成。操作碼是用來規(guī)定指令所完成的操作的,而操作數(shù)則表示操作的對象。操作數(shù)可能是一個(gè)具體的數(shù)據(jù),也可能是指出取得數(shù)據(jù)的地址或符號。在 80C51系列單片微機(jī)的指令系統(tǒng)中,有單字節(jié)、雙字節(jié)和三字節(jié)等不同長度的指令。 ⑴ 單字節(jié)指令:指令只有一個(gè)字節(jié),操作碼和操作數(shù)同在一個(gè)字節(jié)中。在 80C51系列的指令系統(tǒng)中,共有 49條單字節(jié)指令。 操作碼 地址碼 如 MOV A, Rn 指令機(jī)器碼為單字節(jié) 11001rrr,其中 rrr可表示為 000111,分別代表 R0R7 指令格式 ⑵ 雙字節(jié)指令:雙字節(jié)指令包括兩個(gè)字節(jié) 。 其中一個(gè)字節(jié)為操作碼 , 另一個(gè)字節(jié)是操作數(shù) 。 在 80C51系列的指令系統(tǒng)中 ,共有 45條雙字節(jié)指令 。 操作碼 地址碼 數(shù)據(jù)或地址碼 如 MOV A, data 8位立即數(shù) data需占一個(gè)字節(jié),操作碼不能省卻,也需一個(gè)字節(jié)。 ⑶ 三字節(jié)指令:在三字節(jié)指令中,操作碼占一個(gè)字節(jié),操作數(shù)占兩個(gè)字節(jié)。其中操作數(shù)既可能是數(shù)據(jù),也可能是地址。在80C51系列的指令系統(tǒng)中,共有 17條三字節(jié)指令。 操作碼 數(shù)據(jù)或地址碼 數(shù)據(jù)或地址碼 如 ANL direct , data 指令需三個(gè)字節(jié) , 第一字節(jié)為操作碼 , 第二字節(jié)為 8位直接地址 direct, 第三字節(jié)為 8位立即數(shù) data。 從指令執(zhí)行時(shí)間來看,單機(jī)器周期指令有 64種,雙機(jī)器周期指令有 45種,只有乘法、除法指令的執(zhí)行時(shí)間為 4個(gè)機(jī)器周期。在 12MHz晶振條件下, 80C51單片微機(jī)的指令執(zhí)行時(shí)間分別為1μ S、 2μ S、 4μ S??梢?80C51的指令系統(tǒng)在存儲空間和時(shí)間的利用效率上都是比較高的。 80C51的指令系統(tǒng) , 共有 111條指令 , 按其功能可分為五大類: ⑴ 數(shù)據(jù)傳送類指令 ( 28條 ) ; ⑵ 算術(shù)運(yùn)算類指令 ( 24條 ) ; ⑶ 邏輯運(yùn)算類指令 ( 25條 ) ; ⑷ 控制轉(zhuǎn)移類指令 (17 條 ); ⑸ 布爾操作 ( 位 ) 類指令 ( 17條 ) 。 本章將分類介紹這五類指令,并在書后以附錄形式逐條列出。 指令分類 在說明和使用 80C51系列的指令時(shí),經(jīng)常使用一些符號。下面將所使用的一些符號的意義作一簡單說明。 Rn n= 0~ 7, 表示當(dāng)前寄存器組的 8個(gè)通用寄存器 R0~R7 中的一個(gè) 。 Ri i= 0, l, 可用作間接尋址的寄存器 , 只能是 R0、 R1 兩個(gè)寄存器中的一個(gè) 。 direct 內(nèi)部的 8位地址 , 既可以指片內(nèi) RAM的低 128個(gè)單元地址 , 也可以指特殊功能寄存器的地址或符號名稱 , 因此 direct表示直接尋址方式 。 data 指令中所含的 8位立即數(shù) 。 data16 指令中所含的 16位立即數(shù) 。 指令系統(tǒng)中使用符號說明 addr16 16位目的地址 ,只限于在 LCALL和 LJMP指令中使用 。 addr11 11位目的地址 , 只限于在 ACALL和 AJMP指令中使用 。 rel 相對轉(zhuǎn)移指令中的偏移量 , 為 8位帶符號數(shù) 。 為SJMP和所有條件轉(zhuǎn)移指令所用 。 轉(zhuǎn)移范圍為相對于下一條指令笫一字節(jié)地址的 128~+ 127。 DPTR 數(shù)據(jù)指針 。 bit 片內(nèi) RAM ( 包括部分特殊功能寄存器 ) 中的直接尋址位 。 A 累加器 。 B B寄存器 。 C 進(jìn)位標(biāo)志位 , 是布爾處理機(jī)中的累加器 , 也稱之為累加位 。 @ 間址寄存器的前綴標(biāo)志 。 / 位地址的前綴標(biāo)志 , 表示對該位操作數(shù)取反 。 ( ) 某寄存器或某單元的內(nèi)容 。 (( )) 由 尋址的單元中的內(nèi)容 。 ← 箭頭左邊的內(nèi)容被箭頭右邊的內(nèi)容所取代。 單片微機(jī)執(zhí)行指令的過程 , 分為取指令和執(zhí)行指令二項(xiàng)基本內(nèi)容 。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1