日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

您好,歡迎來(lái)電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊(cè)]

當(dāng)前位置:電子發(fā)燒友網(wǎng) > 圖書(shū)頻道 > 電子 > 《計(jì)算機(jī)組成原理與匯編語(yǔ)言》 > 第3章 指令系統(tǒng)與匯編語(yǔ)言設(shè)計(jì)

第1節(jié) 8088的尋址方式

3.1.1 說(shuō)明操作數(shù)所在地址的尋址方式       
     1.立即尋址這種尋址方式所提供的操作數(shù)直接包含在指令中。它緊跟在操作碼的后面,與操作碼一起放在代碼段區(qū)域中,如圖3.1所示
        
      例:MOV AX,im立即數(shù)im可以是8位的,也可以是16位的。若是16位的,則imL在低地址字節(jié),imH在高地址字節(jié)。 
      

2.直接尋址

操作數(shù)地址的16位段內(nèi)偏移地址直接包含在指令中,它與操作碼一起存放 在代碼段區(qū)域.操作數(shù)一般在數(shù)據(jù)段區(qū)域中,它的地址為數(shù)據(jù)段寄存器DS

加上 這16位的段內(nèi)偏移地址,如圖3.2所示。 內(nèi)偏移地址,如圖3.2所示。

 

 

       MOVAX,DS:[200H]指令中的16位段內(nèi)偏移地址的低字節(jié)在前,高字節(jié)在后。這種尋址方法以數(shù)據(jù)段的段地址為基礎(chǔ),故可在多
達(dá)64KB的范圍內(nèi)尋找操作數(shù)。        
     
       本例中,取數(shù)的物理地址就是:DS的內(nèi)容×16(即左移4位), 變?yōu)?0位,再在其低端16位上加上偏移地址2000H。偏移地址2000H是由指令直接給出的。
          
3.寄存器尋址 
        
操作數(shù)包含在CPU的內(nèi)部寄存器中,例如AX、BX、CX、DX等,如圖3.3所示。
         
     例:MOV DS,AX

雖然操作數(shù)可存放在CPU內(nèi)部任意一個(gè)通用寄存器中,而且它們都能參與算術(shù)或邏輯運(yùn)算并存放運(yùn)算結(jié)果,但是,AX是累加器,若將結(jié)果存放在AX中的話,通 常指令執(zhí)

行時(shí)間要短一些。 4.寄存器間接尋址 在這種尋址方式中,操作數(shù)存放在存貯器中,操作數(shù)的16位段內(nèi)偏移地址卻放在以下4個(gè)寄存器SI、DI、BP、BX中之一。由于上述4

個(gè)寄存器所默認(rèn)的段寄存器不同, 這樣又可以分成兩種情況: ①若以SI、DI、BX進(jìn)行間接尋址,則操作數(shù)通常存放在現(xiàn)行數(shù)據(jù)段中。此時(shí)數(shù)據(jù)段寄存器內(nèi)容加上SI、

DI、BX中的16位段內(nèi)偏移地址,即得操作數(shù)的地址,如圖3.4所示。 例:MOV AX,[SI]

    ②若以寄存器BP間接尋址,則操作數(shù)存放在堆棧段區(qū)域中。此時(shí)堆棧 段寄存器內(nèi)容加上BP中的16位段內(nèi)偏移地址,即得操作數(shù)的地址,如圖3.5所示。
         
         例:MOV AX, [BP] 

 5.寄存器相對(duì)尋址

在這種尋址方式中,操作數(shù)存放在存貯器中。操作數(shù)的地址是由段寄存 器內(nèi)容加上SI、DI、BX、BP之一的內(nèi)容,再加上由指令中所指出的8位或16 位相對(duì)地址偏移量而

得到的,如圖3.6所示。 在一般情況下,若用SI、DI或BX進(jìn)行相對(duì)尋址時(shí),以數(shù)據(jù)段寄存器DS作為地址基 準(zhǔn),而用BP尋址時(shí),則以堆棧段寄存器作為地址基準(zhǔn)。

例:MOV AX,DISP[SI]

 

 

