單片機(jī)與接口技術(shù)-4 51單片機(jī)的CISC指令集_第1頁(yè)
單片機(jī)與接口技術(shù)-4 51單片機(jī)的CISC指令集_第2頁(yè)
單片機(jī)與接口技術(shù)-4 51單片機(jī)的CISC指令集_第3頁(yè)
單片機(jī)與接口技術(shù)-4 51單片機(jī)的CISC指令集_第4頁(yè)
單片機(jī)與接口技術(shù)-4 51單片機(jī)的CISC指令集_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

單片機(jī)與接口技術(shù)第4日CISC指令集1第1日單片機(jī)概述1.C51單片機(jī)指令系統(tǒng)概述指令是指揮計(jì)算機(jī)工作的命令。一種計(jì)算機(jī)所能執(zhí)行的指令集合稱之為計(jì)算機(jī)指令系統(tǒng)。MCS-51單片機(jī)主要有兩種形式:機(jī)器語言指令匯編語言指令用二進(jìn)制代碼表示的指令稱為機(jī)器語言指令,也稱機(jī)器碼。例如:“累加器A加1”指令用二進(jìn)制數(shù)表示時(shí),是“00000100”,在程序存儲(chǔ)器中占用一個(gè)字節(jié)單元。用容易記憶的縮寫符號(hào)表示機(jī)器語言指令就是匯編語言指令。例如,“A加B”用英語寫出來是“AddBtoA”,縮寫成“ADDA,B”。這個(gè)“ADDA,B”就是匯編語言指令。MCS-51單片機(jī)的開發(fā)商約定:“ADDA,B”與25F0H對(duì)應(yīng)。我們將“ADD”縮寫符號(hào)稱為“助記符”。編寫機(jī)器語言程序?qū)嵸|(zhì)上就是用匯編語言編寫程序。

匯編語言指令機(jī)器語言指令

MOVA,#0AH74H0AH

ADDA,#14H

24H14H第1日單片機(jī)概述8051匯編語言指令格式[標(biāo)號(hào):]操作碼[目的操作數(shù)][,源操作數(shù)];[注釋]

LOOP:MOV

A,

3AH;(A)←(3AH)

指令組成:操作碼助記符操作數(shù)1.標(biāo)號(hào)

標(biāo)號(hào)是語句地址的標(biāo)志符號(hào),代表該語句指令代碼第一個(gè)字節(jié)的地址。

(1)標(biāo)號(hào)由1~8個(gè)ASCII字符組成,且第一個(gè)字符必須是字母,其余字符可以是字母、數(shù)字或其他特定字符。

(2)不能使用該匯編語言已經(jīng)定義了的符號(hào)作為標(biāo)號(hào)。如指令助記符、寄存器符號(hào)名稱等。

(3)標(biāo)號(hào)后必須跟冒號(hào)。

2.操作碼操作碼用于規(guī)定語句執(zhí)行的操作。它是匯編語句中唯一不能空缺的部分,是語句的核心,它用指令助記符表示。單片機(jī)與接口技術(shù)第1日單片機(jī)概述3.操作數(shù)操作數(shù)用于給指令的操作提供數(shù)據(jù)或地址。在一條匯編語句中操作數(shù)可能是空缺的,也可能包括一項(xiàng),還可能包括兩項(xiàng)或三項(xiàng)。當(dāng)有多個(gè)操作數(shù)時(shí),各操作數(shù)間以逗號(hào)分隔。

(1)工作寄存器名

(2)特殊功能寄存器名

(3)標(biāo)號(hào)名

(4)常數(shù)

(5)符號(hào)“$”,表示程序計(jì)數(shù)器PC的當(dāng)前值

(6)表達(dá)式

4.注釋

注釋不屬于匯編語句的功能部分,它只是對(duì)語句的說明。注釋字段可以增加程序的可讀性,有助于編程人員的閱讀和維護(hù)。注釋字段必須以分號(hào)“;”開頭,長(zhǎng)度不限,可以換行接著書寫,但換行時(shí)應(yīng)注意在開頭使用分號(hào)“;”。單片機(jī)與接口技術(shù)第1日單片機(jī)概述指令中的常用符號(hào):

