新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 匯編語言基礎

        匯編語言基礎

        作者: 時間:2013-05-04 來源:網絡 收藏

        操作碼與操作數之間必須用空格分開,操作數與操作數之間必須用逗號“,”分開。帶方括號的項可有可無,稱為可選項。

        由指令格式可見,操作碼是指令的核心,不可缺少。例如一條傳送指令的書寫格式如為:MOV A,3AH ;(3AH)A它表示將3AH存儲單元的內容送到累加器A中。

        指令的長度所謂指令的長度,就是描述一條指令所需要的字節數,用一個字節能描述的指令我們叫1字節指令,同理,用兩個字節描述的叫2字節指令,用三個字節描述的指令就叫3字節指令。

        在這里我們對的111條指令進行了分類:1字節指令共有49條,2字節指令共有45條,3字節指令共有17條,到底哪條指令是1字節、2字節或者3字節指令,在我們后面的指令表中都可以查閱到的。這里有一個問題請大家引起注意,在前面的課程中,我們學習過指令計數器PC,PC是一個16位的計數器,那么這個指令計數器是怎樣來計數的呢?

        我們的指令有1字節、2字節、3字節指令。是不是每執行一個字節,這個指令計數器PC就自動加1?答案是錯誤的!!實際上,PC始終是跟蹤著指令的,并不是以字節數來相加。在我們存放程序的ROM中,是一個字節一個字節的向后執行,但程序計數器PC并不是每加一個字節就加1,它是對特定的某一條指令執行完了之后,相應的程序計數器PC才加1,那么這條指令可能是1個字節,也可能是2個或者3個字節。這個大家要引起重視。

        在學習時,先要了解某些符號的意義,現說明如下:

        Rn :當前選中的工作寄存器組R0-R7(n=0-7)。它在片內數據存儲器中的地址由PSW中的RS1和RS0確定,可以是00H-07H(第0組)、08H-0FH(第1組)、10H-17H(第2組)、18H-1FH(第3組)。

        Ri :當前選中的工作寄存器組中可作為地址指針的兩個工作寄存器R0和R1(i=0或i=1)。它在片內數據存儲器中的地址由RS0及RS1確字,分別為00H、01H;08H、09H;10H、11H;18H、19H。

        Direct :8位片內RAM單元(包含SFR)的直接地址

        #data :代表指令中8位的常量數據

        #data16 :代表指令中16位的常量數據

        addr16 :LCALL與LJMP所使用的16位目的地址

        addr11 :ACALL與AJMP所使用的11位目的地址

        rel :指程序遇條件跳躍時的相對地址,往前最多可以跳128個字節,往后最多可以跳127個字節。

        bit :特殊目的寄存器或內部數據RAM中可直接尋址的位。

        @ :間接尋址方式中,表示間址寄存器的符號

        / :位操作指令中,表示對該位先取反再參與操作,但不影響該位原值。

        X :片內RAM的直接地址或寄存器

        (X) :在址接尋址方式中,表示直接地址X中的內容;在間接尋址方式中,表示由間址寄存器X指出的地址單元中的內容。

        → :指令操作流程,將箭頭左邊的內容送入箭頭右邊的單元內。

        ← :指令操作流程,將箭頭右邊的內容送入箭頭左邊的單元內。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 寻乌县| 东兰县| 明水县| 绥棱县| 宝清县| 日喀则市| 垣曲县| 南阳市| 扎囊县| 佛学| 深州市| 扎赉特旗| 萨迦县| 麦盖提县| 建德市| 陇南市| 砀山县| 霍林郭勒市| 航空| 彭山县| 咸宁市| 原阳县| 合川市| 宁阳县| 苏尼特左旗| 吴川市| 潢川县| 泰州市| 平泉县| 合山市| 五原县| 中牟县| 神池县| 积石山| 德安县| 芒康县| 宁城县| 洪江市| 多伦县| 东辽县| 黄陵县|