【大學(xué)課件】MCS51單片機指令系統(tǒng)與匯編語言程序設(shè)計PPT_第1頁
【大學(xué)課件】MCS51單片機指令系統(tǒng)與匯編語言程序設(shè)計PPT_第2頁
【大學(xué)課件】MCS51單片機指令系統(tǒng)與匯編語言程序設(shè)計PPT_第3頁
【大學(xué)課件】MCS51單片機指令系統(tǒng)與匯編語言程序設(shè)計PPT_第4頁
【大學(xué)課件】MCS51單片機指令系統(tǒng)與匯編語言程序設(shè)計PPT_第5頁
已閱讀5頁,還剩56頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、鄭州大學(xué)第第2 2章章 mcs-51mcs-51單片機指令系統(tǒng)單片機指令系統(tǒng)與匯編語言程序設(shè)計與匯編語言程序設(shè)計主要內(nèi)容:主要內(nèi)容: mcs-51mcs-51單片機指令系統(tǒng)的尋址方式、指令系單片機指令系統(tǒng)的尋址方式、指令系統(tǒng)、基本程序結(jié)構(gòu)及匯編語言的開發(fā)和調(diào)試。統(tǒng)、基本程序結(jié)構(gòu)及匯編語言的開發(fā)和調(diào)試。 重點重點在于尋址方式、各種指令的應(yīng)用、程序設(shè)在于尋址方式、各種指令的應(yīng)用、程序設(shè)計的規(guī)范、程序設(shè)計的思想及典型程序的理解和掌計的規(guī)范、程序設(shè)計的思想及典型程序的理解和掌握。握。難點難點在于控制轉(zhuǎn)移、位操作指令的理解及各種在于控制轉(zhuǎn)移、位操作指令的理解及各種指令的靈活應(yīng)用,以及程序設(shè)計的基本方法和

2、針對指令的靈活應(yīng)用,以及程序設(shè)計的基本方法和針對具體的硬件設(shè)計出最合理的軟件。具體的硬件設(shè)計出最合理的軟件。鄭州大學(xué) 指令系統(tǒng):指令系統(tǒng): 一臺計算機所能識別、執(zhí)行的指令的集合就是它的指令系統(tǒng)。一臺計算機所能識別、執(zhí)行的指令的集合就是它的指令系統(tǒng)。 機器語言:機器語言: 指令系統(tǒng)是一套控制計算機執(zhí)行操作的二進制編碼,稱為機指令系統(tǒng)是一套控制計算機執(zhí)行操作的二進制編碼,稱為機器語言。機器語言指令是計算機惟一能識別和執(zhí)行的指令。器語言。機器語言指令是計算機惟一能識別和執(zhí)行的指令。 匯編語言:匯編語言: 指令系統(tǒng)是利用指令助記符來描述的,稱為匯編語言。指令系統(tǒng)是利用指令助記符來描述的,稱為匯編語言。

3、 計算機的指令系統(tǒng)一般都是利用匯編語言描述的,是由計算機的指令系統(tǒng)一般都是利用匯編語言描述的,是由計算機硬件設(shè)計所決定的。指令系統(tǒng)沒有通用性。計算機硬件設(shè)計所決定的。指令系統(tǒng)沒有通用性。 單片機一般是空機,未含任何系統(tǒng)軟件。因此在第一次單片機一般是空機,未含任何系統(tǒng)軟件。因此在第一次使用前,必須對其進行編程,使用前,必須對其進行編程, 2.1 2.1 概述概述 鄭州大學(xué)2.1.1 2.1.1 匯編語言指令格式與偽指令匯編語言指令格式與偽指令 1 1常用單位與術(shù)語常用單位與術(shù)語 位位(bitbit):):位是計算機所能表示的最小的、最基本的數(shù)據(jù)單位是計算機所能表示的最小的、最基本的數(shù)據(jù)單位,位通

4、常是指一個二進制位。位,位通常是指一個二進制位。 字節(jié)(字節(jié)(bytebyte):):一個連續(xù)的一個連續(xù)的8位二進制數(shù)碼稱為一個字節(jié),即位二進制數(shù)碼稱為一個字節(jié),即1byte=8bit。 字 (字 ( w o r dw o r d ) :) : 通 常 由通 常 由 1 6 位 二 進 制 數(shù) 碼 組 成 , 即位 二 進 制 數(shù) 碼 組 成 , 即1word=2byte。 字長:字長:字長是指計算機一次處理二進制數(shù)碼位的多少。字長是指計算機一次處理二進制數(shù)碼位的多少。mcs-51型單片機是型單片機是8位機,所以說它的字長為位機,所以說它的字長為8位。位。 mcs-51系列單片機都是以系列單片

5、機都是以intel公司最早的典型產(chǎn)品公司最早的典型產(chǎn)品8051為核心,增加了一定的功能部件后構(gòu)成的。本章以為核心,增加了一定的功能部件后構(gòu)成的。本章以8051為主介紹為主介紹mcs-51系列單片機系列單片機 。鄭州大學(xué)2 2匯編語言指令格式匯編語言指令格式 指令格式:指令格式:指令的表示方式稱為指令格式,它規(guī)定了指令的長度和內(nèi)部指令的表示方式稱為指令格式,它規(guī)定了指令的長度和內(nèi)部信息的安排。信息的安排。完整的指令格式如下:完整的指令格式如下: 標(biāo)號標(biāo)號: : 操作碼操作碼 操作數(shù)操作數(shù) , ,操作數(shù)操作數(shù) ; ;注釋注釋 其中:其中: 項是可選項。項是可選項。標(biāo)號:標(biāo)號:指本條指令起始地址的符

6、號,也稱為指令的符號地址。代表該條指指本條指令起始地址的符號,也稱為指令的符號地址。代表該條指令在程序編譯時的具體地址。令在程序編譯時的具體地址。操作碼:操作碼:又稱助記符,它是由對應(yīng)的英文縮寫構(gòu)成的,是指令語句的關(guān)又稱助記符,它是由對應(yīng)的英文縮寫構(gòu)成的,是指令語句的關(guān)鍵。它規(guī)定了指令具體的操作功能,描述指令的操作性質(zhì),是一條指令中鍵。它規(guī)定了指令具體的操作功能,描述指令的操作性質(zhì),是一條指令中不可缺少的內(nèi)容。不可缺少的內(nèi)容。操作數(shù):操作數(shù):它既可以是一個具體的數(shù)據(jù),也可以是存放數(shù)據(jù)的地址。它既可以是一個具體的數(shù)據(jù),也可以是存放數(shù)據(jù)的地址。注釋:注釋:注釋也是指令語句的可選項,它是為增加程序的

7、可讀性而設(shè)置的,注釋也是指令語句的可選項,它是為增加程序的可讀性而設(shè)置的,是針對某指令而添加的說明性文字,不產(chǎn)生可執(zhí)行的目標(biāo)代碼。是針對某指令而添加的說明性文字,不產(chǎn)生可執(zhí)行的目標(biāo)代碼。鄭州大學(xué) 偽指令(也稱為匯編程序的控制命令)是程序員發(fā)給匯編偽指令(也稱為匯編程序的控制命令)是程序員發(fā)給匯編程序的命令,用來設(shè)置符號值、保留和初始化存儲空間、控制程序的命令,用來設(shè)置符號值、保留和初始化存儲空間、控制用戶程序代碼的位置。用戶程序代碼的位置。 偽指令只出現(xiàn)在匯編前的源程序中,僅提供匯編用的某些偽指令只出現(xiàn)在匯編前的源程序中,僅提供匯編用的某些控制信息,不產(chǎn)生可執(zhí)行的目標(biāo)代碼,是控制信息,不產(chǎn)生可