Rn(n=0~7):表示當(dāng)前工作寄存器R0~R7中的任一個(gè)寄存器。

Ri(i=0或1):表示通用寄存器組中用于間接尋址的兩個(gè)寄存器R0,R1。

#data:表示8位直接參與操作的立即數(shù)。

#data16:表示16位直接參與操作的立即數(shù)。

direct:表示片內(nèi)RAM的8位單元地址。

addr11:表示11位目的地址,主要用于ACALL和AJMP指令中。

addr16:表示16位目的地址,主要用于LCALL和LJMP指令中。

rel:用補(bǔ)碼形式表示的8位二進(jìn)制地址偏移量,取值范圍為128~+127,主要用于相對(duì)轉(zhuǎn)移指令,以形成轉(zhuǎn)移的目的地址。

DPTR:數(shù)據(jù)指針,用于寄存器間接尋址方式和變址尋址方式。單片機(jī)與接口技術(shù)第1日單片機(jī)概述

bit:表示片內(nèi)RAM位尋址區(qū)或者是可以位尋址的SFR的位地址。

A(或ACC)、B:表示累加器、B寄存器。

C:表示PSW中的進(jìn)位標(biāo)志位Cy。

@:在間接尋址方式中,表示間接尋址寄存器指針的前綴標(biāo)志。

$:表示當(dāng)前的指令地址。

/:位操作數(shù)的前綴,表示對(duì)該位取反。(X):表示由X所指定的某寄存器或某單元中的內(nèi)容。

((X)):表示由X間接尋址單元中的內(nèi)容?!罕硎局噶畹牟僮鹘Y(jié)果是將箭頭右邊的內(nèi)容傳送到左邊。→:表示指令的操作結(jié)果是將箭頭左邊的內(nèi)容傳送到右邊?!?、∧、⊕:表示邏輯或、與、異或<=>:表示數(shù)據(jù)交換。51單片機(jī)指令系統(tǒng)的分類(111條)

一、

按指令所占存儲(chǔ)器字節(jié)數(shù)分:(1)單字節(jié)指令(49條)(2)雙字節(jié)指令(46條)(3)三字節(jié)指令(16條)三、按指令功能分:

(1)數(shù)據(jù)傳送指令(29條)(2)算術(shù)運(yùn)算指令(24條)(3)邏輯運(yùn)算指令(24條)(4)控制轉(zhuǎn)移類指令(17條)(5)位操作指令(17條)二、按指令執(zhí)行周期數(shù)分:(1)單周期指令(64條)(2)雙周期指令(45條)(3)四周期指令(2條)單片機(jī)與接口技術(shù)第1日單片機(jī)概述2.51單片機(jī)尋址方式尋址方式:在計(jì)算機(jī)中,說明操作數(shù)所在地址的方法稱為操作數(shù)的尋址方式。計(jì)算機(jī)執(zhí)行程序?qū)嶋H上是在不斷尋找操作數(shù)并進(jìn)行操作的過程。每種計(jì)算機(jī)在設(shè)計(jì)時(shí)已決定了它具有哪些尋址方式,尋址方式越多,計(jì)算機(jī)的靈活性越強(qiáng),指令系統(tǒng)也就越復(fù)雜。

MCS-51單片機(jī)的指令系統(tǒng)提供了7種尋址方式,分別為立即尋址、直接尋址、寄存器尋址、寄存器間接尋址、變址尋址、相對(duì)尋址和位尋址。一條指令可能含多種尋址方式。1.立即尋址定義:將立即參與操作的數(shù)據(jù)直接寫在指令中,這種尋址方式稱為立即尋址。特點(diǎn):指令中直接含有所需的操作數(shù)。該操作數(shù)可以是8位的,也可以是16位的,常常處在指令的第二字節(jié)和第三字節(jié)的位置上。立即數(shù)通常使用#data或#data16表示,在立即數(shù)前面加“#”標(biāo)志,用以和直接尋址中的直接地址(direct或bit)相區(qū)別。MOVA,#30H這類指令大都是雙字節(jié)指令,僅有指令:MOVDPTR,#DATA16是三字節(jié)指令,它提供兩字節(jié)立即數(shù),如:MOVDRTR,#1600H,它的機(jī)器指令格式下所示:100100000001011000000000使用專用的匯編程序把編寫的匯編語言源程序匯編成機(jī)器語言程序,對(duì)立即數(shù)的書寫一般有要求:對(duì)于單字節(jié)立即數(shù),若數(shù)值大于等于A0H,則要在其前面加一個(gè)0,如指令“MOV

