當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]匯編語(yǔ)言(Assembly Language)是任何一種用于電子計(jì)算機(jī)、微處理器、微控制器或其他可編程器件的低級(jí)語(yǔ)言,亦稱為符號(hào)語(yǔ)言。在匯編語(yǔ)言中,用助記符代替機(jī)器指令的操作碼,用地址符號(hào)或標(biāo)號(hào)代替指令或操作數(shù)的地址。在不同的設(shè)備中,匯編語(yǔ)言對(duì)應(yīng)著不同的機(jī)器語(yǔ)言指令集,通過(guò)匯編過(guò)程轉(zhuǎn)換成機(jī)器指令。特定的匯編語(yǔ)言和特定的機(jī)器語(yǔ)言指令集是一一對(duì)應(yīng)的,不同平臺(tái)之間不可直接移植。

MCS 51 指令系統(tǒng)中每一條指令都是用意義明確的助記符來(lái)表示的,這種由指令的助記符、符號(hào)地址、標(biāo)號(hào)等書寫的程序稱為匯編語(yǔ)言程序。

匯編語(yǔ)言(Assembly Language)是任何一種用于電子計(jì)算機(jī)、微處理器、微控制器或其他可編程器件的低級(jí)語(yǔ)言,亦稱為符號(hào)語(yǔ)言。在匯編語(yǔ)言中,用助記符代替機(jī)器指令的操作碼,用地址符號(hào)或標(biāo)號(hào)代替指令或操作數(shù)的地址。在不同的設(shè)備中,匯編語(yǔ)言對(duì)應(yīng)著不同的機(jī)器語(yǔ)言指令集,通過(guò)匯編過(guò)程轉(zhuǎn)換成機(jī)器指令。特定的匯編語(yǔ)言和特定的機(jī)器語(yǔ)言指令集是一一對(duì)應(yīng)的,不同平臺(tái)之間不可直接移植。

匯編語(yǔ)言程序設(shè)計(jì)是開發(fā)計(jì)算機(jī)應(yīng)用系統(tǒng)的基本功。本章將通過(guò)一些基本程序,介紹部分常用的程序設(shè)計(jì)方法。

偽指令

我們知道,計(jì)算機(jī)只認(rèn)識(shí)機(jī)器指令(二進(jìn)制編碼), 因此應(yīng)用系統(tǒng)中必須把匯編語(yǔ)言源 程序通過(guò)匯編程序翻譯成機(jī)器語(yǔ)言程序( 目標(biāo)程序),計(jì)算機(jī)才能執(zhí)行,這個(gè)翻譯過(guò)程稱為 匯編。匯編程序在匯編過(guò)程中,必須要提供一些專 門 的指令,這些指令在匯編 時(shí)并不產(chǎn)生 目標(biāo)代碼,不影響程序的執(zhí)行,所以稱為偽指令 。下面介紹幾種常用的偽指令。

一、匯編起始指令 ORG

指令格式為:

ORG nn

該指令的作用是指明后面的程序或數(shù)據(jù)塊的起始地址,它總是出現(xiàn)在每段源程序或數(shù) 據(jù)塊的開始。式中,nn 為 16 位地址,匯編時(shí) nn 確定了此語(yǔ)句后面第一條指令或第一個(gè)數(shù) 據(jù) 的地址,此后的源程序或數(shù)據(jù)塊就依次連續(xù)存放在以后的地址內(nèi),直到遇到另一個(gè) ORG 指令為止。例:

ORG 2000H

MOV SP ,# 60H

MOV R0 ,# 2FH

MOV R2 ,#0FFH

ORG 偽指令說(shuō)明其后面程序的目標(biāo)代碼在存儲(chǔ)器中存放的起始地址是 2000H ,即

二、等值指令 EQU

指令格式:

字符名稱 EQU 數(shù)字或匯編符號(hào)

功能:使指令中的字符名稱等價(jià)于給定的數(shù)字或匯編符號(hào)。

