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