A,#0A0H”,該指令含義是把立即數(shù)A0H送累計(jì)器;對(duì)于雙字節(jié)立即數(shù),若數(shù)值大于等于A000H,則要在其前面加一個(gè)0。對(duì)于直接地址和偏移量也按相同方法書寫。2.直接尋址定義:將操作數(shù)的地址直接存放在指令中,這種尋址方式稱為直接尋址。特點(diǎn):指令中含有操作數(shù)的地址。該地址指出了參與操作的數(shù)據(jù)所在的字節(jié)單元地址或位地址。計(jì)算機(jī)執(zhí)行它們時(shí)便可根據(jù)直接地址找到所需要的操作數(shù)。尋址范圍:ROM、片內(nèi)RAM區(qū)、SFR和位地址空間。操作碼直接地址10011111APC程序存儲(chǔ)器…1110010100111010PC+1內(nèi)部RAM…3AH39H100111111…MOVA,3AH定義:操作數(shù)存放在MCS-51內(nèi)部的某個(gè)工作寄存器Rn(R0~R7)或部分專用寄存器中,這種尋址方式稱為寄存器尋址。特點(diǎn):由指令指出某一個(gè)寄存器的內(nèi)容作為操作數(shù)。存放操作數(shù)的寄存器在指令代碼中不占據(jù)單獨(dú)的一個(gè)字節(jié),而是嵌入(隱含)到操作碼字節(jié)中。尋址范圍:四組通用寄存器組Rn(R0~R7)、部分專用寄存器(A,B,DPTR,Cy)。3.寄存器尋址4.寄存器間接尋址定義:指令給出的寄存器中存放的是操作數(shù)的地址。這種尋址方式稱為寄存器間接尋址,簡(jiǎn)稱為寄存器間址。特點(diǎn):指令給出的寄存器中存放的是操作數(shù)地址。寄存器間接尋址是一種二次尋找操作數(shù)地址的尋址方式,寄存器前邊必須加前綴符號(hào)“@”。不能用于尋址特殊功能寄存器SFR。尋址范圍:內(nèi)部RAM低128B(只能使用R0或R1作間址寄存器)、外部RAM(只能使用DPTR作間址寄存器)。對(duì)于外部低256單元RAM的訪問,除可以使用DPTR外,還可以使用R0或R1作間址寄存器(提供低8位地址)。MOVA,R1MOVA,@R1PC操作碼程序存儲(chǔ)器11100110….….….~內(nèi)部RAM47H65H65HR0….~~~47HAMOVA,@R05.變址尋址(基址+變址寄存器間接尋址)定義:操作數(shù)存放在變址寄存器(累加器A)和基址寄存器(DPTR或PC)相加形成的16位地址單元中。這種尋址方式稱為基址加變址寄存器間接尋址,簡(jiǎn)稱為變址尋址。

特點(diǎn):指令操作碼中隱含作為基址寄存器用的DPTR(或PC)和作為變址用的累加器A。在執(zhí)行變址尋址指令時(shí),MCS-51單片機(jī)先把基地址(DPTR或PC的內(nèi)容)和地址偏移量(A的內(nèi)容)相加,以形成操作數(shù)地址,再由操作數(shù)地址找到操作數(shù),并完成相應(yīng)的操作。變址尋址方式是單字節(jié)指令。尋址范圍:只能對(duì)程序存儲(chǔ)器ROM進(jìn)行尋址,主要用于查表性質(zhì)的訪問。

