MCS-51指令簡(jiǎn)介
計(jì)算機(jī)的許多功能都是由程序?qū)崿F(xiàn),而程序是由指令編寫(xiě)而成,所以熟悉并掌握單片機(jī)的指令是非常重要的。為了便于學(xué)習(xí),常把指令分成許多類型。51系列單片機(jī)共有111條指令,這些指令的集合稱為指令系統(tǒng)。常用的分類方式有以下幾種。
按尋址方式分為以下七種:
1、立即尋址
2、直接尋址
3、寄存器尋址
4、寄存器間接尋址
5、相對(duì)尋址
6、變址尋址
7、位尋址
按功能分為以下四種
1、數(shù)據(jù)傳送指令
2、算術(shù)、邏輯運(yùn)算指令
3、控制轉(zhuǎn)移類指令
4、位操作指令(布爾指令)
若按字節(jié)又可分為單字節(jié)指令、雙字節(jié)指令和三字節(jié)指令。
指令格式
MCS-51單片機(jī)采用匯編語(yǔ)言指令,一條匯編語(yǔ)言的語(yǔ)句最多包括四部分:標(biāo)號(hào)、操作碼、操作數(shù)和注釋,其結(jié)構(gòu)為:
標(biāo)號(hào): 操作碼 操作數(shù); 注釋
(1)標(biāo)號(hào)位于語(yǔ)句的開(kāi)始,由字母和數(shù)字組成,它代表該語(yǔ)句的地址。標(biāo)號(hào)必須由字母打頭,冒號(hào)結(jié)束。字母和數(shù)字的總數(shù)不應(yīng)超過(guò)一定數(shù)量,一般標(biāo)號(hào)不能為助記符。標(biāo)號(hào)不是語(yǔ)句必要的組成部分。
(2)操作碼在標(biāo)號(hào)之后,是指令的助記符,表示語(yǔ)句的性質(zhì),是語(yǔ)句的核心。沒(méi)有標(biāo)號(hào)時(shí),它作為語(yǔ)句的開(kāi)始。
(3)操作數(shù)在操作碼之后,二者用空格分開(kāi)。操作數(shù)既可以是數(shù)據(jù),也可以是地址,且必須滿足尋址方式的規(guī)定。有多個(gè)操作數(shù)時(shí),操作數(shù)之間用“,”分開(kāi)。
指令中的常數(shù)可以是十進(jìn)制、十六進(jìn)制或二進(jìn)制,具體格式如下:
二進(jìn)制常數(shù)以B結(jié)尾,如:10100011B;
十六進(jìn)制常數(shù)以H結(jié)尾,如:65H、0F1H;
十進(jìn)制常數(shù)以D(可以省略)結(jié)尾,如:65D或65;
字符串常數(shù)用‘’表示,如‘A’表示A的ASCII碼。
(4)注釋在語(yǔ)句的最后,以“;”開(kāi)始,是說(shuō)明語(yǔ)句的功能和性質(zhì)的文字。
例:
START:MOV A,#30H ;A←30H
START為標(biāo)號(hào),它以“:”結(jié)束,表示該指令的地址;MOV為用助記符表示的操作碼,表示指令的功能為數(shù)據(jù)傳送;A和#30H操作數(shù);A←30H則為注釋,它以“;”開(kāi)始,說(shuō)明這條語(yǔ)句的功能。
說(shuō)明:1)指令格式中帶方括號(hào)項(xiàng)不是每條指令必有,可有可無(wú),稱為可選項(xiàng)。
2)標(biāo)號(hào)項(xiàng)不是每條指令都有,根據(jù)程序要求而設(shè)置。
指令中常用符號(hào)說(shuō)明
下面根據(jù)指令的功能特性分類介紹。在介紹指令之前,先說(shuō)明指令中一些常用的符號(hào):
Rn——當(dāng)前寄存器區(qū)的8個(gè)工作寄存器R0~R7(n=0~7)
Ri——當(dāng)前寄存器區(qū)可作地址寄存器的2個(gè)工作寄存器R0和R1(i=0,1)
direct——8位內(nèi)部數(shù)據(jù)存儲(chǔ)器單元的地址及特殊功能寄存器的地址
#data——表示8位常數(shù)(立即數(shù))
#datal6——表示16位常數(shù)
add16——表示16位地址
addrll——表示11位地址
rel——8位帶符號(hào)的地址偏移量
bit——表示位地址
@——間接尋址寄存器或基址寄存器的前綴
( )——表示括號(hào)中單元的內(nèi)容
(( ))——表示間接尋址的內(nèi)容
評(píng)論