8、執(zhí)行的目標(biāo)代碼,是cpucpu不能執(zhí)行的指令。不能執(zhí)行的指令。 (1 1)定位偽指令)定位偽指令orgorg 格式:格式:org norg n 其中:其中:n n通常為絕對地址,可以是十六進制數(shù)、標(biāo)號或表達式。通常為絕對地址,可以是十六進制數(shù)、標(biāo)號或表達式。 功能:功能:規(guī)定編譯后的機器代碼存放的起始位置。在一個匯編規(guī)定編譯后的機器代碼存放的起始位置。在一個匯編語言源程序中允許存在多條定位偽指令,但每一個語言源程序中允許存在多條定位偽指令,但每一個n n值都應(yīng)和前值都應(yīng)和前面生成的機器指令存放地址不重疊。面生成的機器指令存放地址不重疊。 例如程序:例如程序: org1000h start: m

9、ova,#20h movb,#30h 3偽指令偽指令 鄭州大學(xué)(2 2)結(jié)束匯編偽指令)結(jié)束匯編偽指令endend 格式:格式:標(biāo)號標(biāo)號: end 表達式表達式 功能:功能:放在匯編語言源程序的末尾,表明源程序的匯編到此放在匯編語言源程序的末尾,表明源程序的匯編到此結(jié)束,其后的任何內(nèi)容不予理睬。結(jié)束,其后的任何內(nèi)容不予理睬。(3 3)賦值偽指令)賦值偽指令equequ 格式:格式:字符名稱字符名稱x equ 賦值項賦值項n 功能:功能:將賦值項將賦值項n的值賦予字符名稱的值賦予字符名稱x。程序中凡出現(xiàn)該字符名。程序中凡出現(xiàn)該字符名稱稱x就等同于該賦值項就等同于該賦值項n,其值在整個程序中有效。

10、賦值項,其值在整個程序中有效。賦值項n可以可以是常數(shù)、地址、標(biāo)號或表達式。在使用時,必須先賦值后使用。是常數(shù)、地址、標(biāo)號或表達式。在使用時,必須先賦值后使用。 “字符名稱字符名稱”與與“標(biāo)號標(biāo)號”的區(qū)別是的區(qū)別是“字符名稱字符名稱”后無冒號,后無冒號,而而“標(biāo)號標(biāo)號”后面有冒號。后面有冒號。鄭州大學(xué)(4 4)定義字節(jié)偽指令)定義字節(jié)偽指令dbdb 格式:格式:標(biāo)號標(biāo)號: db x1, x2, xn 功能:功能:將將8位數(shù)據(jù)(或位數(shù)據(jù)(或8位數(shù)據(jù)組)位數(shù)據(jù)組)x1, x2, xn順序存放在從當(dāng)順序存放在從當(dāng)前程序存儲器地址開始的存儲單元中。前程序存儲器地址開始的存儲單元中。xi可以是可以是8位數(shù)

11、據(jù)、位數(shù)據(jù)、ascii碼、表達式,也可以是括在單引號內(nèi)的字符串。兩個數(shù)據(jù)之間用碼、表達式,也可以是括在單引號內(nèi)的字符串。兩個數(shù)據(jù)之間用逗號逗號“,”分隔。分隔。 xi為數(shù)值常數(shù)時,取值范圍為為數(shù)值常數(shù)時,取值范圍為00hffh。xi為為ascii碼時,碼時,要使用單引號要使用單引號,以示區(qū)別。,以示區(qū)別。xi為字符串常數(shù)時,其長度不應(yīng)為字符串常數(shù)時,其長度不應(yīng)超過超過80個字符。個字符。 (5 5)定義雙字節(jié)偽指令)定義雙字節(jié)偽指令dwdw 格式:格式:標(biāo)號標(biāo)號: dw x1, x2, xn 功能:功能:將雙字節(jié)數(shù)據(jù)將雙字節(jié)數(shù)據(jù)或雙字節(jié)數(shù)據(jù)組或雙字節(jié)數(shù)據(jù)組順序存放在從標(biāo)號指定順序存放在從標(biāo)號指

12、定地址單元開始的存儲單元中。其中,地址單元開始的存儲單元中。其中,xi為為16位數(shù)值常數(shù),占兩個位數(shù)值常數(shù),占兩個存儲單元,先存高存儲單元,先存高8位(存入低位地址單元中),后存低位(存入低位地址單元中),后存低8位(存位(存入高位地址單元中)。入高位地址單元中)。鄭州大學(xué) (6 6)預(yù)留存儲空間偽指令)預(yù)留存儲空間偽指令ds ds 格式:格式:標(biāo)號標(biāo)號: ds n 功能:功能:從標(biāo)號指定地址單元開始,預(yù)留從標(biāo)號指定地址單元開始,預(yù)留n個存儲單元,匯編時不對這些存?zhèn)€存儲單元,匯編時不對這些存儲單元賦值。儲單元賦值。n可以是數(shù)據(jù),也可以是表達式??梢允菙?shù)據(jù),也可以是表達式。p39p39例例 (7

13、 7)定義位地址符號偽指令)定義位地址符號偽指令bitbit 格式:格式:字符名稱字符名稱x bit 位地址位地址n 功能:功能:將位地址將位地址n的值賦予字符名稱的值賦予字符名稱x。程序中凡出現(xiàn)該字符名稱。程序中凡出現(xiàn)該字符名稱x就代就代表該位地址。位地址表該位地址。位地址n可以是絕對地址,也可以是符號地址。可以是絕對地址,也可以是符號地址。 (8 8)數(shù)據(jù)地址賦值偽指令)數(shù)據(jù)地址賦值偽指令datadata 格式:格式:字符名稱字符名稱x data 表達式表達式n 功能:功能:把表達式把表達式n的值賦值給左邊的字符名稱的值賦值給左邊的字符名稱x。n可以是數(shù)據(jù)或地址,可以是數(shù)據(jù)或地址,也可以是

14、包含所定義的也可以是包含所定義的“字符名稱字符名稱x”在內(nèi)的表達式,但不能是匯編符號。在內(nèi)的表達式,但不能是匯編符號。 data與與equ的主要區(qū)別是:的主要區(qū)別是:equ定義的定義的“字符名稱字符名稱”必須先定義必須先定義后使用,而后使用,而data定義的定義的“字符名稱字符名稱”沒有這種限制。所以,沒有這種限制。所以,data偽指令偽指令通常用在源程序的開頭或末尾。通常用在源程序的開頭或末尾。 鄭州大學(xué)2.1.2 指令的分類指令的分類 mcs-51mcs-51指令系統(tǒng)有指令系統(tǒng)有111111條指令,可按下列幾種方式分類:條指令,可按下列幾種方式分類:1.1.按指令字節(jié)數(shù)分類按指令字節(jié)數(shù)分類