注意:累加器A中存放的操作數(shù)地址相對(duì)基地址的偏移量的范圍為00H~FFH(無符號(hào)數(shù))。MCS-51單片機(jī)共有以下三條變址尋址指令:

MOVCA,@A+PC

;(A)←(A)+(PC)+1MOVCA,@A+DPTR;(A)←(A)+(DPTR)

JMP@A+DPTR;(PC)←(A)+(DPTR)基址寄存器1000H變址寄存器PCDPTRA程序存儲(chǔ)器65H….….1000H+30H1030H30HMOVCA,@A+PC;(A)←(A)+(PC)+1MOVCA,@A+DPTR;(A)←(A)+(DPTR)6.相對(duì)尋址定義:將程序計(jì)數(shù)器PC的當(dāng)前值(取出本條指令后的PC值)與指令第二個(gè)字節(jié)給出的偏移量(rel)相加,形成新的轉(zhuǎn)移目標(biāo)地址。稱為相對(duì)尋址方式。特點(diǎn):相對(duì)尋址方式是為實(shí)現(xiàn)程序的相對(duì)轉(zhuǎn)移而設(shè)計(jì)的,為相對(duì)轉(zhuǎn)移指令所使用,其指令碼中含有相對(duì)地址偏移量,能生成浮動(dòng)代碼。如:SJMPrel;(PC)←(PC)+2+rel相對(duì)轉(zhuǎn)移指令的目的地址=指令地址+指令字節(jié)數(shù)+偏移量尋址范圍:只能對(duì)程序存儲(chǔ)器ROM進(jìn)行尋址。相對(duì)地址偏移量(rel)是一個(gè)帶符號(hào)的8位二進(jìn)制補(bǔ)碼,其取值范圍為128~+127(以PC為中間的256個(gè)字節(jié)范圍)。16

以當(dāng)前的PC值加上指令中給出的相對(duì)偏移量rel而形成轉(zhuǎn)移目的地址的尋址方式。2000H+02H+28H······SJMP28H202AH程序存儲(chǔ)器2000H2002H源地址目的地址rel轉(zhuǎn)移指令本身字節(jié)數(shù)rel是有符號(hào)的8位二進(jìn)制數(shù),用補(bǔ)碼表示。相對(duì)偏移在+127~-128字節(jié)單元之間。7.位尋址定義:指令中給出的操作數(shù)是一個(gè)可單獨(dú)尋址的位地址,這種尋址方式稱為位尋址方式。特點(diǎn):位尋址是直接尋址方式的一種,其特點(diǎn)是對(duì)8位二進(jìn)制數(shù)中的某一位的地址進(jìn)行操作。尋址范圍:片內(nèi)RAM低128B(20H-2FH)中位尋址區(qū)、80H以上部分SFR??晌粚ぶ返奈坏刂返谋硎拘问饺缦拢海?)直接使用位地址形式。如:

MOV00H,C;(00H)←(Cy)其中:00H是片內(nèi)RAM中20H地址單元的第0位。(2)字節(jié)地址加位序號(hào)的形式。如:

MOV20H.0,C;(20H.0)←(Cy)其中:20H.0是片內(nèi)RAM中20H地址單元的第0位。(3)位的符號(hào)地址(位名稱)的形式。對(duì)于部分特殊功能寄存器,其各位均有一個(gè)特定的名字,所以可以用它們的位名稱來訪問該位。如:

ANLC,P;(C)←(C)∧(P)其中:P是PSW的第0位,C是PSW的第7位。

(4)字節(jié)符號(hào)地址(字節(jié)名稱)加位序號(hào)的形式。對(duì)于部分特殊功能寄存器(如狀態(tài)標(biāo)志寄存器PSW),還可以用其字節(jié)名稱加位序號(hào)形式來訪問某一位。如:

CPLPSW.6;(AC)←(/AC)其中:PSW.6表示該位是PSW的第6位。位尋址適用于可以進(jìn)行單獨(dú)位操作的指令,指令中直接給出位地址尋找位操作數(shù)。參與操作的數(shù)據(jù)是1bit而不是1B。位地址用bit表示,以區(qū)別字節(jié)地址direct。

