MCS-51匯編語(yǔ)言程序設(shè)計(jì)(I)

MCS-51匯編語(yǔ)言程序設(shè)計(jì)(I)

ID:39335547

大?。?09.10 KB

頁(yè)數(shù):76頁(yè)

時(shí)間:2019-07-01

MCS-51匯編語(yǔ)言程序設(shè)計(jì)(I)_第1頁(yè)
MCS-51匯編語(yǔ)言程序設(shè)計(jì)(I)_第2頁(yè)
MCS-51匯編語(yǔ)言程序設(shè)計(jì)(I)_第3頁(yè)
MCS-51匯編語(yǔ)言程序設(shè)計(jì)(I)_第4頁(yè)
MCS-51匯編語(yǔ)言程序設(shè)計(jì)(I)_第5頁(yè)
資源描述:

《MCS-51匯編語(yǔ)言程序設(shè)計(jì)(I)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、第4章匯編語(yǔ)言程序設(shè)計(jì)§4.1偽指令§4.2匯編語(yǔ)言語(yǔ)句格式§4.3匯編語(yǔ)言程序設(shè)計(jì)方法§4.4典型程序設(shè)計(jì)分析習(xí)題§4.1偽指令偽指令的定義用匯編語(yǔ)言設(shè)計(jì)完成的源程序,需要用匯編程序(翻譯程序)將其轉(zhuǎn)換成由二進(jìn)制代碼組成的目標(biāo)程序后,機(jī)器才能執(zhí)行。在翻譯過(guò)程中,需要了解程序的起始點(diǎn)、數(shù)據(jù)放在哪里、程序到哪里結(jié)束等一些問(wèn)題,這些問(wèn)題在機(jī)器指令系統(tǒng)中并沒(méi)有解決,因此需要一些匯編命令來(lái)解決這些問(wèn)題,這種匯編命令就是偽指令。偽指令就是為了解決匯編語(yǔ)言源程序匯編為機(jī)器碼程序時(shí)說(shuō)明一些匯編功能的指令,之所以稱(chēng)其為偽指令,是它在源程序中的表現(xiàn)形式與機(jī)器指令并無(wú)兩樣,只是它

2、在目標(biāo)程序中不產(chǎn)生機(jī)器代碼,它只是給匯編程序一個(gè)指示而已。當(dāng)然一些偽指令還有助于提高源程序的可讀性。§4.1偽指令起始指令ORGnn起始指令中的ORG表示起點(diǎn)(Origin),也稱(chēng)定位偽指令。指令中的nn表示地址,其功能是確定程序代碼和數(shù)據(jù)代碼放在存儲(chǔ)器中的起始位置。起始指令可以在源程序中多處使用,用于表達(dá)某段程序的起始地址?!?.1偽指令結(jié)束指令END結(jié)束指令END的功能似乎象它助記符號(hào)那樣簡(jiǎn)單,表示源程序到此結(jié)束,指示匯編程序翻譯到此為止,即使END后面還有其他語(yǔ)句,匯編程序不再進(jìn)行翻譯。每一個(gè)源程序應(yīng)該只有一個(gè)結(jié)束指令END?!?.1偽指令定義字節(jié)數(shù)據(jù)偽

3、指令[標(biāo)號(hào):]DB項(xiàng)或項(xiàng)表助記符號(hào)DB的含義是定義字節(jié)數(shù)據(jù)(DefineByte)。每一個(gè)數(shù)據(jù)都是常數(shù),每一個(gè)常數(shù)的大小范圍不能超過(guò)8位二進(jìn)制數(shù)能表達(dá)的范圍。這些常數(shù)存放在程序存儲(chǔ)器中,指令中的標(biāo)號(hào)是這些數(shù)據(jù)存放在存儲(chǔ)器中的首地址。指令中的“項(xiàng)或項(xiàng)表”有以下幾層含義:1)“項(xiàng)或項(xiàng)表”可以是一個(gè)數(shù)據(jù),也可以是一串?dāng)?shù)據(jù)。每一個(gè)數(shù)據(jù)之間用逗號(hào)隔開(kāi)。2)“項(xiàng)或項(xiàng)表”中數(shù)據(jù)書(shū)寫(xiě)的形式可以是二進(jìn)制數(shù)、十進(jìn)制數(shù)、十六進(jìn)制數(shù)等。3)“項(xiàng)或項(xiàng)表”也可以表達(dá)字符串,表達(dá)時(shí)用單引號(hào)將字符串包括在內(nèi),字符串經(jīng)過(guò)匯編以后將生成相應(yīng)的ASCII碼。§4.1偽指令定義字節(jié)數(shù)據(jù)偽指令例4-1

