操作數(shù)的尋址方式課件_第1頁
操作數(shù)的尋址方式課件_第2頁
操作數(shù)的尋址方式課件_第3頁
操作數(shù)的尋址方式課件_第4頁
操作數(shù)的尋址方式課件_第5頁
已閱讀5頁,還剩41頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

3.0尋址方式預(yù)備知識指令由操作碼和操作數(shù)兩部分組成;操作碼說明計算機要執(zhí)行哪種操作,用一個唯一的助記符表示,對應(yīng)著一個機器指令的二進制編碼;操作數(shù)是指令執(zhí)行的參與者,即各種操作的對象;指令中操作碼是不可缺少的,但操作數(shù)則是可選部分;16位系統(tǒng)中,操作數(shù)的數(shù)目一般為0~2個,用逗號分隔。08八月20231操作碼操作數(shù)指令格式3.0尋址方式預(yù)備知識指令由操作碼和操作數(shù)兩部分組成;2尋址方式尋址方式可分為指令尋址和數(shù)據(jù)尋址兩種類型;

本章主要介紹數(shù)據(jù)尋址方式。數(shù)據(jù)尋址方式在指令中,指定操作數(shù)或操作數(shù)存放位置的方法。一般,指令系統(tǒng)中會設(shè)計多種操作數(shù)的尋址方式;操作數(shù)采取不同的尋址方式,指令的執(zhí)行速度也會不同。08八月20232答:由控制器區(qū)分,通過CS和IP尋址的為指令,其他為數(shù)據(jù)。思考:數(shù)據(jù)、程序都在存儲器中,如何區(qū)分?尋址方式尋址方式可分為指令尋址和數(shù)據(jù)尋址兩種類型;

本章主要示例指令數(shù)據(jù)傳送指令MOV<目的操作數(shù)>,<源操作數(shù)>例如:MOVAX,1234HMOVAX,BXMOVAX,[BX]注意:尋址方式是針對操作數(shù)的,而不是指令的。指定操作數(shù)的尋址方式時,一定要指明是對源操作數(shù)還是對目的操作數(shù)而言。08八月20233示例指令數(shù)據(jù)傳送指令29七月20233指令中數(shù)據(jù)的位置指令中立即數(shù)尋址方式;寄存器中寄存器尋址方式;存儲單元中直接、間接、相對、基址變址、相對基址變址尋址方式;區(qū)別在于:形成操作數(shù)有效地址的方式不同;08八月20234指令中數(shù)據(jù)的位置指令中29七月20234內(nèi)部暫存器

IPESSSDSCS輸入/輸出控制電路外部總線執(zhí)行部分控制電路123456∑ALU標志寄存器AHALBHBLCHCLDHDLSPBPSIDI通用寄存器地址加法器指令隊列緩沖器執(zhí)行部件(EU)總線接口部件(BIU)16位20位16位8位①MOVAX,1234H②MOVAX,BX③MOVAX,[BX]內(nèi)部暫存器IPESSSDSCS輸入尋址方式中的符號表示(BX)=1000H[BX]=……[2000H]=……(AX)=(AX)+(BX)符號含義Imm立即數(shù)R寄存器SR段寄存器M存儲單元S源操作數(shù)D目的操作數(shù)()…中的數(shù)據(jù)[]地址單元08八月20236尋址方式中的符號表示(BX)=1000H符號含義Imm立即數(shù)3.1立即數(shù)尋址方式立即數(shù)尋址方式操作數(shù)的數(shù)值緊跟在操作碼之后,直接在指令中出現(xiàn)。特點優(yōu)點:執(zhí)行速度快;缺點:立即數(shù)不能修改,通用性差(適用于常數(shù))。注意:立即數(shù)不能作為目的操作數(shù);可以為8位也可以為16位,常用于給寄存器賦值。08八月20237不需訪存即可執(zhí)行3.1立即數(shù)尋址方式立即數(shù)尋址方式29七月2023立即數(shù)尋址方式舉例MOVBL,12HMOVX1,34