PCPC+11010001000110111程序存儲(chǔ)器操作碼0CyACFORSIRS0OVPPSW內(nèi)部RAM位地址空間26H3736353433323130MOVC,37H0思考:1.判斷下列指令各操作數(shù)的尋址方式(1)MOVA,#65H(2)MOV@R1,65H(3)MOV30H,R2(4)MOVC,20H(5)DJNZR2,rel(6)MOV60H,@R1(7)MOVCA,@A+PC2.

將D5H位的內(nèi)容送入Cy,可用幾種方式表達(dá)?

MCS-51單片機(jī)的指令系統(tǒng)

MCS-51指令系統(tǒng)使用44種助記符,它們代表著33種功能,可以實(shí)現(xiàn)51種操作。指令助記符與操作數(shù)的各種可能的尋址方式的結(jié)合一共可構(gòu)造出111條指令。

MCS-51單片機(jī)指令系統(tǒng)按其功能可分為數(shù)據(jù)傳送類指令、算術(shù)運(yùn)算類指令、邏輯運(yùn)算和移位類指令、控制轉(zhuǎn)移類指令和位操作類指令五大類。學(xué)習(xí)指令系統(tǒng)時(shí),應(yīng)注意:(1)指令的格式、功能。(2)操作碼的含義,操作數(shù)的表示方法。(3)尋址方式,源、目的操作數(shù)的范圍。(4)對(duì)標(biāo)志位的影響。(5)指令的適用范圍。(6)正確估算指令的字節(jié)數(shù)。一般地,操作碼占1字節(jié);操作數(shù)中,直接地址derict占1字節(jié),#data占1字節(jié),#data16占兩字節(jié);操作數(shù)中的A、B、R0~R7、@Ri、DPTR、@A+DPTR、@A+PC等均隱含在操作碼中。1.數(shù)據(jù)傳送指令(29條)

CPU在進(jìn)行算術(shù)和邏輯操作時(shí),絕大多數(shù)指令都有操作數(shù),所以數(shù)據(jù)傳送是一種最基本、最主要的操作。數(shù)據(jù)傳送指令共29條,可分為內(nèi)部RAM數(shù)據(jù)傳送、外部RAM數(shù)據(jù)傳送、程序存儲(chǔ)器數(shù)據(jù)傳送、數(shù)據(jù)交換和堆棧操作等五類。尋址范圍:累加器A、片內(nèi)RAM、SFR、片外RAM。功能:(目的地址)←(源地址)。源地址單元的內(nèi)容不變。對(duì)標(biāo)志位的影響:除以累加器A為目的操作數(shù)的數(shù)據(jù)傳送指令對(duì)P標(biāo)志位有影響外,其余均不影響標(biāo)志位。MOV<目的操作數(shù)>,<源操作數(shù)>目的地址源地址數(shù)據(jù)MOVA,#20H20HA內(nèi)部RAM數(shù)據(jù)傳送指令(16條)

,ARndirect1@RiARndirect2@Ri#dataMOVMOV

DPTR,#data16外部數(shù)據(jù)傳送指令(4條)

MOVX<目的操作數(shù)>,<源操作數(shù)>CPU與外部數(shù)據(jù)存儲(chǔ)器之間進(jìn)行數(shù)據(jù)傳送時(shí),必須使用外部傳送指令,只能通過累加器A,采用寄存器間接尋址(用R0,R1和DPTR三個(gè)間接尋址的寄存器)方式完成。其中:

Ri(R0,R1)只能訪問片外RAM的低256個(gè)單元;DPTR可以訪問片外RAM的全部64KB的空間。,A@DPTR@RiMOVXA@DPTR@Ri程序存儲(chǔ)器數(shù)據(jù)傳送指令(查表指令)(2條)

程序存儲(chǔ)器的數(shù)據(jù)傳送是單向的,并且只能讀到累加器A中。這類指令專門用于查表,又稱為查表指令。

