亚洲国产日韩欧美在线a乱码,国产精品路线1路线2路线,亚洲视频一区,精品国产自,www狠狠,国产情侣激情在线视频免费看,亚洲成年网站在线观看

偽指令EVEN操作機(jī)理的問(wèn)題分析論文

時(shí)間:2024-09-16 07:40:00 其他類(lèi)論文 我要投稿

匯編偽指令EVEN操作機(jī)理的問(wèn)題分析論文

  匯編語(yǔ)言屬于低級(jí)語(yǔ)言范疇,是一種面向機(jī)器的、功能很強(qiáng)的程序設(shè)計(jì)語(yǔ)言。它具有目標(biāo)代碼簡(jiǎn)短,占用內(nèi)存少,執(zhí)行速度快等優(yōu)點(diǎn)。

匯編偽指令EVEN操作機(jī)理的問(wèn)題分析論文

  匯編語(yǔ)言指令是機(jī)器指令的一種符號(hào)表示,不同類(lèi)型的CPU就有不同的機(jī)器指令系統(tǒng),也就有不同的匯編語(yǔ)言。除了同系列、不同型號(hào)CPU之間的匯編語(yǔ)言程序有一定程度的可移植性之外,其他不同類(lèi)型CPU之間的匯編語(yǔ)言程序是無(wú)法移植的。

  正因?yàn)閰R編語(yǔ)言具有“與機(jī)器相關(guān)性”的特性,程序員使用匯編語(yǔ)言編寫(xiě)程序時(shí),可以對(duì)機(jī)器內(nèi)部的各種資源進(jìn)行合理的安排,編寫(xiě)出高效且需要對(duì)機(jī)器硬件精確控制的程序。所以掌握計(jì)算機(jī)系統(tǒng)的硬件結(jié)構(gòu)對(duì)學(xué)習(xí)匯編語(yǔ)言具有很大幫助。

  在學(xué)習(xí)《匯編語(yǔ)言程序設(shè)計(jì)》課程時(shí),有一條對(duì)準(zhǔn)偽指令EVEN,其作用就是將下一個(gè)字節(jié)的地址設(shè)置為偶數(shù),并且指出一個(gè)字的地址最好從偶地址開(kāi)始。但其原因卻并沒(méi)有過(guò)多給以說(shuō)明。因此,學(xué)生對(duì)它的功能比較茫然,為了充分說(shuō)明該偽指令的功能,該文從8086微機(jī)系統(tǒng)的存儲(chǔ)器組織結(jié)構(gòu)著手,詳細(xì)闡述這個(gè)問(wèn)題。

  1 存儲(chǔ)器中的數(shù)據(jù)組織

  在計(jì)算機(jī)系統(tǒng)中,作為一個(gè)整體存入或取出內(nèi)存儲(chǔ)器的數(shù)據(jù)稱(chēng)為“存儲(chǔ)字”。例如:8位計(jì)算機(jī)的存儲(chǔ)字是8位字長(zhǎng)(1個(gè)字節(jié));16位計(jì)算機(jī)的存儲(chǔ)字是16位字長(zhǎng)(2個(gè)字節(jié))……

  對(duì)于內(nèi)存儲(chǔ)器的字長(zhǎng)(一個(gè)存儲(chǔ)單元所包含二進(jìn)制代碼的個(gè)數(shù)),如果和主機(jī)的字長(zhǎng)相同,則一個(gè)存儲(chǔ)單元存放一個(gè)存儲(chǔ)字,存儲(chǔ)字的地址就是存儲(chǔ)單元的地址,這種存儲(chǔ)器稱(chēng)為“字編址結(jié)構(gòu)”。但在微機(jī)系統(tǒng)中,內(nèi)存儲(chǔ)器一般都是以字節(jié)作為基本存儲(chǔ)單元。這樣,對(duì)16位字長(zhǎng)以及16位以上字長(zhǎng)的計(jì)算機(jī),一個(gè)存儲(chǔ)字將被存放在幾個(gè)連續(xù)的存儲(chǔ)單元中,這種存儲(chǔ)器稱(chēng)為“字節(jié)編址結(jié)構(gòu)”。

  2 8086微機(jī)系統(tǒng)的存儲(chǔ)器組織結(jié)構(gòu)

  8086 CPU有16條數(shù)據(jù)線(xiàn),20條地址線(xiàn),可直接尋址1M字節(jié)的內(nèi)存儲(chǔ)器地址空間,而這1M字節(jié)的存儲(chǔ)器地址空間是按字節(jié)順序排列的。由于8086是16位的微型計(jì)算機(jī),而在16微機(jī)系統(tǒng)中,CPU除了可以對(duì)一個(gè)字節(jié)(8位)操作外,還可以進(jìn)行一個(gè)字(16位)的操作。為了能滿(mǎn)足一次訪(fǎng)問(wèn)一個(gè)整字又能訪(fǎng)問(wèn)一個(gè)字節(jié)的要求,在8086微機(jī)系統(tǒng)中,1M字節(jié)的存儲(chǔ)器地址空間實(shí)際分成兩個(gè)512K字節(jié)的存儲(chǔ)體——“偶存儲(chǔ)體”和“奇存儲(chǔ)體”。兩個(gè)存儲(chǔ)體之間采用字節(jié)交叉編址方式。

  對(duì)于任何一個(gè)存儲(chǔ)體,只需要19條地址線(xiàn)(A19—A1)就可以直接尋址,剩下1條地址線(xiàn)(A0)用來(lái)區(qū)分當(dāng)前訪(fǎng)問(wèn)的是哪一個(gè)存儲(chǔ)體,A0=0時(shí),表示訪(fǎng)問(wèn)的是偶存儲(chǔ)體;A0=1時(shí),表示訪(fǎng)問(wèn)的是奇存儲(chǔ)體。

  在8086微機(jī)系統(tǒng)中,讀寫(xiě)一個(gè)字節(jié)的信息時(shí),可以直接采用上述方法進(jìn)行操作,但讀寫(xiě)一個(gè)整字的信息時(shí),則需要同時(shí)訪(fǎng)問(wèn)兩個(gè)存儲(chǔ)體,在這種情況下,若只用A0的取值來(lái)控制讀寫(xiě)操作顯然就不行了。為此,在8086微機(jī)系統(tǒng)中,又增加一個(gè)總線(xiàn)高位有效控制信號(hào)。當(dāng)有效時(shí)(低電平有效),選定奇存儲(chǔ)體,體內(nèi)地址由A19—A1確定;當(dāng)A0=0時(shí),選定偶存儲(chǔ)體,體內(nèi)地址同樣由A19—A1確定。奇存儲(chǔ)體和數(shù)據(jù)總線(xiàn)高8位(D15—D8)連接,偶存儲(chǔ)體和數(shù)據(jù)總線(xiàn)低8位(D7—D0)連接。有時(shí)候,奇存儲(chǔ)體稱(chēng)為高字節(jié)存儲(chǔ)體,偶存儲(chǔ)體稱(chēng)為低字節(jié)存儲(chǔ)體。因此,在8086微機(jī)系統(tǒng)中,允許CPU訪(fǎng)問(wèn)任何一個(gè)存儲(chǔ)體,讀寫(xiě)一個(gè)字節(jié)的信息或同時(shí)訪(fǎng)問(wèn)兩個(gè)存儲(chǔ)體讀寫(xiě)一個(gè)整字的信息。

  3 8086微機(jī)系統(tǒng)的存儲(chǔ)器讀/寫(xiě)操作

  8086CPU訪(fǎng)問(wèn)存儲(chǔ)器時(shí),在一個(gè)總線(xiàn)周期內(nèi),既可以訪(fǎng)問(wèn)一個(gè)字節(jié),也可以訪(fǎng)問(wèn)一個(gè)整字。

  (1)字節(jié)訪(fǎng)問(wèn)。

  當(dāng)8086CPU訪(fǎng)問(wèn)一個(gè)字節(jié)信息時(shí),可以分為兩種情況:

 、偃绻L(fǎng)問(wèn)的字節(jié)是偶地址,則數(shù)據(jù)總線(xiàn)低8位(D7—D0)和偶存儲(chǔ)體之間直接進(jìn)行數(shù)據(jù)傳送。

 、谌绻L(fǎng)問(wèn)的字節(jié)是奇地址,則數(shù)據(jù)總線(xiàn)高8位(D15—D8)和奇存儲(chǔ)體之間直接進(jìn)行數(shù)據(jù)傳送。

  由上可以看出,無(wú)論哪種情況,在一個(gè)總線(xiàn)周期內(nèi),都可以完成訪(fǎng)問(wèn)一個(gè)字節(jié)的操作。

  (2)整字訪(fǎng)問(wèn)。

  從上表可見(jiàn),8086CPU能同時(shí)訪(fǎng)問(wèn)奇存儲(chǔ)體和偶存儲(chǔ)體中的一個(gè)字節(jié),以組成一個(gè)16位存儲(chǔ)字。此時(shí),也有兩種情況:

 、偃绻L(fǎng)問(wèn)的一個(gè)字的低8位字節(jié)存放在偶存儲(chǔ)體中,高8位字節(jié)存放在奇存儲(chǔ)體中,以這種方式存放的一個(gè)字稱(chēng)為規(guī)則字。從上面分析可知,這時(shí)不需要字節(jié)交換地址交叉,直接就可以進(jìn)行數(shù)據(jù)傳送。因而,只需經(jīng)過(guò)一個(gè)總線(xiàn)周期就可完成對(duì)一個(gè)規(guī)則字的訪(fǎng)問(wèn)。

 、谌绻L(fǎng)問(wèn)的一個(gè)字的高8位字節(jié)存放在偶存儲(chǔ)體中,低8位字節(jié)存放在奇存儲(chǔ)體中,以這種方式存放的一個(gè)字稱(chēng)為非規(guī)則字。從上面分析可知,這時(shí)需要字節(jié)交換,才可以進(jìn)行數(shù)據(jù)傳送。因而,需要經(jīng)過(guò)兩個(gè)總線(xiàn)周期才可完成對(duì)一個(gè)非規(guī)則字的訪(fǎng)問(wèn)。

  對(duì)于以非規(guī)則字方式存放的一個(gè)字的操作過(guò)程是這樣的(以寫(xiě)操作為例):在第一個(gè)總線(xiàn)周期內(nèi),送出奇地址(A0=1),同時(shí)發(fā)出=0信號(hào),然后由8086 CPU把該字的低8位傳送到數(shù)據(jù)總線(xiàn)的高8位(注意:此時(shí)發(fā)生了字節(jié)交換),寫(xiě)入存儲(chǔ)器的奇存儲(chǔ)體;然后,在第二個(gè)總線(xiàn)周期內(nèi),8086 CPU又發(fā)出一個(gè)由該奇地址加1的偶地址,此時(shí)A0=0,=1,8086 CPU把該字的高8位傳送到數(shù)據(jù)總線(xiàn)的低8位(注意:此時(shí)又發(fā)生了字節(jié)交換),寫(xiě)入存儲(chǔ)器的偶存儲(chǔ)體。這樣,經(jīng)過(guò)二次存儲(chǔ)器訪(fǎng)問(wèn),才能把一個(gè)非規(guī)則字寫(xiě)入存儲(chǔ)器的奇地址字單元。

  4 結(jié)語(yǔ)

  通過(guò)上面的分析,我們說(shuō)可以得到如下的結(jié)論,在8086微機(jī)系統(tǒng)中,對(duì)于按字的讀寫(xiě)操作(比如字?jǐn)?shù)組),應(yīng)盡可能地使要操作的數(shù)據(jù),以規(guī)則字的方式存放在存儲(chǔ)器中,這樣,可以在一個(gè)總線(xiàn)周期內(nèi),完成一個(gè)字的讀寫(xiě)操作,否則的話(huà)就需要用二個(gè)總線(xiàn)周期,從而使指令的執(zhí)行時(shí)間延長(zhǎng)。因此,在編寫(xiě)匯編語(yǔ)言源程序時(shí),涉及到操作多字的時(shí)候,往往在存放多字的前面,插入一條偽指令EVEN,目的就是使字的地址從偶地址開(kāi)始,既使該字成為規(guī)則字。

  對(duì)于16位微機(jī)系統(tǒng)中,一個(gè)字存入存儲(chǔ)器要占有相繼的兩個(gè)字節(jié),存放時(shí),低位字節(jié)存入低地址,高位字節(jié)存入高地址,這樣兩個(gè)字節(jié)單元就構(gòu)成了一個(gè)字單元,字單元的地址采用它的低地址來(lái)表示。

  例如:1:MOV AX,[2000H]

  2;MOV AX,[2003H]

  從上面的分析可知,第一條指令中的操作數(shù)是以規(guī)則字的形式存放的,用一個(gè)總線(xiàn)周期的時(shí)間,就可以把操作數(shù)從存儲(chǔ)器中取出。第二條指令中的操作數(shù)是以非規(guī)則字的形式存放的,要用二個(gè)總線(xiàn)周期的時(shí)間,才可以把操作數(shù)從存儲(chǔ)器中取出。因此,執(zhí)行第一條指令所需的時(shí)間要比執(zhí)行第二條指令所需的時(shí)間少。

  32位微機(jī)系統(tǒng)中存儲(chǔ)器接口是16位的擴(kuò)展,數(shù)據(jù)總線(xiàn)有32位,故有4個(gè)存儲(chǔ)體,每個(gè)存儲(chǔ)體占1GB存儲(chǔ)空間,存儲(chǔ)體選擇線(xiàn)通過(guò)字節(jié)允許線(xiàn)BE#0—BE#3實(shí)現(xiàn),每個(gè)存儲(chǔ)體要有獨(dú)立的寫(xiě)通信號(hào)。操作機(jī)理與8086微機(jī)系統(tǒng)基本一致。

  參考文獻(xiàn)

  [1] 沈美明.80X86匯編語(yǔ)言程序設(shè)計(jì)[M]. 北京:清華大學(xué)出版社,2000.

  [2] 周明德.微型計(jì)算機(jī)系統(tǒng)原理及應(yīng)用[M].北京:清華大學(xué)出版社,2005.

【偽指令EVEN操作機(jī)理的問(wèn)題分析論文】相關(guān)文章:

教育失敗問(wèn)題分析論文03-04

酒店管理服務(wù)問(wèn)題分析論文03-02

體育教學(xué)動(dòng)力問(wèn)題分析論文02-27

邏輯哲學(xué)的核心問(wèn)題分析論文02-14

電子電路干擾問(wèn)題分析論文03-09

通信網(wǎng)絡(luò)優(yōu)化問(wèn)題分析論文01-01

國(guó)企薪酬管理問(wèn)題及對(duì)策分析論文02-26

電能計(jì)量資產(chǎn)管理問(wèn)題分析論文03-02

企業(yè)激勵(lì)管理存在問(wèn)題分析論文12-11

  • 相關(guān)推薦