<track id="bbf7f"></track>

      <pre id="bbf7f"><ruby id="bbf7f"></ruby></pre>

        本公司不接受任何形式的推銷,只接受電子郵件。
        西安西保特工電力自動化有限公司

        公司地址:陜西省西安市高新區高新路88號尚品國際6幢
        公司郵箱:xibaotegong@aliyun.com
        公司電話:029-88997932
        公司網址:www.www.jtcwg.com

        詳細信息

        您現在的位置:網站首頁 >> 常見問題 >> 產品知識 >> 詳細信息

        匯編語言基礎

        發布時間:2018-07-18  瀏覽:1876次  字號:  

         所謂指令,就是規定計算機進行某種操作的命令。

        一條指令只能完成有限的功能,為使計算機完成一定的或者復雜的功能,就需要一系列指令。一般來說,一臺計算機的指令越豐富,尋址方式越多,且每條指令的執行速度越快,則它的總體功能就越強。

        我們學習的80C51單片機共有111條指令,這111條指令共有七種尋址方式。其中:

        數據傳送類指令  29

        算術運算類指令  24

        邏輯運算及移位類指令  24

        控制轉移類指令  17

        位操作指令      17

        111條指令的具體功能我們在后面的課程中將會逐條的與大家進行分析。

        由于計算機只能識別二進制數,所以計算機的指令均由二進制代碼組成。為了閱讀和書寫的方便,常把它寫成十六進制形式,通常稱這樣的指令為機器指令,F在一般的計算機都有幾十甚至幾百種指令。顯然即便用十六進制去書寫和記憶也是不容易的,為了便于記憶和使用的方便,制造廠家對指令系統的每一條指令都給出了助記符。助記符是根據機器指令不同的功能和操作對象來描述指令的符號。由于助記符是用英文縮寫來描述指令的特征,因此它不但便于記憶,也便于理解和分類。這種用助記符形式來表示的機器指令稱為匯編語言指令。

        匯編語言有如下特點:

        ① 助記符指令和機器指令一一對應,所以用匯編語言編寫的程序效率高,占用存儲空間小,運行速度快,因此匯編語言能編寫出最優化的程序。

        ② 使用匯編語言編程比使用高級語言困難。因為匯編語言是面向計算機的,匯編語言的程序設計人員必須對計算機硬件有相當深入的了解。

        ③ 匯編語言能直接訪問存儲器及接口電路,也能處理中斷,因此匯編語言程序能直接管理和控制硬件設備。

        ④ 匯編語言缺乏通用性,程序不易移植,各種計算機都有自己的匯編語言,不同計算機的匯編語言之間不能通用。

        匯編指令的格式

        MCS-51匯編語言的語句格式表示如下:

          〔<標號>〕:<操作碼>〔<操作數>〕;〔<注釋>〕

          即一條匯編語句是由標號、操作碼、操作數和注釋四個部分所組成,其中方括號括起來的是可選擇部分,可有可無,視需要而定。

        指令通常兩部份組成:操作碼、操作數

        操作碼:是由助記符表示的字符串,操作碼其實就是告訴我們這條指令是起什么樣的一個功能,是加?減?傳送?還是控制?等等。

        操作數:是指參加操作的數據或者是數據地址。

        注釋:為了便于我們閱讀程序,通常我們在指令的后面都會加上注釋。

        標號:用來表示子程序名稱或程序執行條件跳轉時的程序跳轉地址,實際上是表示一個地址值。

        80C51指令系統中,操作數可以是1、2、3個,也可以沒有。不同功能的指令,操作數作用也不同。例如,傳送類指令多數有兩個操作數,寫在左面的稱為目的操作數(表示操作結果存放的單元地址),寫在右面的稱為源操作數(指出操作數的來源)。

        操作碼與操作數之間必須用空格分開,操作數與操作數之間必須用逗號,分開。帶方括號的項可有可無,稱為可選項。由指令格式可見,操作碼是指令的核心,不可缺少。

        例如一條傳送指令的書寫格式如為:MOV  A,3AH   ;(3AHA
        它表示將3AH存儲單元的內容送到累加器A中。

        指令的長度

        所謂指令的長度,就是描述一條指令所需要的字節數,用一個字節能描述的指令我們叫1字節指令,同理,用兩個字節描述的叫2字節指令,用三個字節描述的指令就叫3字節指令。在這里我們對80C51111條指令進行了分類:
        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-R7n=0-7)。它在片內數據存儲器中的地址由PSW中的RS1RS0確定,可以是00H-07H(第0組)、08H-0FH(第1組)、10H-17H(第2組)、18H-1FH(第3組)。

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

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

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

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

        addr16    LCALLLJMP所使用的16位目的地址

        addr11    ACALLAJMP所使用的11位目的地址

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

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

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

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

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

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

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

         

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

         

        本公司不接受任何形式的推銷,只接受電子郵件。
        陜公網安備ICP15014344© 2021
        地址:陜西省西安市高新區高新路88號尚品國際6幢 郵箱:xibaotegong@aliyun.com
          西安西保特工電力自動化有限公司 版權所有 

         

        中国国产区91最新更新,国产系列丝袜熟女精品网站,国产在线不卡精品网站,97se国产在线,亚洲精品国产自在现线,亚洲欧美成 人 在线播放,欧美偷窥清纯综合图区