那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

單片機匯編語言的結構/數據類型/匯編指令

科技觀察員 ? 來源:英銳恩 ? 作者:英銳恩 ? 2023-07-07 12:28 ? 次閱讀

開發匯編語言是為了為機器級代碼指令提供助記符或符號,匯編語言程序由助記符組成,因此應將它們翻譯成機器代碼。負責這種轉換的程序稱為匯編程序。匯編語言通常被稱為低級語言,因為它直接與 CPU 的內部結構一起工作。要用匯編語言編程,程序員必須知道 CPU 的所有寄存器

不同的編程語言,如 C、C++Java 和各種其他語言,被稱為高級語言,因為它們不處理 CPU 的內部細節。相比之下,匯編器用于將匯編語言程序翻譯成機器代碼(有時也稱為目標代碼或操作碼)。類似地,編譯器將高級語言翻譯成機器代碼。例如,要用 C 語言編寫程序,必須使用 C 編譯器將程序翻譯成機器語言。

一、匯編語言的結構

匯編語言程序是一系列語句,它們要么是 ADD 和 MOV 等匯編語言指令,要么是稱為指令的語句。

一個指令告訴CPU做什么,而指令(又稱偽指令)給出指令匯編。例如,ADD 和MOV 指令是CPU 運行的命令,而ORG 和END 是匯編指令。當使用 ORG 指令時,匯編器將操作碼放置到內存位置 0,而 END 指示到源代碼的結尾。程序語言指令由以下四個字段組成:

[ label: ] mnemonics [ operands ] [;comment ]

其中,上面方括號“[ ]”表示該字段是可選的。

標簽字段允許程序通過名稱來指代一行代碼。標簽字段不能超過一定數量的字符。該助記符和操作數的字段一起執行程序的實際工作和完成的任務。像 ADD A , C & MOV C, #68 這樣的語句,其中 ADD 和 MOV 是產生操作碼的助記符;“A,C”和“C,#68”是操作數。這兩個字段可以包含指令。指令不生成機器代碼,僅由匯編程序使用,而指令則被翻譯成機器代碼供 CPU 執行。

二、創建和運行8051程序

這里我們將討論匯編語言的基本形式。創建和運行匯編語言程序的步驟如下:

首先,我們使用編輯器鍵入類似于上述程序的程序。可以使用所有 Microsoft 操作系統附帶的 MS-DOS EDIT 程序等編輯器來創建或編輯程序。編輯器必須能夠生成 ASCII 文件。匯編程序在下一步中使用源文件的“asm”擴展名。

“asm”源文件包含在步驟1中創建的程序代碼。它被發送到8051匯編器。然后,匯編器將匯編語言指令轉換為機器代碼指令,并生成一個“.obj”文件(目標文件)和一個“.lst”文件(列表文件)。它也被稱為源文件,這就是為什么一些匯編程序要求此文件具有“src”擴展名的原因。“lst”文件是可選的。它對程序非常有用,因為它列出了所有的操作碼和地址以及匯編程序檢測到的錯誤。

匯編程序需要稱為鏈接的第三步。鏈接程序獲取一個或多個目標文件,并生成一個擴展名為“abs”的絕對目標文件。

接下來,“abs”文件被饋送到一個名為“OH”(對象到十六進制轉換器)的程序,該程序創建一個擴展名為“.hex”的文件,準備燒入 ROM

三、數據類型

8051單片機包含單一的 8 位數據類型,每個寄存器也是 8 位大小。程序員必須分解大于 8 位(00 到 FFH,或十進制的 255)的數據,以便 CPU 可以處理這些數據。

DB(定義字節)

DB 指令是匯編程序中使用最廣泛的數據指令。它用于定義 8 位數據。它還可用于定義十進制、二進制、十六進制或 ASCII 格式的數據。對于十進制,十進制數后的“D”是可選的,但對于“B”(二進制)和“Hl”(十六進制)是必需的。

要指示 ASCII,只需將字符放在引號中('like this')。匯編器會自動為數字/字符生成 ASCII 代碼。DB 指令是唯一可用于定義大于兩個字符的 ASCII 字符串的指令;因此,它應該用于所有 ASCII 數據定義。下面給出了一些 DB 的例子:

ORG  500H

DATA1: DB 28 ;DECIMAL (1C in hex)

DATA2: DB 00110101B ;BINARY (35 in hex)

DATA3: DB 39H ;HEX

ORG 510H

DATA4: DB "2591" ;ASCII NUMBERS

ORG 520H

DATA6: DA "MY NAME IS Michael" ;ASCII CHARACTERS

ASCII 字符串周圍可以使用單引號或雙引號。DB 還用于以字節大小的塊分配內存。

四、匯編指令

8051 的一些指令如下:

ORG (origin) - origin 指令用于指示地址的開頭。它采用十六進制或十進制格式的數字。如果在數字后提供 H,則數字被視為六進制,否則為十進制。匯編程序將十進制數轉換為十六進制數。

EQU (equate) - 用于定義一個常量而不占用內存位置。EQU 將一個常量值與一個數據標簽相關聯,以便該標簽出現在程序中,它的常量值將替換該標簽。在執行指令“MOV R3,#COUNT”時,寄存器 R3 將加載值 25(注意 # 符號)。使用 EQU 的好處是程序員可以改變一次,匯編器會改變它的所有出現;程序員不必搜索整個程序。

END 指令- 它表示源 (asm) 文件的結尾。END 指令是程序的最后一行;END 指令之后的任何內容都被匯編程序忽略。

五、匯編語言中的標簽

匯編語言中的所有標簽必須遵循以下規則:

每個標簽名稱必須是唯一的。匯編語言編程中用于標簽的名稱由大小寫字母、數字 0 到 9 和特殊字符如問號 (?)、句點 (.)、@、下劃線 (_)、和美元($)。第一個字符應該是字母字符;它不能是一個數字。保留字不能用作程序中的標簽。例如,ADD 和 MOV 字是保留字,因為它們是指令助記符。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6043

    文章

    44622

    瀏覽量

    638527
  • 匯編語言
    +關注

    關注

    14

    文章

    410

    瀏覽量

    35957
收藏 人收藏

    評論

    相關推薦

    單片機編程之匯編語言基礎-常用指令和程序模式

    單片機編程分為單片機C語言編程和單片機匯編語言編程兩種類型
    發表于 07-26 10:18 ?1.5w次閱讀
    <b class='flag-5'>單片機</b>編程之<b class='flag-5'>匯編語言</b>基礎-常用<b class='flag-5'>指令</b>和程序模式

    單片機編程之匯編語言基礎-PIC單片機匯編指令

    PIC單片機匯編語言編程教程,其中PIC單片機的兩條偽指令為:EQU(標號賦值偽指令)ORG(地址定義偽
    發表于 07-26 11:32 ?3097次閱讀

    MCS-51單片機指令系統和匯編語言程序實例

    MCS-51單片機指令系統和匯編語言程序實例 介紹MCS-51的指令系統和匯編語言編程,了解處理器的軟件資源3.1 MCS-51
    發表于 03-18 22:28 ?457次下載
    MCS-51<b class='flag-5'>單片機</b><b class='flag-5'>指令</b>系統和<b class='flag-5'>匯編語言</b>程序實例

    單片機指令系統與匯編語言程序設計_從零開始學習單片機系列

    【從零開始學習單片機系列】第02章單片機指令系統與匯編語言程序設計
    發表于 01-06 17:57 ?0次下載

    51單片機匯編語言教程:單片機數據傳遞類指令

    51單片機匯編語言教程:9課單片機數據傳遞類指令
    發表于 01-19 15:25 ?0次下載

    51單片機匯編語言教程_單片機尋址方式與指令系統

    51單片機匯編語言教程:8課單片機尋址方式與指令系統
    發表于 01-19 15:25 ?0次下載

    51單片機匯編語言教程_單片機并行口結構

    51單片機匯編語言教程:6課單片機并行口結構
    發表于 01-19 15:26 ?0次下載

    51單片機匯編語言教程_單片機匯編課程簡介

    51單片機匯編語言教程:1課單片機匯編課程簡介
    發表于 01-19 15:27 ?0次下載

    51單片機匯編語言指令教程匯集1

    51單片機匯編語言指令教程通俗易懂 適合初學者。
    發表于 05-20 11:05 ?8次下載

    PIC單片機指令系統和匯編語言程序設計

    PIC單片機指令系統和匯編語言程序設計,快來下載吧
    發表于 09-01 18:17 ?0次下載

    PIC8位單片機匯編語言常用指令的識讀

    PIC8位單片機匯編語言常用指令
    發表于 12-07 15:04 ?2次下載

    AVR單片機結構匯編語言簡析

    單片機那么久了,感覺想要深入,還得看匯編語言,至少得了解單片機內部結構。 下面就以ATmega16為例,介紹一下AVR單片機結構
    發表于 12-03 17:37 ?1363次閱讀
    AVR<b class='flag-5'>單片機</b><b class='flag-5'>結構</b>和<b class='flag-5'>匯編語言</b>簡析

    單片機 | 基礎匯編語言編程實例

    單片機匯編語言編程
    的頭像 發表于 06-05 18:04 ?1w次閱讀

    51單片機匯編語言指令的資料合集免費下載

    本文檔的主要內容詳細介紹的是51單片機匯編語言指令的資料合集免費下載。
    發表于 11-03 08:00 ?8次下載

    MCS-51單片機匯編語言程序設計

    文章目錄前言一、匯編的方法1.手工匯編:2.機器匯編:二、偽指令一、匯編語言指令
    發表于 11-05 12:21 ?32次下載
    MCS-51<b class='flag-5'>單片機</b><b class='flag-5'>匯編語言</b>程序設計
    百家乐太阳城菲律宾| 百家乐官网投注玩多少钱| 足球百家乐投注| 加州百家乐官网娱乐城| 888百家乐的玩法技巧和规则| 百家乐官网庄闲对冲| 网上百家乐骗人吗| 百家乐官网赢钱皇冠网| 威尼斯人娱乐城会员| 大三巴百家乐官网的玩法技巧和规则| 钻石娱乐开户| 百家乐网上真钱娱乐网| 百家乐官网论坛香港马会| 大发888现金存款| 乐宝百家乐娱乐城| 百家乐官网游戏真钱游戏| 百家乐7人桌布| 至尊百家乐官网20| 百家乐官网哪家有优惠| 大发888论坛| 百家乐官网五湖四海赌场娱乐网规则| 永利博线上娱乐城| 香港百家乐马书| 大集汇百家乐官网的玩法技巧和规则| 迷你百家乐官网论坛| 大发888交流心得| 百家乐棋牌公式| 金博士百家乐官网娱乐城 | 大发888官网网址| 81数理 做生意| 皇冠投注網| 首席百家乐的玩法技巧和规则| 钱隆百家乐官网的玩法技巧和规则 | 悍马百家乐官网的玩法技巧和规则| 阿城市| 大发888zhldu| 百家乐娱乐送白菜| 24山亥山巳向造葬日课| 百家乐官网币| 原平市| 顶级赌场是真的吗|