15、 單字節(jié)指令(單字節(jié)指令(4949條)、雙字節(jié)指令(條)、雙字節(jié)指令(4646條)和三字節(jié)條)和三字節(jié)指令(指令(1616條)。條)。2. 2. 按指令執(zhí)行時間分類按指令執(zhí)行時間分類 單機器周期指令(單機器周期指令(6565條)、雙機器周期指令(條)、雙機器周期指令(4444條)條)和四機器周期指令(和四機器周期指令(2 2條)。條)。3. 3. 按功能分類按功能分類 數(shù)據(jù)傳送指令(數(shù)據(jù)傳送指令(2929條)、算術(shù)操作指令(條)、算術(shù)操作指令(2424條)、邏條)、邏輯操作指令(輯操作指令(2424條)、控制轉(zhuǎn)移指令(條)、控制轉(zhuǎn)移指令(1717條)和位操作指條)和位操作指令(令(1717條)

16、。條)。 鄭州大學(xué)2.1.3 指令中的常用符號指令中的常用符號 rn(n=07):):表示當(dāng)前工作寄存器表示當(dāng)前工作寄存器r0r7中的任一個中的任一個寄存器。寄存器。 ri(i=0或或1):):表示通用寄存器組中用于間接尋址的兩個寄表示通用寄存器組中用于間接尋址的兩個寄存器存器r0, r1。 #data:表示表示8位直接參與操作的立即數(shù)。位直接參與操作的立即數(shù)。 #data16:表示表示16位直接參與操作的立即數(shù)。位直接參與操作的立即數(shù)。 direct:表示片內(nèi)表示片內(nèi)ram的的8位單元地址。位單元地址。 addr11:表示表示11位目的地址,主要用于位目的地址,主要用于acall和和ajmp

17、指指令中。令中。 addr16:表示表示16位目的地址,主要用于位目的地址,主要用于lcall和和ljmp指指令中。令中。 rel:用補碼形式表示的:用補碼形式表示的8位二進制地址偏移量,取值范圍為位二進制地址偏移量,取值范圍為 128+127,主要用于相對轉(zhuǎn)移指令,以形成轉(zhuǎn)移的目的,主要用于相對轉(zhuǎn)移指令,以形成轉(zhuǎn)移的目的地址。地址。 dptr:數(shù)據(jù)指針,用于寄存器間接尋址方式和變址尋址方式數(shù)據(jù)指針,用于寄存器間接尋址方式和變址尋址方式。鄭州大學(xué)2.1.3 指令中的常用符號指令中的常用符號 bit:表示片內(nèi)表示片內(nèi)ram的位尋址區(qū),或者是可以位尋址的的位尋址區(qū),或者是可以位尋址的sfr的位地址

18、。的位地址。 a(或(或acc)、)、 b :表示累加器、表示累加器、 b寄存器。寄存器。 c:表示表示psw中的進位標(biāo)志位中的進位標(biāo)志位cy。 :在間接尋址方式中,表示間接尋址寄存器指針的前綴標(biāo)志。在間接尋址方式中,表示間接尋址寄存器指針的前綴標(biāo)志。 $:表示當(dāng)前的指令地址。表示當(dāng)前的指令地址。 /:在位操作指令中,表示對該位先求反后再參與操作。在位操作指令中,表示對該位先求反后再參與操作。 (x):):表示由表示由x所指定的某寄存器或某單元中的內(nèi)容。所指定的某寄存器或某單元中的內(nèi)容。 (x):表示由表示由x間接尋址單元中的內(nèi)容。間接尋址單元中的內(nèi)容。 :表示指令的操作結(jié)果是將箭頭右邊的內(nèi)容