使用等值指令可給程序的編制、調(diào)試、修改帶來(lái)方便,如果在程序中要多次使用到某一地址 ,由 EQU 指令將其賦值給一個(gè)字符名稱,一旦需要對(duì)其進(jìn)行變動(dòng) ,只要改變 EQU 命令后面的數(shù)字即可,而不需要對(duì)程序中涉及到該地址的所有指令逐句進(jìn)行修改。但要注意,由 EQU 等值的字符名稱必須先賦值后使用,且在同一個(gè)源程序中,同一個(gè)標(biāo)號(hào)只能賦值一次。例:

PA8155 EQU 8001H

即給標(biāo)號(hào) PA8155 賦值為 8001H 。

三、定義字節(jié)指令 DB

指令格式:

[標(biāo)號(hào):] DB 8 位二進(jìn)制數(shù)表

功能:把 8 位二進(jìn)制數(shù)表依次存入從標(biāo)號(hào)開始的連續(xù)的存儲(chǔ)單元中。

格式中,標(biāo)號(hào)區(qū)段可有可無(wú),DB 指令之后的 8 位二進(jìn)制數(shù)表是字節(jié)常數(shù)或用逗號(hào)隔開的字節(jié)串 ,也可以是用引號(hào)括起 的 ASCII 碼字符串 (一個(gè) ASCII 字符相當(dāng)于一個(gè)字 節(jié))。 例:

ORG 1000H

BUF1 : DB38H ,7FH ,80H

BUF2 : DB45H ,66H

ORG 偽指令指定了標(biāo)號(hào) BUF1 的地址為 1000H ,而 DB 偽指令是將其后的二進(jìn)制數(shù)表 38H 、7FH 、80H 依次存放在 1000H 、1001H、1002H3 個(gè)連續(xù)單元之中,BUF2 也是一個(gè)標(biāo)號(hào),其地址與前一條偽指令連續(xù),即 1003H 、1004H 地址單元中依次存放 45H 、66H 。

四、定義字指令 DW

指令格式:

[標(biāo)號(hào):] DW 16 位數(shù)據(jù)表

該指令的功能與 DB 相似 ,區(qū)別僅在于從指定地址開始存放的是指令中的 16 位數(shù)據(jù),而不是字節(jié)串。每個(gè) 16 位數(shù)據(jù)要占兩個(gè)存儲(chǔ)單元 ,高 8 位先存,低 8 位后存 ,這和 MCS 51指令中的 16 位數(shù)據(jù)存放順序是一致的。

五、匯編結(jié)束指令 END

指令格式:

[標(biāo)號(hào):] END 地址或標(biāo)號(hào)

格式中標(biāo)號(hào)以及 END 后面的地址或標(biāo)號(hào)可有可無(wú)。

功能:提供匯編結(jié)束標(biāo)志。匯編程序遇到 END 后就停止匯編,對(duì) END 以后的語(yǔ)句不予處理,故 END 應(yīng)放在程序的結(jié)束處。

匯編語(yǔ)言, 即第二代計(jì)算機(jī)語(yǔ)言,用一些容易理解和記憶的縮寫單詞來(lái)代替一些特定的指令,例如:用"ADD"代表加法操作指令,"SUB"代表減法操作指令,以及"INC"代表增加1,"DEC"代表減去1,"MOV"代表變量傳遞等等,通過(guò)這種方法,人們很容易去閱讀已經(jīng)完成的程序或者理解程序正在執(zhí)行的功能,對(duì)現(xiàn)有程序的bug修復(fù)以及運(yùn)營(yíng)維護(hù)都變得更加簡(jiǎn)單方便。但計(jì)算機(jī)的硬件不認(rèn)識(shí)字母符號(hào),這時(shí)候就需要一個(gè)專門的程序把這些字符變成計(jì)算機(jī)能夠識(shí)別的二進(jìn)制數(shù)或機(jī)器語(yǔ)言。因?yàn)閰R編語(yǔ)言只是將機(jī)器語(yǔ)言做了簡(jiǎn)單編譯,所以并沒有根本上解決機(jī)器語(yǔ)言的特定性,所以匯編語(yǔ)言和機(jī)器自身的編程環(huán)境息息相關(guān),推廣和移植很難,但是還是保持了機(jī)器語(yǔ)言優(yōu)秀的執(zhí)行效率,因?yàn)樗目砷喿x性和簡(jiǎn)便性,匯編語(yǔ)言到現(xiàn)在依然是常用的編程語(yǔ)言之一。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