日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機(jī)電之家資源網(wǎng)
單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
MCS-51指令系統(tǒng)
MCS-51指令系統(tǒng)
 更新時(shí)間:2008-7-26 19:42:42  點(diǎn)擊數(shù):3
【字體: 字體顏色
一個(gè)單片機(jī)所需執(zhí)行指令的集合即為單片機(jī)的指令系統(tǒng)。單片機(jī)使用的機(jī)器語(yǔ)言、匯編語(yǔ)言及高級(jí)語(yǔ)言,但不管使用是何種語(yǔ)言,最終還是要“翻譯”成為機(jī)器碼,單片機(jī)才能執(zhí)行之。現(xiàn)在有很多半導(dǎo)體廠商都推出了自己的單片機(jī),單片機(jī)種類繁多,品種數(shù)不勝數(shù),值得注意的是不同的單片機(jī)它們的指令系統(tǒng)不一定相同,或不完全相同。但不管是使用機(jī)器語(yǔ)言、匯編語(yǔ)言還是高級(jí)語(yǔ)言都是使用指令編寫程序的。

    所謂機(jī)器語(yǔ)言即指令的二進(jìn)制編碼,而匯編語(yǔ)言則是指令的表示符號(hào) 。在指令的表達(dá)式上也不會(huì)直接使用二進(jìn)制機(jī)器碼,最常用的是十六進(jìn)制的形式。但單片機(jī)并不能直接執(zhí)行匯編語(yǔ)言和高級(jí)語(yǔ)言,都必須通過(guò)匯編器“翻譯”成為二進(jìn)制機(jī)器碼方能執(zhí)行,但如果直接使用二進(jìn)制來(lái)編寫程序,那將十分不便,也很難記憶和識(shí)別,不易編寫、難于辨讀,極易出錯(cuò),同時(shí)出錯(cuò)了也相當(dāng)難查找。所以現(xiàn)在基本上都不會(huì)直接使用機(jī)器語(yǔ)言來(lái)編寫單片機(jī)的程序。最好的辦法就是使用易于閱讀和辨認(rèn)的指令符號(hào)來(lái)代替機(jī)器碼,我們常稱這些符號(hào)為助記符,用助記符的形式表示的單片機(jī)指令就是匯編語(yǔ)言,為便于記憶和閱讀,助記符號(hào)通常都使用易于理解的英文單詞和拼音字母來(lái)表示。

    每種單片機(jī)都有自己獨(dú)特的指令系統(tǒng),那么指令系統(tǒng)是開發(fā)和生產(chǎn)廠商定義的,如要使用其單片機(jī),用戶就必須理解和遵循這些指令標(biāo)準(zhǔn),要掌握某種(類)單片機(jī),指令系統(tǒng)的學(xué)習(xí)是必須的。

    MCS-51共有111條指令,可分為5類:
    [1].數(shù)據(jù)傳送類指令(共29條)    [2].算數(shù)運(yùn)算類指令(共24條)    [3].邏輯運(yùn)算及移位類指令(共24條)    [4].控制轉(zhuǎn)移類指令(共17條)    [5].布爾變量操作類指令(共17條)
    
    在介紹指令系統(tǒng)前,我們先了解一些特殊符號(hào)的意義,這對(duì)今后程序的編寫都是相當(dāng)有用的。
    Rn——當(dāng)前選中的寄存器區(qū)的8個(gè)工作寄存器R0—R7(n=0-7)。    Ri——當(dāng)前選中的寄存器區(qū)中可作為地址寄存器的兩個(gè)寄存器R0和R1(i=0,1)    direct—內(nèi)部數(shù)據(jù)存儲(chǔ)單元的8位地址。包含0—127(255)內(nèi)部存儲(chǔ)單元地址和特殊功能寄存地址。    #data—指令中的8位常數(shù)。    #data16—指令中的16位常數(shù)。    addr16—用于LCALL和LJMP指令中的16目的地地址,目的地址的空間為64kB程序存儲(chǔ)器地址。    #addr11—用于ACALL和AJMP指令中的11目的地地址,目的地址必須放在與下條指令第一個(gè)字節(jié)同一個(gè)2kB程序存儲(chǔ)器空間之中。    rel—8位帶符號(hào)的偏移字節(jié),用于所有的條件轉(zhuǎn)移和SJMP等指令中,偏移字節(jié)對(duì)于下條指令的第一個(gè)字節(jié)開始的-128——+127范圍內(nèi)。    @—間接寄存器尋址或基址寄存器的前綴。    /—為操作的前綴,聲明對(duì)該位操作書取反。    DPTR—數(shù)據(jù)指針。    bit—內(nèi)部RAM和特殊功能寄存器的直接尋址位。    A—累加器。    B—累加器B。用于乘法和除法指令中。    C—進(jìn)位標(biāo)志位。    (x)—某地址單元中的內(nèi)容。    ((x))—由X尋址單元中的內(nèi)容。

    
    尋址的“地址”即為操作數(shù)所在單元的地址,絕大部分指令執(zhí)行時(shí)都需要用到操作數(shù),那么到哪里去取得操作數(shù)呢?最易想到的就是告訴CPU操作數(shù)所在的地址單元,從那里可取得響應(yīng)的操作數(shù),這便是“尋址”之意。MCS-51的尋址方式很多,使用起來(lái)也相當(dāng)方便,功能也很強(qiáng)大,靈活性強(qiáng)。這便是MCS-51指令系統(tǒng)“好用”的原因之一。下面我們分別討論幾種尋址方式的原理。

    [1].直接尋址
    指令中操作數(shù)直接以單元地址形式出現(xiàn),例如:

        MOV  A,68H

    這條指令的意義是把內(nèi)部RAM中的68H單元中的數(shù)據(jù)內(nèi)容傳送到累加器A中。值得注意的是直接尋址方式只能使用8位二進(jìn)制地址,因此這種尋址方式僅限于內(nèi)部RAM進(jìn)行尋址。低128位單元在指令中直接以單元地址的形式給出。對(duì)于特殊功能寄存器可以使用其直接地址進(jìn)行訪問(wèn),還可以以它們的符號(hào)形式給出,只是特殊功能寄存器只能用直接尋址方式訪問(wèn),而無(wú)其它方法。

    [2].寄存器尋址
    寄存器尋址對(duì)選定的8個(gè)工作寄存器R0-R7進(jìn)行操作,也就是操作數(shù)在寄存器中,因此指定了寄存器就得到了操作數(shù),寄存器尋址的指令中以寄存器的符號(hào)來(lái)表示寄存器,例如:

        MOV  A,R1

    這條指令的意義是把所用的工作寄存器組中的R3的內(nèi)容送到累加器A中。
    值得一提的是工作狀態(tài)寄存器的選擇是通過(guò)程序狀態(tài)字寄存器來(lái)控制的,在這條指令前,應(yīng)通過(guò)PSW設(shè)定當(dāng)前工作寄存器組。

    [3].寄存器間接尋址
    寄存器尋址方式,寄存器中存放的是操作數(shù),而寄存器間接尋址方式,寄存器中存放的則為操作數(shù)的地址,也即操作數(shù)是通過(guò)寄存器指向的地址單元得到的,這便是寄存器間接尋址名稱的由來(lái)。
    例如指令:

        MOV  A,@R0

    這條指令的意義是R0寄存器指向地址單元中的內(nèi)容送到累加器A中。假如R0=#56H,那么是將56H單元中的數(shù)據(jù)送到累加器A中。
    寄存器間接尋址方式可用于訪問(wèn)內(nèi)部RAM或外部數(shù)據(jù)存儲(chǔ)器。訪問(wèn)內(nèi)部RAM或外部數(shù)據(jù)存儲(chǔ)器的低256字節(jié)時(shí),可通過(guò)R0和R1作為間接寄存器。然而有必要指出,內(nèi)部RAM的高128字節(jié)地址與專用積存器的地址是重疊的,所以這種尋址方式不能用于訪問(wèn)特殊功能寄存器。
    外部數(shù)據(jù)存儲(chǔ)器的空間為64kB,這時(shí)可采用DPTR作為間址寄存器進(jìn)行訪問(wèn),指令如下:

        MOVX  A,@DPTR

    這條指令的意義是與上述類似,不再贅述。

    [4].立即尋址
    立即尋址就是把操作數(shù)直接在指令中給出,即操作數(shù)包含在指令中,指令操作碼的后面緊跟著操作數(shù),一般把指令中的操作數(shù)稱為立即數(shù),因此而得名。為了與直接尋址方式相區(qū)別,在立即數(shù)前加上“#”符號(hào),例如:

        MOVX  A,#0EH

    這條指令的意義是將0EH這個(gè)操作數(shù)送到累加器A中。

    [5].變址尋址
    變址尋址是以DPTR或PC作為基址寄存器,以累加器A作為變址寄存器,將兩寄存器的內(nèi)容相加形成16位地址形成操作數(shù)的實(shí)際地址。例如:

        MOV   A,@A+DPTR
        MOVX  A,@A+PC
        JMP   @A+DPTR

    在這三條指令中,A作為偏移量寄存器,DPTR或PC作為變址寄存器,A作為無(wú)符號(hào)數(shù)與DPTR或PC的內(nèi)容相加,得到訪問(wèn)的實(shí)際地址。其中前兩條是程序存儲(chǔ)器讀指令,后一條是無(wú)條件轉(zhuǎn)移指令。

    [6].位尋址
    在MCS-51單片機(jī)中,RAM中的20H—2FH字節(jié)單元對(duì)應(yīng)的位地址為00H—7FH,特殊功能寄存器中的某些位也可進(jìn)行為尋址,這些單元既可以采用字節(jié)方式訪問(wèn)它們,也可采用位尋址的方式訪問(wèn)它們。

    [7].相對(duì)尋址
    相對(duì)尋址方式是為了程序的相對(duì)轉(zhuǎn)移而設(shè)計(jì)的,其夜里是以PC的內(nèi)容為基址,加上給出的偏移量作為轉(zhuǎn)移地址,從而實(shí)現(xiàn)程序的轉(zhuǎn)移。轉(zhuǎn)移的目的地址可參見(jiàn)如下表達(dá)式:

        目的地址=轉(zhuǎn)移指令地址+轉(zhuǎn)移指令字接數(shù)+偏移量

    值得注意的是,偏移量是有正負(fù)號(hào)之分的,偏移量的取值范圍是當(dāng)前PC值的-128—+127之間。
  • 上一篇: MCS-51指令解析
  • 下一篇: MCS-51串行通信口介紹
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1