MOVBX,3478H機器指令:BB7834在存儲器中的存放格式08八月20238BLBH……3478BB低地址單元高地址單元操作碼MOVAL,300正確嗎?位數(shù)不匹配,不正確!代碼段立即數(shù)尋址方式舉例MOVBL,12H3.2寄存器尋址方式寄存器尋址方式操作數(shù)在寄存器中,指令的操作碼之后給出該寄存器的編號或名稱。某些系統(tǒng)的指令是將寄存器編號與操作碼一起編碼的。除IP、FR外的所有寄存器(包括段寄存器)都可以用作寄存器尋址方式。由于操作數(shù)存在于CPU中,指令執(zhí)行時不需訪存,因此具有較快的執(zhí)行速度。08八月202393.2寄存器尋址方式寄存器尋址方式29七月2023寄存器尋址方式舉例MOVAX,1234H;(AX)=1234H源操作數(shù)是立即數(shù)尋址方式;目的操作數(shù)是寄存器尋址方式。MOVBX,AX;(BX)=(AX)=1234H源操作數(shù)及目的操作數(shù)均為寄存器尋址方式。MOVX,AX源操作數(shù)是寄存器尋址方式;目的操作數(shù)是直接尋址方式。08八月202310寄存器尋址方式舉例MOVAX,1234H;(AX)3.3直接尋址方式直接尋址方式操作數(shù)在存儲單元中,指令的操作碼之后給出該存儲單元的有效地址。有效地址EA也稱為偏移地址,是相對于段起始地址的偏移量;指令中,EA可以是數(shù)值形式,也可以是符號地址形式;例如:MOVAX,[100H] ;數(shù)值地址必須加方括號

MOVAX,DATA ;符號地址必須事先定義08八月2023113.3直接尋址方式直接尋址方式29七月202311直接尋址方式——物理地址的形成

在默認情況下,數(shù)據(jù)在DS段中物理地址PA=(DS)×16

+EA

若數(shù)據(jù)不在DS段,可用顯式指明段寄存器的段超越方式。指令形式:MOVES:[100H],AL物理地址PA=(ES)×16

+100H