6. 基址、變址尋址

        在8088中,通常把BX和BP作為基址寄存器,而把SI、DI作為變址寄存器。這兩種寄存器聯(lián)合起來(lái)進(jìn)行的尋址就稱為基址、變址尋址。這時(shí),操作數(shù)的
         
       地址應(yīng)該是段寄存器內(nèi)容加上基址寄存器內(nèi)容(BX或BP內(nèi)容),再加上變址寄存器內(nèi)容(SI或DI內(nèi)容)而得到的,如圖3.7所示。

        同理,若用BX作為基地址,則操作數(shù)應(yīng)放在數(shù)據(jù)段DS區(qū)域中;若用BP作為基地址,則操作數(shù)應(yīng)放在堆棧段SS區(qū)域中。

         例:MOV AX,[BX][SI]

 

7. 基址、變址、相對(duì)尋址

        這種方式實(shí)際上是第6種尋址方式的擴(kuò)充。即操作數(shù)的地址是由基址、變址方式得到的地址再加上由指令指明的8位或16位的相對(duì)偏移地址而得到的,
如圖3.8所示。

            例:MOV AX,DISP [BX] [SI]

8. 隱含尋址

        在有些指令的指令碼中,不僅包含有操作碼信息,而且還隱含了操作數(shù)地址的信息。例如乘法指令MUL的指令碼中只需指明一個(gè)乘數(shù)的地址,

       另一個(gè)乘數(shù)和積的地址是隱含固定的。這種將操作數(shù)的地址隱含在指令操作碼中的尋址方式就稱為隱含尋址。

3.1.2  說(shuō)明轉(zhuǎn)移地址的尋址方式

    1. 段內(nèi)相對(duì)尋址

        在這種尋址方式中,指令應(yīng)指明一個(gè)8位或16位的相對(duì)地址位移量DISP(它有正負(fù)符號(hào),用補(bǔ)碼表示)。此時(shí),轉(zhuǎn)移地址應(yīng)該是代碼段寄

       存器CS內(nèi)容加上指令指針I(yè)P內(nèi)容,再加上相對(duì)地址位移量DISP,如圖3.9所示。

               例:JMP DISP1

       圖3.9中,1000H是CPU讀取這條指令的位移量50H后IP的內(nèi)容。所以,該指令使CPU轉(zhuǎn)向21050H去執(zhí)行。  

   2. 段內(nèi)間接尋址

         在這種尋址方式中,轉(zhuǎn)移地址的段內(nèi)偏移地址要么存放在一個(gè)16位的寄存器中;要么存放在存貯器的兩個(gè)相鄰單元中。存放偏移地址的

        寄存器和存貯器的地址將按指令碼中規(guī)定的尋址方式給出。此時(shí),尋址所得到的不是操作數(shù),而是轉(zhuǎn)移地址,如圖3.10所示。
  
              例:JMP CX
                  JMP WORDPTR [BX]

   3. 段間直接尋址

         在這種尋址方式中,指令碼中將直接給出16位的段地址和16位的段內(nèi)偏移地址。

              例:JMP FAR PTR ADD1

        在執(zhí)行這條段間直接尋址指令時(shí),指令操作碼后的第二個(gè)字將賦予代碼段寄存器CS,第一個(gè)字將賦予指令指針寄存器IP。

        最后CS內(nèi)容和IP內(nèi)容相加則得轉(zhuǎn)移地址,如圖3.11所示。

   4. 段間間接尋址

        這種尋址方式和段內(nèi)間接尋址相似。但是,由于確定轉(zhuǎn)移地址需要32位信息,因此只適用于存貯器尋址方式。用這種尋址方式

        可計(jì)算出存放轉(zhuǎn)移地址的存貯單元的首地址,與此相鄰的4個(gè)單元中,前兩個(gè)單元存放16位的段內(nèi)偏移地址;而后兩單元存放的

       是16位的段地址,如圖3.12所示。

              例:JMP DWORD PTR[BP][DI]

 


 

?
建德市| 平和县| 梅河口市| 崇明县| 牙克石市| 和田县| 互助| 广宁县| 鸡西市| 淳化县| 临高县| 肥乡县| 仙居县| 张家川| 潜山县| 曲阳县| 深泽县| 平乐县| 涟水县| 舟山市| 班玛县| 南雄市| 江安县| 岳西县| 萍乡市| 互助| 西畴县| 鄄城县| 阜城县| 濮阳县| 易门县| 寿宁县| 麦盖提县| 永寿县| 邯郸市| 宁河县| 剑河县| 安徽省| 尤溪县| 池州市| 中牟县|