MOVC

A,@A+DPTP;(A)←((A)+(DPTR))

MOVCA,@A+PC;(PC)←(PC)+1,(A)←((A)+(PC))

兩條指令的異同:其功能完全相同,但使用中存在著差異。

1.查表的位置要求不同

采用DPTR作為基地址寄存器,表可以放在64KB程序存儲(chǔ)器空間的任何地址,使用方便,故稱為遠(yuǎn)程查表。采用PC作為基地址寄存器,具體的表在程序存儲(chǔ)器中只能在查表指令后的256B的地址空間中,使用有限制,故稱為近程查表。2.偏移量的計(jì)算方法不同采用DPTR作為基地址寄存器,查表地址為(A)+(DPTR)。采用PC作為基地址寄存器,查表地址為(A)+(PC)+1。因此偏移量的計(jì)算方法不同。采用DPTR作為基地址寄存器,A為欲查數(shù)值距離表首地址的值;采用PC作為基地址寄存器,A的值必須預(yù)先設(shè)置為:

A的值=表首地址-當(dāng)前指令的PC值-1

PUSHdirect;SP←(SP)+1,((SP))←(direct)

POPdirect;(direct)←((SP)),SP←(SP)1SP(SP)+1SP…PUSHACC(ACC)SPSP(SP)-1…POPACC((SP))ACC

堆棧操作指令是一種特殊的數(shù)據(jù)傳送指令,是根據(jù)棧指針SP中的棧頂?shù)刂愤M(jìn)行數(shù)據(jù)操作。堆棧操作指令的實(shí)質(zhì)是以棧指針SP為間址寄存器的間址尋址方式。堆棧區(qū)應(yīng)避開使用工作寄存器區(qū)和其他需要使用的數(shù)據(jù)區(qū),系統(tǒng)復(fù)位后,SP的初始值為07H。為了避免重疊,一般初始化時(shí)要重新設(shè)置SP。功能:實(shí)現(xiàn)RAM單元數(shù)據(jù)送入棧頂或由棧頂取出數(shù)據(jù)送至RAM單元。適用場(chǎng)合:用于執(zhí)行中斷、子程序調(diào)用、參數(shù)傳遞等程序的斷點(diǎn)保護(hù)和現(xiàn)場(chǎng)保護(hù)。書寫方式:堆棧操作指令是直接尋址指令,直接地址不能是寄存器名,因此應(yīng)注意指令的書寫格式。例如:

PUSHACC(不能寫成PUSHA)

POP00H(不能寫成POPR0)數(shù)據(jù)交換指令(5條)

,AXCHdirectRn@RiXCHA,R7AR7(A)(R7)SWAPA0111XCHDA,@Ri1011將累加器高4位與低4位互換將累加器低4位與Ri所指的RAM地址單元內(nèi)的低4位互換將累加器內(nèi)容與源操作數(shù)的內(nèi)容互換2.算術(shù)運(yùn)算指令(24條)

加法指令(4條)

算術(shù)運(yùn)算指令的兩個(gè)參與運(yùn)算的操作數(shù),一個(gè)存放在累加器A中(此操作數(shù)也為目的操作數(shù));另一個(gè)存放在R0~R7或@Ri(片內(nèi)RAM)中,或是#data(立即數(shù))。算術(shù)運(yùn)算指令可以分為加法指令、帶進(jìn)位的加法指令、帶借位的減法指令、十進(jìn)制調(diào)整指令、加1指令、減1指令、乘除指令。注:ADD對(duì)PSW中的所有標(biāo)志位均產(chǎn)生影響。

帶進(jìn)位的加法指令(4條)

directA,Rn@Ri#dataADDC注:ADDC對(duì)PSW中的所有標(biāo)志位均產(chǎn)生影響。

directA,Rn@Ri#dataADD帶借位的減法指令(4條)

directA,Rn@Ri#dataSUBB1110110110101110CY-SUBBA,R0(A)(R0)此位相減需借位時(shí),值CY位為”1”此位相減需借位時(shí),值A(chǔ)C位為”1”此兩位有一位需借位,另一位沒有,值OV位為”1”注意:

SUBB對(duì)PSW中的所有標(biāo)志位均產(chǎn)生影響。

MCS-51指令系統(tǒng)中沒有不帶借位的減法指令,欲實(shí)現(xiàn)不帶借位的減法計(jì)算,應(yīng)預(yù)先置Cy=0(利用CLRC指令),然后利用帶借位的減法指令SUBB實(shí)現(xiàn)計(jì)算。

加1指令

(5條)又稱增量指令

減“1”指令

(4條)又稱減量指令I(lǐng)NC

ARnDirect@RiDPTRDEC

ARnDirect@Ri注:以上兩條指令只是對(duì)累加器A操作時(shí)影響P標(biāo)志位。乘法指令(1條)

MULABDIVAB除法指令(1條)

注:累加器A和寄存器B中的8位無符號(hào)整數(shù)相乘,其16位積的低位字節(jié)放A中,高位字節(jié)放B中,如積大于255,則置OV為“1”,CY總為“1”注:累加器A和寄存器B中的8位無符號(hào)整數(shù)相除,其所得的商的整數(shù)部分放A中,余數(shù)放B中。乘除指令執(zhí)行時(shí)間最長(zhǎng),均為四周期指令。

乘除指令影響PSW中的Cy,OV,P標(biāo)志位。其中,Cy位總是被清0的,P是由累加器A中1的個(gè)數(shù)的奇偶性決定的。乘法運(yùn)算中,若乘積大于FFH,則OV標(biāo)志位置1,否則清0。除法運(yùn)算中,若除數(shù)為0,則OV標(biāo)志位置1,否則清0。

注:十進(jìn)制調(diào)整指令(1條)

DAA

十進(jìn)制調(diào)整指令也稱為BCD碼修正指令,這是一條對(duì)運(yùn)算結(jié)果的十進(jìn)制數(shù)進(jìn)行BCD碼修正的專用指令。兩個(gè)壓縮的BCD碼按二進(jìn)制數(shù)相加后必須經(jīng)本指令調(diào)整才能得到壓縮的BCD碼的和。以完成十進(jìn)制加法運(yùn)算功能。跟在加法指令A(yù)DD或ADDC后面。源操作數(shù)只能在累加器A中,結(jié)果存入A中。注意:十進(jìn)制調(diào)整指令不能對(duì)減法指令進(jìn)行修正。BCD碼減法必須采用BCD補(bǔ)碼運(yùn)算法則,變減法為補(bǔ)碼加法(被減數(shù)+減數(shù)的補(bǔ)碼,減數(shù)的補(bǔ)碼=9AH-減數(shù))。然后對(duì)其進(jìn)行十進(jìn)制調(diào)整來實(shí)現(xiàn)。累加器A清0和取反指令(2條)

3.邏輯運(yùn)算和移位指令(24條)

CLR

A(A)CLRA00000000CPL

A(A)CPLA1011011101001000兩條指令都不影響CY、OV、AC等標(biāo)志。特點(diǎn):可以節(jié)省存儲(chǔ)空間,提高程序執(zhí)行效率。對(duì)標(biāo)志位的影響:CLRA指令只影響PSW的P標(biāo)志位,CPLA指令不影響PSW各標(biāo)志位。

33邏輯與指令(6條)

ANLAdirectARnDirect@Ri#data,助記符格式機(jī)器碼(B)相應(yīng)操作指令說明機(jī)器周期ANLA,direct01010101directAA∧direct按位相與1ANLA,Rn01011rrrAA∧Rnn=0~7,rrr=000~1111ANLA,@Ri0101011iAA∧(Ri)i=0,11ANLA,#data01010100dataAA∧#data

1ANLdirect,A01010010direct(direct)(direct)∧A不影響PSW的P標(biāo)志1ANLdirect,#data01010011directdata(direct)(direct)∧#data不影響PSW的P標(biāo)志2邏輯或指令(6條)

ORLAdirectARnDirect@Ri#data,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論