中文字幕无码不卡一区二区三区_少妇被又大又粗又爽毛片久久黑人_91精品国产在热久久无毒不卡_久久久久久亚洲综合网站

技術熱線: 4007-888-234

技術支持

單片機匯編語言介紹

更新時間: 2021-08-28

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

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

一、匯編語言的結構

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

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

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

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

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

二、創(chuàng)建和運行8051程序

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

首先,我們使用編輯器鍵入類似于上述程序的程序??梢允褂盟?Microsoft 操作系統(tǒng)附帶的 MS-DOS EDIT 程序等編輯器來創(chuàng)建或編輯程序。編輯器必須能夠生成 ASCII 文件。匯編程序在下一步中使用源文件的“asm”擴展名。

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

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

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

三、數(shù)據(jù)類型

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

DB(定義字節(jié))

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

要指示 ASCII,只需將字符放在引號中('like this')。匯編器會自動為數(shù)字/字符生成 ASCII 代碼。DB 指令是唯一可用于定義大于兩個字符的 ASCII 字符串的指令;因此,它應該用于所有 ASCII 數(shù)據(jù)定義。下面給出了一些 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 還用于以字節(jié)大小的塊分配內(nèi)存。

四、匯編指令

8051 的一些指令如下:

ORG (origin) - origin 指令用于指示地址的開頭。它采用十六進制或十進制格式的數(shù)字。如果在數(shù)字后提供 H,則數(shù)字被視為六進制,否則為十進制。匯編程序?qū)⑹M制數(shù)轉(zhuǎn)換為十六進制數(shù)。

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

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

五、匯編語言中的標簽

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

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

以上就是英銳恩單片機開發(fā)工程師分享的單片機匯編語言。英銳恩專注單片機應用方案設計與開發(fā),提供8位單片機、16位單片機、32位單片機。

404
返回首頁 |  返回上一頁
冷水江市| 夏河县| 翁源县| 竹山县| 余庆县| 崇阳县| 阿拉尔市| 棋牌| 江阴市| 通海县| 宁陕县| 新安县| 九江市| 七台河市| 苍溪县| 广元市| 呈贡县| 彭山县| SHOW| 宁河县| 伊宁县| 太仆寺旗| 云梦县| 池州市| 永修县| 元朗区| 开原市| 筠连县| 遵化市| 石棉县| 麻城市| 红桥区| 武义县| 滨海县| 阳江市| 孟连| 宿松县| 新泰市| 玉树县| 乌拉特中旗| 扎鲁特旗|