19、傳送到左邊。表示指令的操作結(jié)果是將箭頭右邊的內(nèi)容傳送到左邊。 :表示指令的操作結(jié)果是將箭頭左邊的內(nèi)容傳送到右邊。表示指令的操作結(jié)果是將箭頭左邊的內(nèi)容傳送到右邊。 、 、 :表示邏輯或、與、異表示邏輯或、與、異或?;颉`嵵荽髮W(xué) 尋址方式:尋址方式:在計算機中,說明操作數(shù)所在地址的方法稱為指令在計算機中,說明操作數(shù)所在地址的方法稱為指令的尋址方式。的尋址方式。 計算機執(zhí)行程序?qū)嶋H上是在不斷尋找操作數(shù)并進行操作的計算機執(zhí)行程序?qū)嶋H上是在不斷尋找操作數(shù)并進行操作的過程。過程。 每種計算機在設(shè)計時已決定了它具有哪些尋址方式,尋址每種計算機在設(shè)計時已決定了它具有哪些尋址方式,尋址方式越多,計算機的靈活性越

20、強,指令系統(tǒng)也就越復(fù)雜。方式越多,計算機的靈活性越強,指令系統(tǒng)也就越復(fù)雜。 mcs-51mcs-51單片機的指令系統(tǒng)提供了單片機的指令系統(tǒng)提供了7 7種尋址方式,分別為立種尋址方式,分別為立即尋址、直接尋址、寄存器尋址、寄存器間接尋址、變址尋址、即尋址、直接尋址、寄存器尋址、寄存器間接尋址、變址尋址、相對尋址和位尋址。一條指令可能含多種尋址方式。相對尋址和位尋址。一條指令可能含多種尋址方式。2.2 mcs-512.2 mcs-51單片機的尋址方式單片機的尋址方式 鄭州大學(xué)2.2.1 2.2.1 立即尋址立即尋址 定義:定義:將立即參與操作的數(shù)據(jù)直接寫在指令中,這種尋址方將立即參與操作的數(shù)據(jù)直接

21、寫在指令中,這種尋址方式稱為立即尋址。式稱為立即尋址。 特點:特點:指令中直接含有所需的操作數(shù)。該操作數(shù)可以是指令中直接含有所需的操作數(shù)。該操作數(shù)可以是8位位的,也可以是的,也可以是16位的,常常處在指令的第二字節(jié)和第三字節(jié)位的,常常處在指令的第二字節(jié)和第三字節(jié)的位置上。立即數(shù)通常使用的位置上。立即數(shù)通常使用#data或或#data16表示,在立表示,在立即數(shù)前面加即數(shù)前面加“#”標(biāo)志,用以和直接尋址中的直接地址標(biāo)志,用以和直接尋址中的直接地址(direc或或bit)相區(qū)別)相區(qū)別。 p41p41例例 2.2.2 2.2.2 直接尋址直接尋址 定義:定義:將操作數(shù)的地址直接存放在指令中,這種尋

22、址方式稱為將操作數(shù)的地址直接存放在指令中,這種尋址方式稱為直接尋址。直接尋址。特點:特點:指令中含有操作數(shù)的地址。該地址指出了參與操作的數(shù)指令中含有操作數(shù)的地址。該地址指出了參與操作的數(shù)據(jù)所在的字節(jié)單元地址或位地址。計算機執(zhí)行它們時便可根據(jù)據(jù)所在的字節(jié)單元地址或位地址。計算機執(zhí)行它們時便可根據(jù)直接地址找到所需要的操作數(shù)。直接地址找到所需要的操作數(shù)。尋址范圍:尋址范圍:rom、片內(nèi)、片內(nèi)ram區(qū)、區(qū)、sfr和位地址空間。和位地址空間。p42 鄭州大學(xué)2.2.3 寄存器尋址寄存器尋址定義:定義:操作數(shù)存放在操作數(shù)存放在mcs-51內(nèi)部的某個工作寄存器內(nèi)部的某個工作寄存器rn(r0r7)或部分專用寄

23、存器中,這種尋址方式稱)或部分專用寄存器中,這種尋址方式稱為寄存器尋址。為寄存器尋址。特點:特點:由指令指出某一個寄存器的內(nèi)容作為操作數(shù)。由指令指出某一個寄存器的內(nèi)容作為操作數(shù)。存放操作數(shù)的寄存器在指令代碼中不占據(jù)單獨的一個存放操作數(shù)的寄存器在指令代碼中不占據(jù)單獨的一個字節(jié),而是嵌入(隱含)到操作碼字節(jié)中。字節(jié),而是嵌入(隱含)到操作碼字節(jié)中。尋址范圍:尋址范圍:四組通用寄存器四組通用寄存器rn(r0r7)、部分專用)、部分專用寄存器(寄存器( a, b, dptr, cy )。)。鄭州大學(xué) 2.2.4 寄存器間接尋址寄存器間接尋址 定義:定義:指令給出的寄存器中存放的是操作數(shù)據(jù)的單元地指令給

24、出的寄存器中存放的是操作數(shù)據(jù)的單元地址。這種尋址方式稱為寄存器間接尋址,簡稱為寄存器址。這種尋址方式稱為寄存器間接尋址,簡稱為寄存器間址。間址。 特點:特點:指令給出的寄存器中存放的是操作數(shù)地址。寄存指令給出的寄存器中存放的是操作數(shù)地址。寄存器間接尋址是一種二次尋找操作數(shù)地址的尋址方式,寄器間接尋址是一種二次尋找操作數(shù)地址的尋址方式,寄存器前邊必須加前綴符號存器前邊必須加前綴符號“”。不能用于尋址特殊功。不能用于尋址特殊功能寄存器能寄存器sfr。 尋址范圍:尋址范圍:內(nèi)部內(nèi)部ram低低128b(只能使用(只能使用r0或或r1作作間址寄存器)、外部間址寄存器)、外部ram(只能使用(只能使用dp

25、tr作間址寄作間址寄存器)。對于外部低存器)。對于外部低256單元單元ram的訪問,除可以使的訪問,除可以使用用dptr外,還可以使用外,還可以使用r0或或r1作間址寄存器。作間址寄存器。 鄭州大學(xué) 2.2.5 變址尋址變址尋址 定義:定義:操作數(shù)存放在變址寄存器(累加器操作數(shù)存放在變址寄存器(累加器a)和基址寄存器)和基址寄存器(dptr或或pc)相加形成的)相加形成的16位地址單元中。這種尋址方式位地址單元中。這種尋址方式稱為基址加變址寄存器間接尋址,簡稱為變址稱為基址加變址寄存器間接尋址,簡稱為變址尋址。尋址。 特點:特點:指令操作碼中隱含作為基址寄存器用的指令操作碼中隱含作為基址寄存器

26、用的dptr(或(或pc )和作為變址用的累加器和作為變址用的累加器a。在執(zhí)行變址尋址指令時,。在執(zhí)行變址尋址指令時,mcs-51單片機先把基地址(單片機先把基地址( dptr或或pc 的內(nèi)容)和地址偏移量(的內(nèi)容)和地址偏移量(a的內(nèi)容)相加,以形成操作數(shù)地址,再由操作數(shù)地址找到操作的內(nèi)容)相加,以形成操作數(shù)地址,再由操作數(shù)地址找到操作數(shù),并完成相應(yīng)的操作。變址尋址方式是單字節(jié)指令。數(shù),并完成相應(yīng)的操作。變址尋址方式是單字節(jié)指令。 尋址范圍:尋址范圍:只能對程序存儲器只能對程序存儲器rom進行尋址,主要用于查表性進行尋址,主要用于查表性質(zhì)的訪問。質(zhì)的訪問。;(pc)(a)+(dptr) 鄭州

27、大學(xué)注意:注意:累加器累加器a中存放的操作數(shù)地址相對基地址的偏移中存放的操作數(shù)地址相對基地址的偏移量的范圍為量的范圍為00hffh(無符號數(shù))。(無符號數(shù))。mcs-51單片機共有以下三條變址尋址指令:單片機共有以下三條變址尋址指令: movc a, a+pc ;(a)(a)+(pc)+1 movc a, a+dptr ;(a)(a)+(dptr) jmp a+dptr ;(pc)(a)+(dptr) 鄭州大學(xué)2.2.6 相對尋址相對尋址定義:定義:將程序計數(shù)器將程序計數(shù)器pc的當(dāng)前值(取出本條指令后的的當(dāng)前值(取出本條指令后的pc值)與值)與指令第二個字節(jié)給出的偏移量(指令第二個字節(jié)給出的偏

28、移量(rel)相加,形成新的轉(zhuǎn)移目標(biāo))相加,形成新的轉(zhuǎn)移目標(biāo)地址。稱為相對尋址方式。地址。稱為相對尋址方式。特點:特點:相對尋址方式是為實現(xiàn)程序的相對轉(zhuǎn)移而設(shè)計的,為相相對尋址方式是為實現(xiàn)程序的相對轉(zhuǎn)移而設(shè)計的,為相對轉(zhuǎn)移指令所使用,其指令碼中含有相對地址偏移量,能生成對轉(zhuǎn)移指令所使用,其指令碼中含有相對地址偏移量,能生成浮動代碼。浮動代碼。如:如: sjmp rel ; (pc)(pc) + 2 + rel相對轉(zhuǎn)移指令的目的地址指令地址指令字節(jié)數(shù)偏移量相對轉(zhuǎn)移指令的目的地址指令地址指令字節(jié)數(shù)偏移量尋址范圍:尋址范圍:只能對程序存儲器只能對程序存儲器rom進行尋址。相對地址偏移量進行尋址。相對

29、地址偏移量(rel)是一個帶符號的)是一個帶符號的8位二進制補碼,其取值范圍為位二進制補碼,其取值范圍為 128127(以(以pc為中間的為中間的256個字節(jié)范圍)。個字節(jié)范圍)。 鄭州大學(xué)2.2.7 位尋址位尋址定義:定義:指令中給出的操作數(shù)是一個可單獨尋址的位地址,這種尋址指令中給出的操作數(shù)是一個可單獨尋址的位地址,這種尋址方式稱為位尋址方式。方式稱為位尋址方式。特點:特點:位尋址是直接尋址方式的一種,其特點是對位尋址是直接尋址方式的一種,其特點是對8位二進制數(shù)中位二進制數(shù)中的某一位的地址進行操作。的某一位的地址進行操作。尋址范圍:尋址范圍:片內(nèi)片內(nèi)ram低低128b中位尋址區(qū)、部分中位尋

30、址區(qū)、部分sfr(其中有(其中有83位位可以位尋址)??梢晕粚ぶ罚???晌粚ぶ返奈坏刂返谋硎拘问饺缦拢嚎晌粚ぶ返奈坏刂返谋硎拘问饺缦拢海? 1)直接使用位地址形式。如:)直接使用位地址形式。如: mov 00h, c ;(00h)(cy) 其中:其中:00h是片內(nèi)是片內(nèi)ram中中20h地址單元的第地址單元的第0位。位。鄭州大學(xué)(2)字節(jié)地址加位序號的形式。)字節(jié)地址加位序號的形式。如:如: mov 20h.0, c ; (20h.0)(cy) 其中:其中:20h.0是片內(nèi)是片內(nèi)ram中中20h地址單元的第地址單元的第0位。位。(3)位的符號地址(位名稱)的形式。)位的符號地址(位名稱)的形式。對

31、于部分特殊功能寄存對于部分特殊功能寄存器,其各位均有一個特定的名字,所以可以用它們的位名稱來器,其各位均有一個特定的名字,所以可以用它們的位名稱來訪問該位。如:訪問該位。如: anl c, p ; (c) (c)(p) 其中:其中:p是是psw的第的第0位,位,c是是psw的第的第7位。位。 (4)字節(jié)符號地址(字節(jié)名稱)加位序號的形式。)字節(jié)符號地址(字節(jié)名稱)加位序號的形式。對于部分特對于部分特殊功能寄存器(如狀態(tài)標(biāo)志寄存器殊功能寄存器(如狀態(tài)標(biāo)志寄存器psw),還可以用其字節(jié)名),還可以用其字節(jié)名稱加位序號形式來訪問某一位。如:稱加位序號形式來訪問某一位。如: cpl psw.6 ; (

32、ac) ( ac) 其中:其中: psw.6表示該位是表示該位是psw的第的第6位。位。ac鄭州大學(xué)例題例題1 指出下列指令的尋址方式指出下列指令的尋址方式 mov a,r1 ;(a)(r1) 寄存器尋址寄存器尋址 add a,#05h ; (a)(a)+立即數(shù)立即數(shù) 05h 立即尋址立即尋址 mov a,r1 ; (a) (r1) 寄存器間接尋址寄存器間接尋址 mov 30h,4ah ;( 30h )(4ah) 直接尋址直接尋址 movc a,a+dptr ;(a)(a)+(dptr) 變址尋址變址尋址 sjmp lp ; (pc)(pc)+ 2 + 偏移量偏移量 相對尋址相對尋址 mov

33、65h, c ;(65h)(cy) 位尋址位尋址鄭州大學(xué)2.3 mcs-512.3 mcs-51單片機的指令系統(tǒng)單片機的指令系統(tǒng) mcs-51指令系統(tǒng)使用指令系統(tǒng)使用44種助記符,它們代表著種助記符,它們代表著33種功能,可以實現(xiàn)種功能,可以實現(xiàn)51種操作。指令助記符與操作數(shù)的各種可種操作。指令助記符與操作數(shù)的各種可能的尋址方式的結(jié)合一共可構(gòu)造出能的尋址方式的結(jié)合一共可構(gòu)造出111條指令。條指令。 mcs-51單片機指令系統(tǒng)按其功能可分為單片機指令系統(tǒng)按其功能可分為數(shù)據(jù)傳送類數(shù)據(jù)傳送類指令、算術(shù)運算類指令、邏輯運算和移位類指令、控制轉(zhuǎn)移指令、算術(shù)運算類指令、邏輯運算和移位類指令、控制轉(zhuǎn)移類指令

34、和位操作類指令類指令和位操作類指令五大類。五大類。鄭州大學(xué)學(xué)習(xí)指令系統(tǒng)時,應(yīng)注意:學(xué)習(xí)指令系統(tǒng)時,應(yīng)注意:(1)指令的格式、功能)指令的格式、功能 。(2)操作碼的含義,操作數(shù)的表示方法。)操作碼的含義,操作數(shù)的表示方法。(3)尋址方式,源、目的操作數(shù)的范圍。)尋址方式,源、目的操作數(shù)的范圍。(4)對標(biāo)志位的影響。)對標(biāo)志位的影響。(5)指令的適用范圍。)指令的適用范圍。(6)正確估算指令的字節(jié)數(shù)。)正確估算指令的字節(jié)數(shù)。 一般地,操作碼占一般地,操作碼占1字節(jié);操作數(shù)中,直接地址字節(jié);操作數(shù)中,直接地址derict占占1字字節(jié),節(jié),#data占占1字節(jié),字節(jié),#data16占兩字節(jié);操作數(shù)中

35、的占兩字節(jié);操作數(shù)中的a、b、r0r7、 ri、dptr、 a+ dptr、 a+ pc等均隱含在等均隱含在操作碼中。操作碼中。鄭州大學(xué)2.3.1 數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令 cpu在進行算術(shù)和邏輯操作時,絕大多數(shù)指令都有操作數(shù),在進行算術(shù)和邏輯操作時,絕大多數(shù)指令都有操作數(shù),所以數(shù)據(jù)傳送是一種最基本、最主要的操作。所以數(shù)據(jù)傳送是一種最基本、最主要的操作。 數(shù)據(jù)傳送指令共數(shù)據(jù)傳送指令共29條,可分為內(nèi)部條,可分為內(nèi)部ram數(shù)據(jù)傳送、外部數(shù)據(jù)傳送、外部ram數(shù)據(jù)傳送、程序存儲器數(shù)據(jù)傳送、數(shù)據(jù)交換和堆棧操作等數(shù)據(jù)傳送、程序存儲器數(shù)據(jù)傳送、數(shù)據(jù)交換和堆棧操作等五類。五類。 尋址范圍:尋址范圍:累加器累

36、加器a、片內(nèi)、片內(nèi)ram、sfr、片外、片外ram。 功能:功能:(目的地址)(目的地址)(源地址)。(源地址)。 可表示為可表示為: ; 源地址單元的內(nèi)容不變。源地址單元的內(nèi)容不變。 對標(biāo)志位的影響:對標(biāo)志位的影響:除以累加器除以累加器a為目的操作數(shù)的數(shù)據(jù)傳送指令為目的操作數(shù)的數(shù)據(jù)傳送指令對對p標(biāo)志位有影響外,其余均不影響標(biāo)志位。標(biāo)志位有影響外,其余均不影響標(biāo)志位。 鄭州大學(xué)1內(nèi)部內(nèi)部ram數(shù)據(jù)傳送指令(數(shù)據(jù)傳送指令(16條)條) 格式:格式: mov , 其中:其中: 表示目的操作數(shù),表示目的操作數(shù), 表示源操表示源操作數(shù)。作數(shù)。范圍:范圍:源、目的操作數(shù)均在片內(nèi)源、目的操作數(shù)均在片內(nèi)ra

37、m、sfr中。中。指令形式:指令形式:按目的操作數(shù)可將內(nèi)部數(shù)據(jù)傳送指令分為以下幾類。按目的操作數(shù)可將內(nèi)部數(shù)據(jù)傳送指令分為以下幾類。(1)以累加器)以累加器a為目的操作數(shù)(為目的操作數(shù)(4條)條) mov a , 其中:其中: 包括包括rn、ri、direct、#data。(各個符號的意義見(各個符號的意義見2.1.3節(jié)指令中的常用符號節(jié)指令中的常用符號 ,以下同),以下同) 只影響只影響psw中的中的p標(biāo)志位,不影響其他標(biāo)志位。標(biāo)志位,不影響其他標(biāo)志位。 (2)以工作寄存器)以工作寄存器rn為目的操作數(shù)為目的操作數(shù)(3條)條) mov rn , 其中:其中: 包括包括a、direct、#dat

38、a 。鄭州大學(xué)(3 3)以直接地址單元為目的操作數(shù))以直接地址單元為目的操作數(shù)(5 5條)條) mov direct , 其中:其中: 包括包括a、rn、ri、direct 、#data 。(4 4)以間址寄存器)以間址寄存器riri為目的操作數(shù)為目的操作數(shù)(3 3條)條) mov ri , 其中:其中: 包括包括a、direct 、#data 。(5 5)1616位數(shù)據(jù)傳送指令位數(shù)據(jù)傳送指令(1 1條)條) mov dptr , #data16注:注:(2)、()、(3)、()、(4)、)、(5)均不影響標(biāo)志位。)均不影響標(biāo)志位。 內(nèi)部數(shù)據(jù)傳送指令的傳內(nèi)部數(shù)據(jù)傳送指令的傳送關(guān)系如右圖所示。送

39、關(guān)系如右圖所示。鄭州大學(xué)2 2外部外部ramram數(shù)據(jù)傳送指令(數(shù)據(jù)傳送指令(4 4條)條) cpu與外部數(shù)據(jù)存儲器之間進行數(shù)據(jù)傳送時,必須使用外與外部數(shù)據(jù)存儲器之間進行數(shù)據(jù)傳送時,必須使用外部傳送指令,只能通過累加器部傳送指令,只能通過累加器a,采用寄存器間接尋址(用,采用寄存器間接尋址(用r0, r1和和dptr三個間接尋址的寄存器)方式完成。三個間接尋址的寄存器)方式完成。 指令格式:指令格式: movx a , movx , a 其中:其中: 、 包括包括dptr、ri。ri(r0, r1)只能訪問片外)只能訪問片外ram的低的低256個單元;個單元;dptr可以訪問片可以訪問片外外r

40、am的全部的全部64kb的空間。的空間。 對標(biāo)志位的影響:對標(biāo)志位的影響: movx a , 指令只影響指令只影響psw中中的的p標(biāo)志位,不影響其他標(biāo)志位;標(biāo)志位,不影響其他標(biāo)志位; movx , a指令不影響標(biāo)志位。指令不影響標(biāo)志位。鄭州大學(xué)3 3程序存儲器(程序存儲器(romrom)數(shù)據(jù)傳送指令(查表指令)()數(shù)據(jù)傳送指令(查表指令)(2 2條)條)p52p52 程序存儲器的數(shù)據(jù)傳送是單向的,并且只能讀到累加器程序存儲器的數(shù)據(jù)傳送是單向的,并且只能讀到累加器a a中。中。這類指令專門用于查表,又稱為查表指令。這類指令專門用于查表,又稱為查表指令。 指令格式:指令格式:movc a , a+

41、dptr ;(a)(a)+(dptr) movc a , a+pc ;(pc)(pc)+1 (a)(a)+(pc) 兩條指令的異同:兩條指令的異同:其功能完全相同,但使用中存在著差異。其功能完全相同,但使用中存在著差異。 (1 1)查表的位置要求不同)查表的位置要求不同 采用采用dptr作為基地址寄存器,表可以放在作為基地址寄存器,表可以放在64kb程序存儲程序存儲器空間的任何地址,使用方便,故稱為遠程查表。器空間的任何地址,使用方便,故稱為遠程查表。 采用采用pc作為基地址寄存器,具體的表在程序存儲器中只能作為基地址寄存器,具體的表在程序存儲器中只能在查表指令后的在查表指令后的256b的地址

42、空間中,使用有限制,故稱為近程的地址空間中,使用有限制,故稱為近程查表。查表。鄭州大學(xué) (2 2)偏移量的計算方法不同)偏移量的計算方法不同 采用采用dptr作為基地址寄存器,查表地址為作為基地址寄存器,查表地址為 (a)+(dptr)。)。 采用采用pc作為基地址寄存器,查表地址為作為基地址寄存器,查表地址為 (a)+(pc)+1。 因此偏移量的計算方法不同。因此偏移量的計算方法不同。 采用采用dptr作為基地址寄存器,作為基地址寄存器,a為欲查數(shù)值距離表首地為欲查數(shù)值距離表首地址的值;采用址的值;采用pc作為基地址寄存器,作為基地址寄存器, a的值必須預(yù)先設(shè)置為:的值必須預(yù)先設(shè)置為: a的

43、值的值=表首地址當(dāng)前指令的表首地址當(dāng)前指令的pc值值14 4數(shù)據(jù)交換指令(數(shù)據(jù)交換指令(5 5條)條) (1 1)半字節(jié)數(shù)據(jù)交換指令()半字節(jié)數(shù)據(jù)交換指令(2 2條)條) 指令格式:指令格式: swap a ;(a)30(a)74 xchd a , ri ;(a)30((ri))30 鄭州大學(xué)(2)字節(jié)交換指令()字節(jié)交換指令(3條)條) 指令格式:指令格式:xch a , ; 包括包括rn、ri、direct 。5堆棧操作指令(堆棧操作指令(2條)條) 堆棧:按照堆棧:按照“先進后出先進后出”原則,進、出數(shù)據(jù)的存儲區(qū)域。原則,進、出數(shù)據(jù)的存儲區(qū)域。棧頂:剛?cè)霔5臄?shù)據(jù)構(gòu)成棧頂,數(shù)據(jù)的進出在棧頂

44、進行。棧頂:剛?cè)霔5臄?shù)據(jù)構(gòu)成棧頂,數(shù)據(jù)的進出在棧頂進行。指令格式:指令格式: push direct ; sp(sp)+1 , (sp)(direct) pop direct ;(direct)(sp) , sp(sp) 1特點:特點:堆棧操作指令是一種特殊的數(shù)據(jù)傳送指令,是根據(jù)棧指針堆棧操作指令是一種特殊的數(shù)據(jù)傳送指令,是根據(jù)棧指針sp中的棧頂?shù)刂愤M行數(shù)據(jù)操作。堆棧操作指令的實質(zhì)是以棧指針中的棧頂?shù)刂愤M行數(shù)據(jù)操作。堆棧操作指令的實質(zhì)是以棧指針sp為間址寄存器的間址尋址方式。為間址寄存器的間址尋址方式。堆棧區(qū)應(yīng)避開使用的工作寄存堆棧區(qū)應(yīng)避開使用的工作寄存器區(qū)和其他需要使用的數(shù)據(jù)區(qū),系統(tǒng)復(fù)位后,

45、器區(qū)和其他需要使用的數(shù)據(jù)區(qū),系統(tǒng)復(fù)位后,spsp的初始值為的初始值為07h07h。為了避免重疊,一般初始化時要重新設(shè)置為了避免重疊,一般初始化時要重新設(shè)置spsp。 鄭州大學(xué)功能:功能:實現(xiàn)實現(xiàn)ram單元數(shù)據(jù)送入棧頂或由棧頂取出數(shù)據(jù)送單元數(shù)據(jù)送入棧頂或由棧頂取出數(shù)據(jù)送至至ram單元。單元。適用場合:適用場合:用于執(zhí)行中斷、子程序調(diào)用、參數(shù)傳遞等程用于執(zhí)行中斷、子程序調(diào)用、參數(shù)傳遞等程序的斷點保護和現(xiàn)場保護。序的斷點保護和現(xiàn)場保護。書寫方式:書寫方式:堆棧操作指令是直接尋址指令,直接地址不堆棧操作指令是直接尋址指令,直接地址不能是寄存器名,因此應(yīng)注意指令的書寫格式。例如:能是寄存器名,因此應(yīng)注意

46、指令的書寫格式。例如: push acc(不能寫成(不能寫成push a) pop 00h (不能寫成(不能寫成pop r0)鄭州大學(xué)數(shù)據(jù)傳送指令小結(jié)n3種mov指令:片內(nèi)ram數(shù)據(jù)傳送 mov片外ram數(shù)據(jù)傳送 movx程序存儲器數(shù)據(jù)傳送 movcn2種數(shù)據(jù)交換:半字節(jié)、字節(jié)n堆棧操作:入棧、出棧鄭州大學(xué)2.3.2 2.3.2 算術(shù)運算指令算術(shù)運算指令 算術(shù)運算指令的兩個參與運算的操作數(shù),算術(shù)運算指令的兩個參與運算的操作數(shù),一個存放在累加一個存放在累加器器a中中(此操作數(shù)也為目的操作數(shù));一個存放在(此操作數(shù)也為目的操作數(shù));一個存放在r0r7或或ri(片內(nèi)(片內(nèi)ram)中,或是)中,或是#

47、data(立即數(shù))。(立即數(shù))。 算術(shù)運算指令可以分為加法指令、帶進位的加法指令、帶算術(shù)運算指令可以分為加法指令、帶進位的加法指令、帶借位的減法指令、十進制調(diào)整指令、加借位的減法指令、十進制調(diào)整指令、加1指令、減指令、減1指令、乘除指令、乘除指令。指令。 1. 加法指令加法指令(4條)條) 指令格式:指令格式: add a , ; (a)(a)+ 其中:其中: 包括包括rn、ri、direct、#data。 對標(biāo)志位的影響:對標(biāo)志位的影響:add對對psw中的所有標(biāo)志位均產(chǎn)生影響。中的所有標(biāo)志位均產(chǎn)生影響。 鄭州大學(xué)p54 例2.30分析執(zhí)行如下程序段后,a、cy、ac、p、ov的結(jié)果。 00

48、110110mov a,#36h +11101111add a,#0efh 00100101a=25h cy=1,ac=1,p=1,ov=0溢出:運算結(jié)果超出了計算機所能表達數(shù)據(jù)的范圍。如,8位二進制數(shù)表示有符號數(shù)的范圍是-128-127。雙高位判別溢出:將最高位產(chǎn)生的進位記為cs,次高位產(chǎn)生的進位記為cp,ov=cs cp 鄭州大學(xué)2. 帶進位的加法指令(帶進位的加法指令(4條)條) 指令格式:指令格式: addc a , ; (a)(a)+ + (cy) 其中:其中: 包括包括rn、ri、direct、#data。對標(biāo)志位的影響:對標(biāo)志位的影響:addc對對psw中的所有標(biāo)志位均產(chǎn)生影響。

49、中的所有標(biāo)志位均產(chǎn)生影響。 3. 3. 帶借位的減法指令帶借位的減法指令(4 4條)條) 指令格式:指令格式: subb a , ; (a)(a) (cy) 其中:其中: 包括包括rn、ri、direct、#data。對標(biāo)志位的影響:對標(biāo)志位的影響:subb對對psw中的所有標(biāo)志位均產(chǎn)生影響。中的所有標(biāo)志位均產(chǎn)生影響。 注意:注意:mcs-51指令系統(tǒng)中沒有不帶借位的減法指令,欲實現(xiàn)不指令系統(tǒng)中沒有不帶借位的減法指令,欲實現(xiàn)不帶借位的減法計算,應(yīng)預(yù)先置帶借位的減法計算,應(yīng)預(yù)先置cy=0(利用(利用clr c指令),然后指令),然后利用帶借位的減法指令利用帶借位的減法指令subb實現(xiàn)計算。實現(xiàn)計

50、算。 鄭州大學(xué)4. 十進制調(diào)整指令(十進制調(diào)整指令(1條)條)bcd碼:4位二進制編碼表示1位10進制數(shù)。十進制加法:25+8=33bcd碼: 00100101 +00001000 00101101不是(00110011)bcd原因:十進制運算,逢10進位,4位二進制運算,逢16進位。修正:結(jié)果00101101低4位超過9,低4位加6修正 + 0110 00110011修正原則:低4位超過9或向高4位有進位(ac=1),在低4位加6修正;高4位超過9或向上有進位(cy=1),在高4位加6修正。鄭州大學(xué) n組合型bcd碼:一個字節(jié)表示兩位十進制數(shù)。 如25:(0010 0101)bcd 47:

51、(0100 0111)bcd n非組合型bcd碼:一個字節(jié)表示一位十進制數(shù),且用該字節(jié)的低4位表示,高4位任意。 如25:(0000 0010)bcd (0000 0101)bcd51單片機的指令只有對壓縮型bcd加法調(diào)整的指令。鄭州大學(xué)十進制調(diào)整指令十進制調(diào)整指令 調(diào)整指令調(diào)整指令功能:功能:跟在加法指令跟在加法指令add或或addc后面,對運算結(jié)果后面,對運算結(jié)果的十進制數(shù)進行的十進制數(shù)進行bcd碼修正,使它調(diào)整為壓縮的碼修正,使它調(diào)整為壓縮的bcd碼數(shù),以碼數(shù),以完成十進制加法運算功能。完成十進制加法運算功能。 特點:特點:十進制調(diào)整指令也稱為十進制調(diào)整指令也稱為bcd碼修正指令,這是一

52、條專碼修正指令,這是一條專用指令。兩個壓縮的用指令。兩個壓縮的bcd碼按二進制數(shù)相加后必須經(jīng)本指令調(diào)碼按二進制數(shù)相加后必須經(jīng)本指令調(diào)整才能得到壓縮的整才能得到壓縮的bcd碼的和。源操作數(shù)只能在累加器碼的和。源操作數(shù)只能在累加器a中,中,結(jié)果存入結(jié)果存入a中。中。 指令格式:指令格式:da a 注意:注意:十進制調(diào)整指令不能對減法指令進行修正。十進制調(diào)整指令不能對減法指令進行修正。bcd碼減碼減法必須采用法必須采用bcd補碼運算法則,變減法為補碼加法(被減數(shù)補碼運算法則,變減法為補碼加法(被減數(shù)+減數(shù)的補碼,減數(shù)的補碼減數(shù)的補碼,減數(shù)的補碼=9ah減數(shù))。然后對其進行十進減數(shù))。然后對其進行十進

53、制調(diào)整來實現(xiàn)。制調(diào)整來實現(xiàn)。 鄭州大學(xué)5. 5. 加加1 1指令(指令(5 5條)條) 功能:功能:加加1指令又稱為增量指令,其功能是使操作數(shù)所指定的單指令又稱為增量指令,其功能是使操作數(shù)所指定的單元的內(nèi)容加元的內(nèi)容加1 。指令格式:指令格式:inc ; + 1 其中:其中: 即是源操作數(shù)又是目的操作數(shù)(即只有即是源操作數(shù)又是目的操作數(shù)(即只有一個操作數(shù)),包括一個操作數(shù)),包括 a、rn、direct、ri、 dptr 。對標(biāo)志位的影響:對標(biāo)志位的影響:除對累加器除對累加器a操作影響操作影響p標(biāo)志位外,其他操作標(biāo)志位外,其他操作均不影響均不影響psw的各標(biāo)志位。的各標(biāo)志位。 6. 減減1指令

54、(指令(4條)條) 功能:功能:減減1指令又稱為減量指令,其功能是使操作數(shù)所指定的單指令又稱為減量指令,其功能是使操作數(shù)所指定的單元的內(nèi)容減元的內(nèi)容減1 。指令格式:指令格式:dec ; 1 其中:其中: 即是源操作數(shù)又是目的操作數(shù)(即只有一個即是源操作數(shù)又是目的操作數(shù)(即只有一個操作數(shù)),包括操作數(shù)),包括 a、rn、direct、ri。對標(biāo)志位的影響:對標(biāo)志位的影響:同加同加1指令。指令。鄭州大學(xué)7. 乘除指令(乘除指令(2條)條) 功能:功能:實現(xiàn)乘法或除法操作。實現(xiàn)乘法或除法操作。 特點:特點:乘除指令在乘除指令在mcs-51指令系統(tǒng)中執(zhí)行時間最長,均為指令系統(tǒng)中執(zhí)行時間最長,均為四周

55、期指令。四周期指令。 指令格式:指令格式: mul ab ;(;(b)()(a)(a)(b) div ab ; (a)(a)/(b)(b) 對標(biāo)志位的影響:對標(biāo)志位的影響:乘除指令影響乘除指令影響psw中的中的cy, ov, p標(biāo)志位。標(biāo)志位。其中,其中,cy位總是被清位總是被清0的,的,p是由累加器是由累加器a中中1的個數(shù)的奇偶性的個數(shù)的奇偶性決定的。乘法運算中,若乘積大于決定的。乘法運算中,若乘積大于ffh,則,則ov標(biāo)志位置標(biāo)志位置1,否,否則清則清0。除法運算中,若除數(shù)為。除法運算中,若除數(shù)為0,則,則ov標(biāo)志位置標(biāo)志位置1,否則清,否則清0。 鄭州大學(xué)算術(shù)運算指令小結(jié)nadd,adc

56、,da a 目的操作數(shù)只能是a,源操作數(shù)可以是rn,片內(nèi)ram(直接,間接),立即數(shù)nsbb 目的操作數(shù)只能是a,源操作數(shù)同上。ninc,dec 注意操作數(shù)的尋址方式。nmul a,b放操作數(shù),結(jié)果在bandiv a/b,商在a,余數(shù)在b鄭州大學(xué)閱讀程序段 將壓縮型將壓縮型bcd碼碼20h和片內(nèi)和片內(nèi)ram 30h單單元存放的壓縮元存放的壓縮型型bcd碼相碼相加,結(jié)果存片內(nèi)加,結(jié)果存片內(nèi)ram 50h。 程序段程序段 mov a,#20h add a,30h da a mov 50h,a sjmp $鄭州大學(xué)2.3.3 2.3.3 邏輯運算和移位指令邏輯運算和移位指令 對標(biāo)志位的影響:對標(biāo)志位

57、的影響:邏輯運算和移位指令中除了兩條帶進位的邏輯運算和移位指令中除了兩條帶進位的循環(huán)移位指令外,其余均不影響循環(huán)移位指令外,其余均不影響psw中的各標(biāo)志位。但當(dāng)目的中的各標(biāo)志位。但當(dāng)目的操作數(shù)是累加器操作數(shù)是累加器a時,影響時,影響psw中的奇偶校驗位中的奇偶校驗位p。 常用的邏輯運算和移位類指令有:常用的邏輯運算和移位類指令有:邏輯與、邏輯或、邏輯異邏輯與、邏輯或、邏輯異或、循環(huán)移位、清或、循環(huán)移位、清0、求反(非)等、求反(非)等24條指令,它們的操作數(shù)都條指令,它們的操作數(shù)都是是8位的。邏輯運算都是按位進行的,除用于邏輯運算外,還可位的。邏輯運算都是按位進行的,除用于邏輯運算外,還可用于

58、模擬各種數(shù)字邏輯電路的功能,進行邏輯電路的設(shè)計。用于模擬各種數(shù)字邏輯電路的功能,進行邏輯電路的設(shè)計。 在程序設(shè)計中,常用邏輯運算的運算規(guī)則。如,在程序設(shè)計中,常用邏輯運算的運算規(guī)則。如,a1=a a0=0 aa=a a+1=1 a+0=a a+a=aa 1=a a 0= a a a = 01邏輯與運算指令邏輯與運算指令(6條)條) 功能:功能:實現(xiàn)兩個操作數(shù)的邏輯與。實現(xiàn)兩個操作數(shù)的邏輯與。指令格式:指令格式:anl a , ; 包括包括rn、ri、direct、#data。 anl direst , ; 包括包括a、#data。鄭州大學(xué) 適用場合適用場合:實現(xiàn)邏輯與,主要用于操作數(shù)的某些位不

59、實現(xiàn)邏輯與,主要用于操作數(shù)的某些位不變(這些位與變(這些位與“1”),某些位置),某些位置0(這些位與(這些位與“0”)。)。2邏輯或運算指令邏輯或運算指令(6條)條)功能:功能:實現(xiàn)兩個操作數(shù)的邏輯或。實現(xiàn)兩個操作數(shù)的邏輯或。指令格式:指令格式: orl a , ; 包括包括rn、ri、direct、#data。 orl direst , ; 包括包括a、#data。適用場合:適用場合:實現(xiàn)邏輯或,主要用于操作數(shù)的某些位不實現(xiàn)邏輯或,主要用于操作數(shù)的某些位不變(這些位或變(這些位或“0”),某些位置),某些位置1(這些位或(這些位或“1”)。)。鄭州大學(xué)3邏輯異或運算指令(邏輯異或運算指令(

60、6條)條) 功能:功能:實現(xiàn)兩個操作數(shù)的邏輯異或。實現(xiàn)兩個操作數(shù)的邏輯異或。指令格式:指令格式:xrl a , ; 包括包括rn、ri、direct、#data。 xrl direst , ; 包括包括a、#data。適用場合:適用場合:實現(xiàn)邏輯異或,主要用于操作數(shù)的某些位不變(這實現(xiàn)邏輯異或,主要用于操作數(shù)的某些位不變(這些位異或些位異或“0”),某些位取反(這些位異或),某些位取反(這些位異或“1”)。)。4 4循環(huán)移位指令循環(huán)移位指令(4 4條)條) mcs-51單片機的循環(huán)移位指令共有不帶進位的循環(huán)左、右單片機的循環(huán)移位指令共有不帶進位的循環(huán)左、右移位(操作碼為移位(操作碼為rl, r

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論