指令MOVAX,[100H]與MOVAX,SS:[100H]執(zhí)行結(jié)果是否相同?不相同!所訪問存儲單元不同。08八月202312直接尋址方式——物理地址的形成在默認情況下,數(shù)據(jù)在DS段中直接尋址方式——舉例……13H52H……08八月202313執(zhí)行指令MOVBX,[1234H]時,(DS)=2000H,存儲單元21234H的值為5213H,問執(zhí)行該指令后BX的值是什么?該指令源操作數(shù)的尋址方式為直接尋址方式;有效地址EA=1234H,無段超越,為默認的DS段;物理地址PA=2000H×16+1234H=21234H所以,該指令執(zhí)行后(BX)=5213H21234H21235H直接尋址方式——舉例……13H52H……29七月2023思考問題問1:右邊所示的三條指令有何不同?源操作數(shù)的尋址方式不同:第一條指令為直接尋址方式;后兩條指令為立即數(shù)尋址方式;數(shù)據(jù)數(shù)制不同:前兩條為十六進制;第三條為十進制。問2:MOVAX,X和MOVAX,[X]效果一樣嗎?一樣。符號地址加不加括號指的都是之前定義的單元。問3:高級語言的y=x;用匯編指令如何實現(xiàn)?需要使用兩條指令完成賦值。08八月202314MOVAX,[2000H]MOVAX,2000HMOVAX,2000MOVAX,XMOVY,AX思考問題問1:右邊所示的三條指令有何不同?29七月2023.4寄存器間接尋址方式寄存器間接尋址方式操作數(shù)在存儲單元中,指令的操作碼之后給出存放該單元有效地址的寄存器編碼或名稱。注意:可以用于這種尋址方式的寄存器稱為間址寄存器。間址寄存器有:BX、BP、SI、DI例如:MOVAX,[BX]08八月2023153.4寄存器間接尋址方式寄存器間接尋址方式29七月2寄存器間接尋址方式——物理地址的形成在默認情況下,數(shù)據(jù)在DS段或SS段中,由尋址所用的間址寄存器決定;物理地址PA=(DS)×16+(BX/SI/DI) ;DS段物理地址PA=(SS)×16+(BP) ;SS段若需要尋址其他段,則可使用段超越方式;MOVAX,ES:[BX]MOVAX,ES:[BP]操作數(shù)的尋址過程08八月202316寄存器間接尋址方式——物理地址的形成在默認情況下,數(shù)據(jù)在DS08八月20231729七月202317寄存器間接尋址方式——舉例例3.2執(zhí)行指令MOVBX,[DI]時,(DS)=1000H,(DI)=2345H,存儲單元12345H的值為4354H,則指令執(zhí)行后BX的值為多少?該指令源操作數(shù)的尋址方式為寄存器間接尋址方式;有效地址EA=(DI)=2345H,無段超越,為默認的DS段;物理地址PA=(DS)×16+EA =1000H×16+2345H=12345H所以,該指令執(zhí)行后(BX)=(12345H)=4354H08八月202318……54H43H……12345H12346H寄存器間接尋址方式——舉例例3.2執(zhí)行指令MOV尋址方式判斷正誤MOVAX,[SP]錯誤!間址寄存器錯誤。MOVAX,SP正確!寄存器尋址。MOVAX,[SI]正確!寄存器間接尋址。MOVAX,SI正確!寄存器尋址。MOVAX,[BX]正確!寄存器間接尋址。MOVAX,BX正確!寄存器尋址。MOVAX,[BP]正確!寄存器間接尋址。MOVAX,BP正確!寄存器尋址。MOVAX,[DS]錯誤!間址寄存器錯誤。MOVAX,DS正確!寄存器尋址。08八月202319尋址方式判斷正誤MOVAX,[SP]MOVAX3.5寄存器相對尋址方式寄存器相對尋址方式操作數(shù)在存儲單元中,操作數(shù)的有效地址為指令中指定間址寄存器的值與指令中給出的偏移量(DISP)之和。指令格式間址寄存器:BX、BP、SI、DI;偏移量:數(shù)值形式、或符號地址形式;例如:08八月202320MOVAX,[BX+100H]MOVAX,[BX][100H]MOVAX,100H[BX]3.5寄存器相對尋址方式寄存器相對尋址方式29七月寄存器相對尋址方式——物理地址的形成在默認情況下,數(shù)據(jù)在DS段或SS段中,由尋址所用的間址寄存器決定;物理地址PA=(DS)×16+(BX/SI/DI)+DISP ;DS段物理地址PA=(SS)×16+(BP)+DISP ;SS段若需要尋址其他段,則可使用段超越方式;MOVAX,ES:[BX+100H]MOVAX,ES:[BP+100H]操作數(shù)的尋址過程08八月202321寄存器相對尋址方式——物理地址的形成在默認情況下,數(shù)據(jù)在DS08八月20232229七月202322計算有效地址的注意事項如果偏移量是8位,則應(yīng)先進行16位符號擴展,再進行計算。MOVAX,[BX+0FFH]中參與計算的偏移地址為0FFFFH;當計算所得的有效地址超過0FFFFH時,則將其對64K取模的結(jié)果作為有效地址。MOVAX,[BX+100H],若(BX)=0FFFFH,則