4、:分析下列程序段。┇ORG0100HLABLE:DB10000101B,100,93HDB‘ABC’,56H56H43H42H41H93H64H85H地址0106H0105H0104H0103H0102H0101H0100H程序存儲(chǔ)器§4.1偽指令定義字?jǐn)?shù)據(jù)偽指令[標(biāo)號(hào):]DW項(xiàng)或項(xiàng)表助記符號(hào)DW的含義是定義字?jǐn)?shù)據(jù)(DefineWord)。每一個(gè)數(shù)據(jù)都是常數(shù),每一個(gè)常數(shù)的大小范圍不能超過(guò)十六位二進(jìn)制數(shù)能表達(dá)的范圍。這些常數(shù)存放在程序存儲(chǔ)器中,指令中的標(biāo)號(hào)是這些數(shù)據(jù)存放在存儲(chǔ)器中的首地址。指令中的“項(xiàng)或項(xiàng)表”可以是一個(gè)數(shù)據(jù),也可以是一串?dāng)?shù)據(jù),每一個(gè)數(shù)據(jù)之間用逗號(hào)

5、隔開(kāi);“項(xiàng)或項(xiàng)表”中數(shù)據(jù)書(shū)寫(xiě)的形式可以是二進(jìn)制數(shù)、十進(jìn)制數(shù)、十六進(jìn)制數(shù)?!?.1偽指令定義字?jǐn)?shù)據(jù)偽指令例4-3:分析下列程序段。┇ORG2100HLABLE:DW1,2,3§4.1偽指令定義字節(jié)變量于內(nèi)部數(shù)據(jù)存儲(chǔ)器偽指令符號(hào)名DATAaddr8這條偽指令的功能是將一個(gè)字節(jié)型變量定義在內(nèi)部數(shù)據(jù)存儲(chǔ)器00H~7FH中,指令中符號(hào)名用于給變量起名,指令中addr8是內(nèi)部數(shù)據(jù)存儲(chǔ)器地址,表示變量所在的內(nèi)存單元?!?.1偽指令定義字節(jié)變量于內(nèi)部數(shù)據(jù)存儲(chǔ)器偽指令例4-4:試編制一段程序,完成公式y(tǒng)=7x+8的運(yùn)算。設(shè)y的值域?yàn)榇笥诹?、小?55。解:根據(jù)題意,程序編制如下

6、:xDATA30H;定義變量x于內(nèi)部數(shù)據(jù)存儲(chǔ)器30H單元.yDATA31H;定義變量y于內(nèi)部數(shù)據(jù)存儲(chǔ)器31H單元.MOVA,x;將變量x的值送入累加器A.MOVB,#7;將常數(shù)7送入寄存器B.MULAB;進(jìn)行7x運(yùn)算.ADDA,#8;進(jìn)行7x+8運(yùn)算.MOVy,A;將運(yùn)算值送入y.STOP:SJMPSTOP;程序暫停.§4.1偽指令定義字節(jié)變量于外部數(shù)據(jù)存儲(chǔ)器偽指令符號(hào)名XDATAaddr16這條偽指令的功能是將一個(gè)字節(jié)型變量定義在外部數(shù)據(jù)存儲(chǔ)器0000H~FFFFH中,指令中符號(hào)名用于給變量起名,指令中addr16是外部數(shù)據(jù)存儲(chǔ)器地址,表示變量所在的內(nèi)存單元

7、。需要注意的是,訪問(wèn)該變量時(shí)必須采用寄存器間接尋址方式?!?.1偽指令定義字節(jié)變量于外部數(shù)據(jù)存儲(chǔ)器偽指令例4-5:試編一段程序,將變量X1定義在外部數(shù)據(jù)存儲(chǔ)器0124H單元,并把數(shù)據(jù)39H賦予X1。解:根據(jù)題意,程序編制如下:X1XDATA0124H;定義X1變量于外部;數(shù)據(jù)存儲(chǔ)器0124H單元。MOVDPTR,#X1;設(shè)立變量X1指針。MOVA,#39H;將常數(shù)39H送入累加器A。MOVX@DPTR,A;通過(guò)累加器A把;常數(shù)39H賦給變量X1?!?.1偽指令定義位變量偽指令符號(hào)名BITaddr8這條偽指令的功能是將一個(gè)位變量定義在內(nèi)部數(shù)據(jù)存儲(chǔ)器位尋址區(qū)域20

8、H~2FH中,指令中符號(hào)名用于給變量起

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。