ASM51宏匯編使用手冊_第1頁
ASM51宏匯編使用手冊_第2頁
ASM51宏匯編使用手冊_第3頁
ASM51宏匯編使用手冊_第4頁
ASM51宏匯編使用手冊_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

ASM51宏匯編使用手冊2007-01-2110:33

ASM-51

宏匯編使用手冊

ASM-51

宏匯編主要用來開發(fā)Inter8051系列單片機(jī),它具有宏處理,數(shù)據(jù)處理,列表處理和條件處理等多種功能。源程序的編寫完全采用

Inter標(biāo)準(zhǔn)助記符和行格式。在編寫程序過程中,可借助于文本編輯(Windows的記事本)或文字處理軟件Word等編輯,

經(jīng)ASM-51匯編后生成列表輸出文件(.LST和目標(biāo)代碼文件(.HEX。

此目標(biāo)代碼文件(.HEX可直接用CZS-51或MedWin、Keil、Debug8051進(jìn)行模擬/調(diào)試,或直接用于硬件仿真器上運(yùn)行。當(dāng)然,這也是要燒寫到單片機(jī)ROM中的代碼。

1、

宏匯編語言的基本語法

1、1

宏匯編的特點

ASM-51宏匯編完全支持Inter助記符的匯編語言,它含有宏語句,英文大小寫字母,變量名,標(biāo)號等不受限制,有二,十,十六進(jìn)制和串參數(shù)類型,有匯編控制指令和多層條件語句,程序邏輯分段,

還有模塊化程序設(shè)計的連接功能,匯編速度快等特點。

1、2

匯編處理過程

(1

用行編輯EDLIN或文字處理軟件WS或全屏幕編輯軟件PE等,編輯宏匯編

語言源程序,它的文件擴(kuò)展名為。ASM。

(2

用ASM-51宏匯編程序?qū)ι鲜鲈闯绦蛭募M(jìn)行匯編,產(chǎn)生擴(kuò)展名為.LST的列表輸出文件和擴(kuò)展名為.HEX的目標(biāo)代碼文件(.HEX。

列表輸出文件包含源程序語句所匯編成的代碼,以及有關(guān)的地址,語句和符號表等。

目標(biāo)代碼文件包含源程序語句所匯編成的代碼,

不包含任何符號信息或助記符。

進(jìn)行模擬/調(diào)試,或直接用于硬件仿真器上運(yùn)行。

1、3

語句

匯編語言可分為兩類語句:指令性語句和指示性語句。

(1指令性語句

這一類語句是指在匯編過程中能生成指令代碼的語句(如

MOV

,DEC等。其格式為:

[標(biāo)號:]

[指令助記符]

[操作數(shù)]

[;注釋]

其中方括號[

]中為選擇項。下同。

(2指示性語句

這一類語句即通常所說的偽指令,它指示匯編程序后面的指示性語句如何產(chǎn)生代碼。

ASM-51宏匯編完全支持Inter助記符的匯編語言,因此匯編程序的格式,指令完全與8051匯編語言一樣,這里不再介紹它們的指令系統(tǒng)。

1、4

常量與數(shù)值運(yùn)算

(1

常量及其表示

常量,就是在匯編時已經(jīng)確定的值。

在匯編語言中,常量主要用作指令性語句中的直接操作數(shù),也可用于存儲器操作的組成部分(如位移量,或者為偽指令中的變量輸初值。

為便于程序設(shè)計,常量有多種表示形式:二、十、十六進(jìn)制數(shù)和字符串等,它們的格式各不相同,并采用不同的基數(shù)標(biāo)記加以區(qū)分。表--1列出其格式。

表--1

數(shù)據(jù)形式

取值范圍

2進(jìn)制

********B

0,1

10011100B

10進(jìn)制

******

0,1,2...9

45723

缺省基數(shù)標(biāo)記

16進(jìn)制

****H

0,1...E,F(xiàn)

0CDE3H

最前面一個字符應(yīng)是0--9

ASCII

'**'

ASCII

'AD'

只有DB命令中使用

常量以數(shù)值形式直接寫在匯編語言的語句中稱為字面常量,

若預(yù)先為它定義一個符號名,然后在語句中用符號名來表示該常量稱符號常量。使用符號常量的優(yōu)點可改善程序的可讀性,它的定義需要使用偽操作命令"EQU"或“=“。

(2

數(shù)值運(yùn)算

宏匯編中,所有參數(shù)值均被認(rèn)為是整數(shù),并以16位的形式存放,表示的范圍是065535,所有算術(shù)操作均對整數(shù)以補(bǔ)碼形式運(yùn)算。

(1

基本運(yùn)算

匯編語言對常量允許進(jìn)行算術(shù)運(yùn)算,邏輯運(yùn)算,分離運(yùn)算等三種類型的運(yùn)算。如表--2所示。

表--2

基本運(yùn)算

運(yùn)

以ADD為例

+

加操作

ADD

A,R1+36

-

減操作

ADD

A,R1-2EH

*

乘操作

ADD

A,R1*0E3H

術(shù)

/

除操作

ADD

A,R1/23

MOD

模除

ADD

A,R1

MOD

12

SHR

右移

ADD

A,R1

SHR

3

SHL

左移

ADD

A,R1

SHL

2

AND

與操作

ADD

A,R1

AND

10000101B

OR

或操作

ADD

A,R1

OR

00110000B

XOR

異或操作

ADD

A,R1

XOR

36H

NOT

非操作

ADD

A,

NOT

45H

HIGH

高字節(jié)分離

ADD

A,

HIGH

05E2H

LOW

低字節(jié)分離

ADD

A,

LOW

77F0H

說明:

R1為符號常量(即內(nèi)存地址)。

(2

綜合運(yùn)算

綜合運(yùn)算規(guī)則

1:

計算表達(dá)式時,所有的運(yùn)算全部從左到右順序進(jìn)行,遇到操作數(shù)就進(jìn)行運(yùn)算,不考慮優(yōu)先關(guān)系,括號有助于視覺理解,但不改變表達(dá)式的?計算順序。

例如:

R1

SET

NOT(0C5FH

OR

000CH

其結(jié)果應(yīng)為

0F3ACH。

綜合運(yùn)算規(guī)則

2:

當(dāng)兩個操作數(shù)之間沒有參數(shù)相隔時,

第二個操作符優(yōu)先于第一個操作符計算。

例如:

R1

SET

NOT

10011010B

其結(jié)果應(yīng)為

65H。

1、5

程序分段

8051系列的處理器的結(jié)構(gòu),

把內(nèi)存分成五個獨(dú)立的內(nèi)存段,

即代碼段(段名CSEG,數(shù)據(jù)段(段名DSEG,

外部段(段名XSEG,

功能段(段名FSEG和位段(段名BSEG等。

各個段在源程序中的次序可以任意,段的數(shù)目可以根據(jù)需要確定,原則上不受限制。程序中的所有段都必須用段名開頭,段結(jié)束語句ENDS結(jié)束。

1、6

源文件

源文件是由匯編語言代碼和匯編程序指令組成的

ASCII

字符文件,

擴(kuò)展名為。ASM。源文件的每一語句行,最多有四個域。每一行的長度不超過80個字符,

且以“回車“鍵結(jié)束。

1、7

列表輸出文件和目標(biāo)代碼文件

(1

目標(biāo)代碼文件(.HEX

目標(biāo)代碼文件(.HEX是ASCII文件,它只包含由各種程序語句所生成的代碼,而不包含任何信息或助記符。

該文件是能夠在處理器上運(yùn)行的實際機(jī)器指令碼。

目標(biāo)代碼文件格式如下:

:cc

aaaa

tt

dd

aa

dd

ss

計數(shù)器

數(shù)據(jù)類型

記錄地址

回車

記錄地址

代碼的字節(jié)

和校驗

目標(biāo)代碼文件(.HEX的每一行以一個冒號開始,

后面跟著的數(shù)字和符號分別表示十六進(jìn)制數(shù)據(jù)的計數(shù)器(cc,記錄第一個數(shù)據(jù)字節(jié)的16位地址(aaaa,目標(biāo)記錄的數(shù)據(jù)類型(tt,代碼的實際字節(jié)(dd,計數(shù)器從第一個數(shù)據(jù)字節(jié)到最后的所有字節(jié)值累加和的相反數(shù)即和校驗(ss等等。

(2列表輸出文件(.LST

列表輸出文件也是個ASCII文件,它由源程序和目標(biāo)代碼文件組成,

可作為程序文檔也可被打印。

列表輸出文件是分頁顯示,打印的,其長度由缺省值或偽指令$PAGE決定。

每頁一開始指出匯編程序的類型,版本以及頁號等。

2、

偽操作指令

匯編語言中的指示性語句(偽指令,不象指令性語句會產(chǎn)生目標(biāo)代碼,

它主要是用來“控制指揮“匯編程序如何把指令性語句翻譯成目標(biāo)代碼。除本身偽指令申請分配一部分存貯空間作數(shù)據(jù)區(qū)和堆棧區(qū)外,不產(chǎn)生任何目標(biāo)代碼。

按照它們的功能,大致分成七類:

符號定義偽操作,段定義偽操作,數(shù)據(jù)定義崐偽操作,列表偽操作,條件偽操作,宏處理偽操作以及其它操作等。如表--3所示。

表--3

偽操作指令

序號

1

符號定義偽操作

EQU,=,DATA,BYTE,WORD,BIT,SET

2

段定義偽操作

ORG,END,CSEG,DSEG,XSEG,F(xiàn)SEG,ENDS

3

數(shù)據(jù)定義偽操作

DB,DW,DS

4

列表偽操作

$TITLE,$SUBTTL,$PAGE,$LIST,$NOLIST,$NOCODE

5

條件偽操作

IF,ELSE,ENDIF

6

宏處理偽操作

MACRO,ENDM

7

ALTNAME,INCLUDE

2、1

符號定義偽操作

符號定義偽操作及其格式:

符號名

符號定義名

常量或表達(dá)式

其中符號定義名可以為EQU,=,DATA,BYTE,WORD,BIT,SET等。下面就是這些符

號定義偽操作的用法及說明。如表--4所示。

表--4

符號定義偽操作

符號定義名

EQU

為常量,符號名等定義符號化常量名

符號名不能重名定義

=

為常量,符號名等定義符號化常量名

符號名不能重名定義

DATA

用來為一個字節(jié)類型的符號定值

符號名不能重名定義

BYTE

用來為一個字節(jié)類型的符號定值

符號名不能重名定義

WORD

用來為一個字類型的符號定值

符號名不能重名定義

8051中沒有字操作

BIT

用來定義一個字位類型

SET

用來定義整數(shù)類型的符號名

符號名可重名定義

DATA與BYTE的區(qū)別:

DATA與BYTE是相類似的偽指令。

當(dāng)程序運(yùn)行到DATA偽指令定義的符號名時,該符號名將被顯示;而由BYTE定義的符號名不被顯示。

2、2

段定義偽操作

(1

ORG

用于設(shè)置或改變程序計數(shù)器的值。

其格式為:

ORG

常數(shù)或表達(dá)式

例如:

ORG

0008H

ORG

$+5

其中$表示程序計數(shù)器的當(dāng)前值。

(2

END

表示源代碼結(jié)束。

其格式為:

END

常數(shù)或表達(dá)式

匯編程序遇到END語句即停止運(yùn)行。

若程序中沒有END,則在匯編源程序時顯出錯

(3

8051系列的處理器把內(nèi)存結(jié)構(gòu)分成五個段,代碼段CSEG,數(shù)據(jù)段DSEG,外部段XSEG,功能段FSEG和位段BSEG等,其用法及區(qū)別如

表--5所示。

在匯編以上各段所定義的符號時,系統(tǒng)根據(jù)符號所在不同段,賦與不同類型的字母,如表--6所示。

2、3

數(shù)據(jù)定義偽操作

數(shù)據(jù)定義偽操作格式:

[

標(biāo)號:

]

數(shù)據(jù)定義名

[

表達(dá)式1,表達(dá)式2,。。。

]

其中數(shù)據(jù)定義名可為DB,DW,DS等。

如表--7所示,數(shù)據(jù)定義偽操作的含義及說明。

表--5

段定義偽操作

區(qū)

代碼段(CSEG

包含由處理器所執(zhí)行的程序。段名可缺省。有目標(biāo)代碼生成。

數(shù)據(jù)段(DESG

由內(nèi)部工作寄存器的處理器的RAM組成。用來對程序使用的數(shù)據(jù)地址賦符號名,大多以O(shè)RG,DATA,BYTE,WORD,EDNS等組成。

無目標(biāo)碼生成。

外部段(XSEG

由外部工作寄存區(qū)和RAM組成。使用方法同數(shù)據(jù)段。無目標(biāo)碼生成。

功能段(FSEG

由特殊寄存器位置組成(如:輸入/輸出部件,計時器,中斷控制和連續(xù)的寄存器部件接口等。無目標(biāo)代碼生成。

段(BSEG

由一些獨(dú)立的位組成,可以用布爾函數(shù)實現(xiàn)。

該段地址被解釋為位地址。無目標(biāo)代碼生成。

表--6

程序分段的類型符號

標(biāo)號(Label

字節(jié)型操作數(shù)(Byte

字型操作數(shù)(Word

代碼段CSEG

數(shù)據(jù)段DSEG

外部段XSEG

功能段FSEG

段BSEG

說明:

(1在不同的段中類型符號不同;

(2字節(jié)型操作數(shù)(Byte一般通過DATA指令賦給符號;

字型操作數(shù)

一般通過WORD指令賦給符號;

(3如果各段中用BYTE賦值,則在各段中符號全以S表示;在SIM51模

擬/調(diào)試中的符號區(qū)顯示功能中,對BYTE賦值的將被跳過。

(4在各段中,位類型可以用BIT指令賦給。

表--7

數(shù)據(jù)定義偽操作

數(shù)據(jù)定義名

DB

用于定義一個字節(jié)包含的值

表達(dá)式不是字符串時,每個表達(dá)式賦給一個字節(jié),是字符串時,用單引號

'

作為分隔符。

DW

用于定義一個字(16位

每個表達(dá)式占16位。

如果表達(dá)式中的存貯內(nèi)容為字符串,只取最后兩個字符。若字符串只有一個字符,高字節(jié)置“0“。

DS

定義一個存貯區(qū)

通常用在代碼段中,作為程序的一部分。若用在數(shù)據(jù)段,外部段,則作為位置標(biāo)志使用。

表--8

列表偽操作

偽指令

含義及格式

$TITLE

給源程序指定一個標(biāo)題

標(biāo)題不加

“,其最大長度

格式:

$TITLE

[標(biāo)題行]

60個字符。若標(biāo)題行省略,

原來定義的標(biāo)題行作廢。

$SUBTTL

給源程序指定一個副標(biāo)題

副標(biāo)題不加

“,其最大長

格式:

$SUBTTL

[副標(biāo)題行]

度60字符。若副標(biāo)題行省略,原來定義的副標(biāo)題行作廢。

$PAGE

用于形成或定義新的一頁或行數(shù)

匯編時頁長為66行(適合于格式:

$PAGE

[表達(dá)式]

標(biāo)準(zhǔn)打印紙。表達(dá)式最大為65535,最小為12,

表達(dá)式缺省,則從新的一頁開始。

$LIST

使源程序匯編時,產(chǎn)生程序清單

匯編時無此指令照樣產(chǎn)生清單。

格式:

$LIST

$NOLIST

使源程序匯編時不產(chǎn)生程序清單

格式:

$NOLIST

$NOCODE

源程序匯編時,條件匯編程序值

沒有此指令匯編時,不論其值是為假的不產(chǎn)生清單。真、假的條件都不產(chǎn)生目標(biāo)碼。

格式:

$NOCODE

2、4

列表偽操作

如表--8所示,列表偽操作的含義,格式及說明。

2、5

條件偽操作

條件偽操作格式:

IF

表達(dá)式

[

程序塊1

]

[

ELSE

]

[

程序塊2

]

ENDIF

當(dāng)IF指令中的表達(dá)式為真時,被匯編的代碼段是程序塊1;當(dāng)IF指令中的表達(dá)式為假時,被匯編的代碼段是程序塊2。

在一個條件結(jié)構(gòu)中,僅有一個代碼段被匯編,其它的則被忽略。

2、6

宏處理操作

在源程序中,如果有一段程序需要多次使用,為使程序不重復(fù)書寫這段程序,可用宏定義把所需要重復(fù)出現(xiàn)的程序塊定義成宏指令,此后在宏指令出現(xiàn)的地方,宏匯編程序總是自動地把它們替換成相應(yīng)的代碼段。

(1

宏指令格式

[

宏指令名

]

MACRO

[形式參數(shù),。。。]

代碼段

ENDM

在宏定義中,使用了“形式參數(shù)“,它們引用宏指令時被給出的一些名字或數(shù)值(實在參數(shù)所替換。使用形式參數(shù)給宏指令帶來了很大的靈活性。

(2宏調(diào)用格式

[

宏指令名

]

[實在參數(shù),。。。]

注意:1、當(dāng)有兩個以上的實參數(shù)時,它們之間要用逗號,空格或列表符隔開。

2、實參數(shù)項將對應(yīng)替換宏指令中形式參數(shù)。如果形式參數(shù)為標(biāo)號時,則在宏調(diào)用中,實參也應(yīng)為標(biāo)號,且要求實參是唯一的。如果宏定義中有自己的標(biāo)號,則在宏調(diào)用時,匯編程序自動地把標(biāo)號變成唯一的標(biāo)號。

2、7

其他

(1

替換名

ALTNAME

功能:

這一偽指令用來自定義名字,以替換源程序中原來的保留字,替換的保留字均可等效地用于子程序中。

格式:

ALTNAME

保留字

自定義名

注意:

自定義名與保留字之間首字符必須相同。

(2

附加文件的鏈結(jié)

INCLUDE

功能:

利用此偽指令可將一個源文件插入到當(dāng)前源文件中一起匯編,最終成為一個完整的源程序。

格式:

INCLUDE

[

驅(qū)動器名:

]

[

路徑名

]

文件名

注意:1、文件名中若沒有擴(kuò)展名,則系統(tǒng)默認(rèn)是。ASM(該文件必須是能打開的。

2、被插入的源程序中不能包含END偽指令,否則匯編會停止運(yùn)行。被鏈接文件的每一行,在程序清單中以“I“開頭。

3、鏈接偽指令可有8級嵌套,

若要求嵌套的多,

則要修改

DOS

中的

CONFIG。SYS文件的FILES參數(shù)。

3

宏匯編運(yùn)行

3、1

系統(tǒng)運(yùn)行環(huán)境

ASM-51宏匯編要在IBM-PC及其兼容機(jī)上運(yùn)行(至少128K字節(jié)的RAM;具有一個軟驅(qū)動器或硬驅(qū)動器,采用ANSI標(biāo)準(zhǔn)終端(包括鍵盤,顯示控制器,打印機(jī),至少一個RS-232異步通訊接口。軟件有PC-DOS,MS-DOS

2。0

以上版本,ASM_51系統(tǒng)。

3、2

宏匯編程序的運(yùn)行

8051

宏匯編為例,在DOS系統(tǒng)的提示符下鍵入

A>

ASM51

文件名。ASM

等錯誤的個數(shù)出現(xiàn)后

,鍵入

變返回到DOS提示符下。8051的宏匯編與此相似。

4

匯編的使用

使用ASM-51宏匯編是將8051源程序匯編生成列表輸出文件和目標(biāo)代碼文件,供模擬/調(diào)試時使用。我們使用的宏匯編完全采用Inter標(biāo)準(zhǔn)助記符和行格式,因此在編寫源程序時,可以使用宏匯編中的偽指令,

以增加源程序的運(yùn)行速度和可讀性。也可以直接用

Inter

標(biāo)準(zhǔn)助記符來編寫源程序。再經(jīng)過ASM-51宏匯編進(jìn)行匯編,便可得到列表輸出文件和目標(biāo)代碼文件。

匯編的格式如下:

>

ASM51

文件名。ASM

[

可選項

]

其中可選項為:

/L,

/H,

/S,

/P,

/N

/L

表示源程序匯編后不生成列表冊輸出文件(.LST,只顯示在屏幕上。

/H

表示源程序匯編后不生成目標(biāo)代碼文件(.HEX。

/S

表示源程序匯編后不生成符號表。

/P

表示源程序匯編后生成符號表。

/N

表示源程序匯編后,程序是連續(xù)的顯示。

如果沒有選擇項,則表示產(chǎn)生列表輸出文件和目標(biāo)代碼文件,且在LST文件后面列出符號表。

生成的目標(biāo)代碼便可以進(jìn)行模擬/調(diào)試,如果在模擬/調(diào)試中發(fā)現(xiàn)錯誤,則源程序要經(jīng)過修改,重新匯編,然后再進(jìn)行模擬/調(diào)試,直到完全正確。

若程序匯編過程中有錯誤,則給出出錯信息(出錯信息見附錄。

生成的目標(biāo)代碼可以進(jìn)行模擬/調(diào)試/燒寫。

附錄

ASM-51

匯編出錯信息表

1

Address

Out

of

Range

一個被計值的目標(biāo)地址超出了當(dāng)前語句的范圍。

2

Badly

Formed

Argument

數(shù)字規(guī)定的類型中有非法數(shù)字存在。

3

Illefal

Equale

有不允許的類型約定。

4

Label

Name

Conflicts

With

Symbol

Name

在程序中有兩個符號相同。

5

Label

Address

Changed

On

Pass

2。

源程序在此錯誤之前,還有一些錯誤。

6

Missing

Argument

in

Expression

表達(dá)式中算術(shù)運(yùn)算符后面沒有操作數(shù)。

7

Missing

END

Statrment

匯編的源程序結(jié)尾未發(fā)現(xiàn)END語句。

8

Multiply

Defined

Label

源程序中定義了兩個標(biāo)號。

9

Unbalanced

Parentheses

表達(dá)式中多余或缺少括號。

10

Undefined

Symbol

語句中的符號名可能拼錯或未被定義。

11

Unrecognized

Statemen

or

Undefined

Argument

未定義參數(shù)的指令或代碼。

12

&#118alue

Out

of

Range

有一個非法的值來說明一個有著可能值限制的語句。

MCS-51匯編語言指令集2007年04月29日星期日下午03:30MCS-51匯編語言指令集

符號定義表

符號

含義

Rn

R0~R7寄存器n=0~7

Direct

直接地址,內(nèi)部數(shù)據(jù)區(qū)的地址RAM(00H~7FH

SFR(80H~FFHB,ACC,PSW,IP,P3,IE,P2,SCON,P1,TCON,P0

@Ri

間接地址Ri=R0或R1

8051/31RAM地址(00H~7FH

8052/32RAM地址(00H~FFH

#data

8位常數(shù)

#data16

16位常數(shù)

Addr16

16位的目標(biāo)地址

Addr11

11位的目標(biāo)地址

Rel

相關(guān)地址

bit

內(nèi)部數(shù)據(jù)RAM(20H~2FH,特殊功能寄存器的直接地址的位

2

指令介紹

指令

字節(jié)

周期

動作說明

算數(shù)運(yùn)算指令

1.ADDA,Rn

1

1

將累加器與寄存器的內(nèi)容相加,結(jié)果存回累加器

2.ADDA,direct

2

1

將累加器與直接地址的內(nèi)容相加,結(jié)果存回累加器

3.ADDA,@Ri

1

1

將累加器與間接地址的內(nèi)容相加,結(jié)果存回累加器

4.ADDA,#data

2

1

將累加器與常數(shù)相加,結(jié)果存回累加器

5.ADDCA,Rn

1

1

將累加器與寄存器的內(nèi)容及進(jìn)位C相加,結(jié)果存回累加器

6.ADDCA,direct

2

1

將累加器與直接地址的內(nèi)容及進(jìn)位C相加,結(jié)果存回累加器

7.ADDCA,@Ri

1

1

將累加器與間接地址的內(nèi)容及進(jìn)位C相加,結(jié)果存回累加器

8.ADDCA,#data

2

1

將累加器與常數(shù)及進(jìn)位C相加,結(jié)果存回累加器

9.SUBBA,Rn

1

1

將累加器的值減去寄存器的值減借位C,結(jié)果存回累加器

10.SUBBA,direct

2

1

將累加器的值減直接地址的值減借位C,結(jié)果存回累加器

11.SUBBA,@Ri

1

1

將累加器的值減間接地址的值減借位C,結(jié)果存回累加器

12.SUBBA,0data

2

1

將累加器的值減常數(shù)值減借位C,結(jié)果存回累加器

13.INCA

1

1

將累加器的值加1

14.INCRn

1

1

將寄存器的值加l

15.INCdirect

2

1

將直接地址的內(nèi)容加1

16.INC@Ri

1

1

將間接地址的內(nèi)容加1

17.INCDPTR

1

1

數(shù)據(jù)指針寄存器值加1

說明:將16位的DPTR加1,當(dāng)DPTR的低字節(jié)(DPL從FFH溢出至00H時,會使高字節(jié)(DPH加1,不影響任何標(biāo)志位

18.DECA

1

1

將累加器的值減1

19.DECRn

1

1

將寄存器的值減1

20.DECdirect

2

1

將直接地址的內(nèi)容減1

21.DEC@Ri

1

1

將間接地址的內(nèi)容減1

22.MULAB

1

4

將累加器的值與B寄存器的值相乘,乘積的低位字節(jié)存回累加器,高位字節(jié)存回B寄存器

說明:將累加器A和寄存器B內(nèi)的無符號整數(shù)相乘,產(chǎn)生16位的積,低位字節(jié)存入A,高位字節(jié)存入B寄存器。如果積大于FFH,則溢出標(biāo)志位(OV被設(shè)定為1,而進(jìn)位標(biāo)志位為0

23.DIVAB

1

4

將累加器的值除以B寄存器的值,結(jié)果的商存回累加器,余數(shù)存回B寄存器

說明:無符號的除法運(yùn)算,將累加器A除以B寄存器的值,商存入A,余數(shù)存入B。執(zhí)行本指令后,進(jìn)位位(C及溢出位(OV被清除為0

24.DAA

1

1

將累加器A作十進(jìn)制調(diào)整,

若(A3-0>9或(AC=1,則(A3-0←(A3-0+6

若(A7-4>9或(C=1,則(A7-4←(A7-4+6

邏輯運(yùn)算指令

25.ANLA,Rn

1

1

將累加器的值與寄存器的值做AND的邏輯判斷,結(jié)果存回累加器

26.ANLA,direct

2

1

將累加器的值與直接地址的內(nèi)容做AND的邏輯判斷,結(jié)果存回累加器

27.ANLA,@Ri

1

1

將累加器的值與間接地址的內(nèi)容做AND的邏輯判斷,結(jié)果存回累加器

28.ANLA,#data

2

1

將累加器的值與常數(shù)做AND的邏輯判斷,結(jié)果存回累加器

29.ANLdirect,A

2

1

將直接地址的內(nèi)容與累加器的值做AND的邏輯判斷,結(jié)果存回該直接地址

30.ANLdirect,#data

3

2

將直接地址的內(nèi)容與常數(shù)值做AND的邏輯判斷,結(jié)果存回該直接地址

31.ORLA,Rn

1

1

將累加器的值與寄存器的值做OR的邏輯判斷,結(jié)果存回累加器

32.ORLA,direct

2

1

將累加器的值與直接地址的內(nèi)容做OR的邏輯判斷,結(jié)果存回累加器

33.ORLA,@Ri

1

1

將累加器的值與間接地址的內(nèi)容做OR的邏輯判斷,結(jié)果存回累加器

34.ORLA,#data

2

1

將累加器的值與常數(shù)做OR的邏輯判斷,結(jié)果存回累加器

35.ORLdirect,A

2

1

將直接地址的內(nèi)容與累加器的值做OR的邏輯判斷,結(jié)果存回該直接地址

36.ORLdirect,#data

3

2

將直接地址的內(nèi)容與常數(shù)值做OR的邏輯判斷,結(jié)果存回該直接地址

37.XRLA,Rn

1

1

將累加器的值與寄存器的值做XOR的邏輯判斷,結(jié)果存回累加器

38.XRLA,direct

2

1

將累加器的值與直接地址的內(nèi)容做XOR的邏輯判斷,結(jié)果存回累加器

39.XRLA,@Ri

1

1

將累加器的值與間接地扯的內(nèi)容做XOR的邏輯判斷,結(jié)果存回累加器

40.XRLA,#data

2

1

將累加器的值與常數(shù)作XOR的邏輯判斷,結(jié)果存回累加器

41.XRLdirect,A

2

1

將直接地址的內(nèi)容與累加器的值做XOR的邏輯判斷,結(jié)果存回該直接地址

42.XRLdirect,#data

3

2

將直接地址的內(nèi)容與常數(shù)的值做XOR的邏輯判斷,結(jié)果存回該直接地址

43.CLRA

1

1

清除累加器的值為0

44.CPLA

1

1

將累加器的值反相

45.RLA

1

1

將累加器的值左移一位

46.RLCA

1

1

將累加器含進(jìn)位C左移一位

47.RRA

1

1

將累加器的值右移一位

48.RRCA

1

1

將累加器含進(jìn)位C右移一位

49.SWAPA

1

1

將累加器的高4位與低4位的內(nèi)容交換。(A3-0←(A7-4

數(shù)據(jù)轉(zhuǎn)移指令

50.MOVA,Rn

1

1

將寄存器的內(nèi)容載入累加器

51.MOVA,direct

2

1

將直接地址的內(nèi)容載入累加器

52.MOVA,@Ri

1

1

將間接地址的內(nèi)容載入累加器

53.MOVA,#data

2

1

將常數(shù)載入累加器

54.MOVRn,A

1

1

將累加器的內(nèi)容載入寄存器

55.MOVRn,direct

2

2

將直接地址的內(nèi)容載入寄存器

56.MOVRn,gdata

2

1

將常數(shù)載入寄存器

57.MOVdirect,A

2

1

將累加器的內(nèi)容存入直接地址

58.MOVdirect,Rn

2

2

將寄存器的內(nèi)容存入直接地址

59.MOVdirect1,direct2

3

2

將直接地址2的內(nèi)容存入直接地址1

60.MOVdirect,@Ri

2

2

將間接地址的內(nèi)容存入直接地址

61.MOVdirect,#data

3

2

將常數(shù)存入直接地址

62.MOV@Ri,A

1

1

將累加器的內(nèi)容存入某間接地址

63.MOV@Ri,direct

2

2

將直接地址的內(nèi)容存入某間接地址

64.MOV@Ri,#data

2

1

將常數(shù)存入某間接地址

65.MOVDPTR,#data16

3

2

將16位的常數(shù)存入數(shù)據(jù)指針寄存器

66.MOVCA,@A+DPTR

1

2

(A←((A+(DPTR

累加器的值再加數(shù)據(jù)指針寄存器的值為其所指定地址,將該地址的內(nèi)容讀入累加器

67.MOVCA,@A+PC

1

2

(PC←(PC+1;(A←((A+(PC累加器的值加程序計數(shù)器的值作為其所指定地址,將該地址的內(nèi)容讀入累加器

68.MOVXA,@Ri

1

2

將間接地址所指定外部存儲器的內(nèi)容讀入累加器(8位地址

69.MOVXA,@DPTR

1

2

將數(shù)據(jù)指針?biāo)付ㄍ獠看鎯ζ鞯膬?nèi)容讀入累加器(16位地址

70.MOVX@Ri,A

1

2

將累加器的內(nèi)容寫入間接地址所指定的外部存儲器(8位地址

71.MOVX@DPTR,A

1

2

將累加器的內(nèi)容寫入數(shù)據(jù)指針?biāo)付ǖ耐獠看鎯ζ?16位地址

72.PUSHdirect

2

2

將直接地址的內(nèi)容壓入堆棧區(qū)

73.POPdirect

2

2

從堆棧彈出該直接地址的內(nèi)容

74.XCHA,Rn

1

1

將累加器的內(nèi)容與寄存器的內(nèi)容互換

75.XCHA,d

溫馨提示

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

評論

0/150

提交評論