EA=0FFFFH+100H=100FFH(mod64K)=0FFH以上對其他由多個部分計算形成EA的尋址方式也同樣適用。08八月202323計算有效地址的注意事項如果偏移量是8位,則應(yīng)先進行16位符號寄存器相對尋址方式舉例例3.3執(zhí)行指令MOVBX,[SI+100H]時,(DS)=1000H,(SI)=2345H,存儲單元12445H的值為2715H,則指令執(zhí)行后BX的值為多少?該指令源操作數(shù)的尋址方式為寄存器相對尋址方式;有效地址EA=(SI)+100H=2445H,為默認的DS段;物理地址PA=(DS)×16+EA =1000H×16+2445H=12445H所以,該指令執(zhí)行后(BX)=(12445H)=2715H08八月202324……15H27H……12445H12446H寄存器相對尋址方式舉例例3.3執(zhí)行指令MOVBX,[寄存器相對尋址方式判斷正誤MOVAX,[DI+06H]正確!AX←DS:[DI+06H]MOVAX,[BP+06H]正確!AX←SS:[BP+06H]MOVAX,[SP+10H]錯誤!間址寄存器使用不正確!08八月202325寄存器相對尋址方式判斷正誤MOVAX,[DI+06H]3.6基址變址尋址方式基址變址尋址方式操作數(shù)在存儲單元中,操作數(shù)的有效地址為指令中指定的基址寄存器的值與變址寄存器的值之和。指令格式基址寄存器:BX、BP;變址寄存器:SI、DI;例如:08八月202326MOVAX,[BX+SI]

MOVAX,[BP][SI]

MOVAX,[BX]+[SI]3.6基址變址尋址方式基址變址尋址方式29七月202基址變址尋址方式——物理地址的形成在默認情況下,數(shù)據(jù)在DS段或SS段中,由尋址所用的基址寄存器決定;物理地址PA=(DS)×16+(BX)+(SI/DI)物理地址PA=(SS)×16+(BP)+(SI/DI)若需要尋址其他段,則可使用段超越方式;MOVAX,ES:[BX+SI]MOVAX,ES:[BP+SI]操作數(shù)的尋址過程08八月202327基址變址尋址方式——物理地址的形成在默認情況下,數(shù)據(jù)在DS段08八月20232829七月202328基址變址尋址方式舉例例3.4執(zhí)行指令MOVBX,[BX+SI]時,(DS)=1000H,(BX)=2100H,(SI)=0011H,存儲單元12111H的值為1234H,則指令執(zhí)行后BX的值為多少?該指令源操作數(shù)的尋址方式為基址變址尋址方式;有效地址EA=(BX)+(SI)=2100H+0011H=2111H物理地址PA=(DS)×16+EA =1000H×16+2111H=12111H所以,該指令執(zhí)行后(BX)=(12111H)=1234H08八月202329……34H12H……12111H12112H基址變址尋址方式舉例例3.4執(zhí)行指令MOVBX,3.7相對基址變址尋址方式相對基址變址尋址方式操作數(shù)在存儲單元中,操作數(shù)的有效地址為指令中指定的基址寄存器的值、變址寄存器的值和位移量(DISP)三者之和。指令格式基址寄存器:BX、BP;變址寄存器:SI、DI;偏移量:數(shù)值形式、或符號地址形式;例如:08八月202330MOVAX,[BX+SI+100]MOVAX,100[BX][SI]MOVAX,100[BX+SI]3.7相對基址變址尋址方式相對基址變址尋址方式29七月相對基址變址尋址方式——物理地址的形成在默認情況下,數(shù)據(jù)在DS段或SS段中,由尋址所用的基址寄存器決定;物理地址PA=(DS)×16+(BX)+(SI/DI)+DISP物理地址PA=(SS)×16+(BP)+(SI/DI)+DISP若需要尋址其他段,則可使用段超越方式;MOVAX,ES:[BX+SI+10H]MOVAX,ES:[BP+SI+10H]操作數(shù)的尋址過程08八月202331相對基址變址尋址方式——物理地址的形成在默認情況下,數(shù)據(jù)在D08八月20233229七月202332相對基址變址尋址方式舉例例3.5執(zhí)行指令MOVAX,[BX+SI+200H]時,(DS)=1000H,(BX)=2100H,(SI)=0010H,存儲單元12310H的值為1234H,則指令執(zhí)行后AX的值為多少?該指令源操作數(shù)的尋址方式為相對基址變址尋址方式;有效地址EA=(BX)+(SI)+200H =2100H+0010H+200H=2310H物理地址PA=(DS)×16+EA =1000H×16+2310H=12310H所以,該指令執(zhí)行后(AX)=(12310H)=1234H08八月202333……34H12H……12310H12311H相對基址變址尋址方式舉例例3.5執(zhí)行指令MOVAX,練習(xí)試說明下列指令中源操作數(shù)的尋址方式,并指出指令執(zhí)行后寄存器AX中的值或所要尋找操作數(shù)的EA值。設(shè)(BX)=2000H,(SI)=40H08八月202334MOVAX,[1234H]MOVAX,1234HMOVAX,BXMOVAX,[BX]MOVAX,[BX+1234H]MOVAX,[BX+SI]MOVAX,[BX+SI+1234H]直接尋址方式,EA=1234H立即數(shù)尋址方式,(AX)=1234H寄存器尋址方式,(AX)=2000H寄存器間接尋址方式,EA=2000H寄存器相對尋址方式,EA=3234H基址加變址尋址方式,EA=2040H相對基址加變址尋址方式,EA=3274H練習(xí)試說明下列指令中源操作數(shù)的尋址方式,并指出指令執(zhí)行后尋址方式練習(xí)MOVAX,2000HMOVDS,AXMOVBX,100HMOVAX,[150H]ADDBX,AXMOVAL,[BX]ADDAL,[BX+1]MOVSI,2ADDAL,[BX+SI]MOVAH,0MOVCH,0MOVCL,[BX+SI+1]ADDAX,CX08八月202335源操作數(shù)為立即數(shù)尋址方式源操作數(shù)為寄存器尋址方式源操作數(shù)為立即數(shù)尋址方式源操作數(shù)為直接尋址方式源操作數(shù)為寄存器尋址方式源操作數(shù)為寄存器間接尋址方式源操作數(shù)為寄存器相對尋址方式源操作數(shù)為立即數(shù)尋址方式源操作數(shù)為基址加變址尋址方式源操作數(shù)為立即數(shù)尋址方式源操作數(shù)為立即數(shù)尋址方式源操作數(shù)為相對基址加變址尋址方式源操作數(shù)為寄存器尋址方式尋址方式練習(xí)MOVAX,2000H29七月202總結(jié)(1/4)三大類尋址方式——按操作數(shù)的存放位置分類立即數(shù)尋址方式寄存器尋址方式存儲器尋址方式(共5種)指令中凡是加有方括號”[]”的立即數(shù)或寄存器,其值均表示為地址信息;例如:MOVAX,[1000H]MOVAX,[BX]08八月202336總結(jié)(1/4)三大類尋址方式——按操作數(shù)的存放位置分類208八月20233729七月202337總結(jié)(2/4)存儲器尋址方式中,在取操作數(shù)之前需要計算有效地址;有效地址EA是將指令中所有地址信息相加之和;注意事項:

1.有偏移量的,應(yīng)將偏移量按補碼轉(zhuǎn)換為16位再計算;

2.有效地址應(yīng)為16位,多于16位應(yīng)按64K取模;存儲器尋址方式中,默認情況下均在DS段/SS段中,使用段超越的方式可改變默認段寄存器;例如:MOVAX,ES:[BP][DI]08八月202338總結(jié)(2/4)存儲器尋址方式中,在取操作數(shù)之前需要計算有總結(jié)(3/4)間址寄存器——BX、BP、SI、DI間址寄存器又可分為基址寄存器(BX、BP)和變址寄存器(SI、DI)兩類;方括號”[]”中的寄存器只能是一個或兩個間址寄存器,且不能同時為基址寄存器或變址寄存器;08八月202339總結(jié)(3/4)間址寄存器——BX、BP、SI、DI29總結(jié)(4/4)相對基址加變址尋址方式與其他尋址方式之間的變形關(guān)系 MOVAX,[BX+SI+100H]08八月202340源操作數(shù)尋址特點指令的變形源操作數(shù)尋址方式只有一個偏移量MOVAX,[100H]只有一個間址寄存器MOVAX,[BX]MOVAX,[SI]有一個間址寄存器和一個偏移量MOVAX,[BX+100H]MOVAX,[SI+100H]有兩個間址寄存器MOVAX,[BX+SI]直接尋址方式寄存器間接尋址方式寄存器相對尋址方式基址加變址尋址方式總結(jié)(4/4)相對基址加變址尋址方式與其他尋址方式之間的2.指出下列各種操作數(shù)的尋址方式:[BX]SI435H [BP+DI+123] [23] data [DI+32] [BX+SI] [EAX+90] [BP+4] 08八月202341寄存器間接尋址方式寄存器尋址方式立即數(shù)尋址方式相對基址加變址尋址方式直接尋址方式寄存器相對尋址方式基址加變址尋址方式32位系統(tǒng)的寄存器相對尋址方式寄存器相對尋址方式直接尋址方式2.指出下列各種操作數(shù)的尋址方式:[BX]29七月204.判斷下列操作數(shù)的尋址方式的正確性[AX] [EAX] BP [SI+DI] DS BH [BX+BP+32] [BL+44] 08八月202342錯誤,16位間址寄存器只有BX,BP,SI,DI正確,32位系統(tǒng)的寄存器間接尋址方式正確,寄存器尋址方式錯誤,間址寄

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論