計(jì)算機(jī)組織結(jié)構(gòu)課件_第1頁(yè)
計(jì)算機(jī)組織結(jié)構(gòu)課件_第2頁(yè)
計(jì)算機(jī)組織結(jié)構(gòu)課件_第3頁(yè)
計(jì)算機(jī)組織結(jié)構(gòu)課件_第4頁(yè)
計(jì)算機(jī)組織結(jié)構(gòu)課件_第5頁(yè)
已閱讀5頁(yè),還剩113頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

匯編語(yǔ)言程序設(shè)計(jì)主講:劉政2009年3月第2章80X86計(jì)算機(jī)組織結(jié)構(gòu)匯編語(yǔ)言程序設(shè)計(jì)主講:劉政2009年3月第2章80兩款用于工業(yè)的AllinOneCPU板PentiumCPU486CPU兩款用于工業(yè)的AllinOneCPU板Pentium28086CPU和寄存器組2.1計(jì)算機(jī)系統(tǒng)的構(gòu)成

2.1.1Intel

8086CPU內(nèi)部結(jié)構(gòu)

2.1.2寄存器組

2.1.3標(biāo)志寄存器2.2內(nèi)存(存儲(chǔ)器)組織2.3堆棧技術(shù)2.4 8086尋址方式2.5匯編語(yǔ)言程序設(shè)計(jì)過程28086CPU和寄存器組2.1計(jì)算機(jī)系統(tǒng)的2.1計(jì)算機(jī)系統(tǒng)的構(gòu)成 P14硬件:中央處理機(jī)

CPU總線控制邏輯接口接口存儲(chǔ)器大容量存儲(chǔ)器I/O設(shè)備I/O子系統(tǒng)系統(tǒng)總線......軟件:系統(tǒng)軟件用戶軟件計(jì)算機(jī)系統(tǒng)由硬件和軟件兩大部分組成2.1計(jì)算機(jī)系統(tǒng)的構(gòu)成 P14硬件:中央處理翻譯程序 機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言編譯型高級(jí)語(yǔ)言解釋型高級(jí)語(yǔ)言BASICCPASCALFORTRAN直接解釋運(yùn)行編譯編譯匯編翻譯程序包括:匯編程序(masm)、解釋程序和編譯程序連接程序(linker):與庫(kù)文件連接生成可執(zhí)行文件裝入程序(loader):用來把要執(zhí)行的程序從外存?zhèn)魉偷絻?nèi)存調(diào)試程序(debug):是系統(tǒng)提供的,用以監(jiān)控用戶程序的一種工具返回本章首頁(yè)翻譯程序 機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言編譯型高級(jí)語(yǔ)言解2.1.1Intel

8086CPU內(nèi)部結(jié)構(gòu)P14返回本章首頁(yè)段寄存器通用寄存器控制寄存器2.1.1Intel8086CPU內(nèi)部結(jié)構(gòu)P2.1.28086寄存器組 P158086CPU寄存器分組2.1.28086寄存器組 P158086CPU寄存器組 數(shù)據(jù)寄存器共有4個(gè)寄存器AX、BX、CX、DX,每個(gè)16位寄存器可拆分成兩個(gè)8位寄存器,用來保存操作數(shù)或運(yùn)算結(jié)果等信息。 AX寄存器稱為累加器。使用頻度最高,用于算術(shù)、邏輯運(yùn)算以及與外設(shè)傳送信息等。 BX寄存器稱為基址寄存器。常用于存放存儲(chǔ)器地址。 CX寄存器稱為計(jì)數(shù)器。一般作為循環(huán)或串操作等指令中的隱含計(jì)數(shù)器。 DX寄存器稱為數(shù)據(jù)寄存器。常用來存放雙字?jǐn)?shù)據(jù)的高16位,或存放外設(shè)端口地址。1通用數(shù)據(jù)寄存器 P15寄存器組 數(shù)據(jù)寄存器共有4個(gè)寄存器AX、BX、CX、DX,每 變址和指針寄存器包括SI、DI、SP、BP4個(gè)16位寄存器,主要用于存放某個(gè)存儲(chǔ)單元的偏移地址。 SI是源變址寄存器,DI是目的變址寄存器,在字符串操作中,SI和DI都具有自動(dòng)增量或減量的功能。 SP為堆棧指針寄存器,用于存放當(dāng)前堆棧段中棧頂?shù)钠频刂?;BP為基址指針寄存器,用于存放堆棧段中某一存儲(chǔ)單元的偏移地址。2.變址和指針寄存器 P15 變址和指針寄存器包括SI、DI、SP、BP4個(gè)16位寄存3.段寄存器 P16 8086CPU的4個(gè)16位的段寄存器分別稱為代碼段寄存器CS,數(shù)據(jù)段寄存器DS,堆棧段寄存器SS,附加數(shù)據(jù)段寄存器ES。段寄存器用來確定該段在內(nèi)存中的起始地址。 代碼段用來存放程序的指令序列。CS存放代碼段的段首址,指令指針寄存器IP指示代碼段中指令的偏移地址。3.段寄存器 P16 8086CPU的4個(gè)16位的段4.指令指針 P17 8086CPU中的指令指針I(yè)P,它總是保存下一次將要從主存中取出指令的偏移地址,偏移地址的值為該指令到所在段段首址的字節(jié)距離。在目標(biāo)程序運(yùn)行時(shí),IP的內(nèi)容由微處理器硬件自動(dòng)設(shè)置,程序不能直接訪問IP,但一些指令卻可改變IP的值,如轉(zhuǎn)移指令、子程序調(diào)用指令等。返回本章首頁(yè)4.指令指針 P17 8086CPU中的指令指針I(yè)2.1.3標(biāo)志寄存器 P158086CPU中有一個(gè)很重要的16位標(biāo)志寄存器,它包含9個(gè)標(biāo)志位,主要用于保存一條指令執(zhí)行后,CPU所處狀態(tài)信息及運(yùn)算結(jié)果的特征。1.條件標(biāo)志2.狀態(tài)控制標(biāo)志2.1.3標(biāo)志寄存器 P158086CPU中有一個(gè)標(biāo)志寄存器(FLAGS/PSW) P151514131211109876543210條件碼標(biāo)志:控制標(biāo)志:OF溢出標(biāo)志DF方向標(biāo)志SF符號(hào)標(biāo)志IF中斷標(biāo)志ZF零標(biāo)志TF陷阱標(biāo)志CF進(jìn)位標(biāo)志AF輔助進(jìn)位標(biāo)志PF奇偶標(biāo)志OFDFIFTFSFZFAFPFCF例:ADDAX,BXJO/JCERROR?標(biāo)志寄存器(FLAGS/PSW) P15151.條件標(biāo)志(1)進(jìn)位標(biāo)志CF(2)零標(biāo)志ZF(3)符號(hào)標(biāo)志SF(4)溢出標(biāo)志OF(5)奇偶標(biāo)志PF(6)輔助進(jìn)位標(biāo)志AF1.條件標(biāo)志(1)進(jìn)位標(biāo)志CF2.狀態(tài)控制標(biāo)志(1)方向標(biāo)志DF(2)中斷允許標(biāo)志IF(3)陷阱標(biāo)志TF返回本章首頁(yè)2.狀態(tài)控制標(biāo)志(1)方向標(biāo)志DF返回本章首頁(yè)2.2內(nèi)存組織及存儲(chǔ)器物理地址的形成2.2.1存儲(chǔ)器2.2.2存儲(chǔ)器單元的地址和內(nèi)容2.2.3物理地址的形成返回本章首頁(yè)2.2內(nèi)存組織及存儲(chǔ)器物理地址的形成2.2.12.2.1存儲(chǔ)器 P17 存儲(chǔ)器是計(jì)算機(jī)的記憶部件,用來存放程序和數(shù)據(jù)。按所在的位置,存儲(chǔ)器可以分成主存儲(chǔ)器和輔助存儲(chǔ)器,高速緩沖存儲(chǔ)器。 主存儲(chǔ)器存放當(dāng)前正在執(zhí)行的程序和使用的數(shù)據(jù),CPU可以直接存取,它由半導(dǎo)體存儲(chǔ)器芯片構(gòu)成,其成本高,容量小,但速度快。高速緩沖存儲(chǔ)器(cache):速度高,容量小 輔助存儲(chǔ)器可用來長(zhǎng)期保存大量程序和數(shù)據(jù),CPU需要通過I/O接口訪問,它由磁盤或光盤構(gòu)成,其成本低,容量大,但速度較慢。返回本節(jié)2.2.1存儲(chǔ)器 P17 存儲(chǔ)器是計(jì)算機(jī)的記憶2.2.2存儲(chǔ)器單元的地址和內(nèi)容P18存儲(chǔ)器以字節(jié)(8bit)為編程單位每個(gè)字節(jié)單元都有唯一的地址編碼地址用無(wú)符號(hào)整數(shù)來表示(編程用十六進(jìn)制表示)一個(gè)字要占用相繼的兩個(gè)字節(jié)低位字節(jié)存入低地址,高位字節(jié)存入高地址字單元地址用它的低地址來表示2.2.2存儲(chǔ)器單元的地址和內(nèi)容P18存儲(chǔ)器圖中表明了存儲(chǔ)器中部分存儲(chǔ)單元存放信息情況。從圖中可看到,地址為34560H的字節(jié)的存儲(chǔ)單元中的內(nèi)容是34H,而地址為34561H的字節(jié)存儲(chǔ)單元中的內(nèi)容是12H。返回本節(jié)圖中表明了存儲(chǔ)器中部分存儲(chǔ)單元存放信息情況。從圖中可看到,地2.2.3物理地址的形成 P19 8086,80286的字長(zhǎng)是16位。80386到PII機(jī)的字長(zhǎng)為32位。8086,8088的地址線是20位的,這樣最大可尋址空間應(yīng)為220=1MB,其物理地址范圍從00000H~FFFFFH。80286的地址總線寬度為24位80386,80486,Pentium的地址總線寬度為32位

PentiumPro和PentiumII的地址總線寬度為36位

2.2.3物理地址的形成 P19 8086,802實(shí)模式存儲(chǔ)器尋址 P19實(shí)模式下的最大尋址空間為1MB,8086/8088只能在實(shí)模式下工作。

邏輯地址=段地址:偏移地址 1.存儲(chǔ)器地址的分段 根據(jù)要求可把1M字節(jié)地址空間劃成若干邏輯段。每個(gè)邏輯段必須滿足兩個(gè)條件:一是邏輯段的起始地址(簡(jiǎn)稱段首址)必須是16的倍數(shù);二是邏輯段的最大長(zhǎng)度為64K。按照這兩個(gè)條件,1M字節(jié)地址空間最多可劃分成64K個(gè)邏輯段,最少也要?jiǎng)澐殖?6個(gè)邏輯段。邏輯段與邏輯段可以相連,也可以不連,還可以重疊。實(shí)模式存儲(chǔ)器尋址 P19實(shí)模式下【例2-1】各獨(dú)立段的分配情況示例。 P20設(shè)CS=B000H、DS=1CDEH、SS=4200H、ES=0150H,它們分別為代碼段、數(shù)據(jù)段、堆棧段和附加段的段首址。自每個(gè)段首址開始,各段均占64KB的范圍,各段之間互不重疊。如下圖所示?!纠?-1】各獨(dú)立段的分配情況示例。 P20設(shè)CS=B00cs圖2.1各段不重疊存儲(chǔ)單元分配圖cs圖2.1各段不重疊存儲(chǔ)單元分配圖【例2-2】各段相互重疊情況示例。設(shè)CS=0200H、DS=0400H、SS=0480H,這樣代碼段、數(shù)據(jù)段和堆棧段的物理首地址分別為02000H、04000H和04800H。其中代碼段占8KB地址空間,數(shù)據(jù)段占2KB,堆棧段占256B,SP=0100H。如下圖所示?!纠?-2】各段相互重疊情況示例。設(shè)CS=0200H、DS=圖2.2各段重疊存儲(chǔ)單元分配圖圖2.2各段重疊存儲(chǔ)單元分配圖2.實(shí)模式尋址的物理地址=16d*段地址+偏移地址0000B 16位段地址16位偏移地址20位物理地址返回本節(jié)2.實(shí)模式尋址的物理地址=16d*段地址+偏移地址16位段2.3堆棧技術(shù)1.

堆棧描述 P24堆棧是內(nèi)存種的一塊特定區(qū)域,先進(jìn)后出、后進(jìn)先出的存儲(chǔ)空間,存儲(chǔ)地址由高到低存放。堆棧指針SS:SP。2.

堆棧操作堆棧操作遵循“先進(jìn)后出、后進(jìn)先出”的原則。例:SS=2000H,SP=100H,用PUSH指令將數(shù)據(jù)1234H壓入棧,堆棧操作示意圖如下。2.3堆棧技術(shù)1.

堆棧描述 P2堆棧段地址2000H:0000H

2000H:0100H棧底地址SP

……34H12H……內(nèi)存堆棧指針SP2000H:00FEH進(jìn)棧出棧入棧時(shí),SP指針先減2,數(shù)據(jù)再入棧。出棧時(shí),數(shù)據(jù)先出棧,SP指針再加2。返回本章首頁(yè)……34H12H……內(nèi)存堆棧指針SP進(jìn)棧出棧入棧時(shí)§2.480X86尋址方式和指令系統(tǒng)1、立即尋址2、寄存器尋址與存儲(chǔ)器有關(guān)的尋址方式3、直接尋址4、寄存器間接尋址5、寄存器相對(duì)尋址6、基址變址尋址7、基址變址相對(duì)尋址跨段問題§2.480X86尋址方式和指令系統(tǒng)1、立即尋址8086CPU指令的共同的規(guī)律l

大多數(shù)數(shù)據(jù)傳送類指令、算術(shù)運(yùn)算類指令、位操作類指令及串操作類指令,其雙操作數(shù)指令有相同的語(yǔ)句格式和操作規(guī)定。

語(yǔ)句格式[標(biāo)號(hào):] 操作符OPD,OPS[;注釋] OPD--目的操作數(shù) OPS--源操作數(shù)

again: AX=0x1200; //c語(yǔ)言語(yǔ)句l

again: MOVAX,1200H ;AX=1200H目的操作數(shù)源操作數(shù)標(biāo)號(hào)助記符注釋區(qū)8086CPU指令的共同的規(guī)律l

大多數(shù)數(shù)據(jù)傳送類指令、有效地址EA和物理地址PA存儲(chǔ)器分段管理

物理地址(PA,20位,與CPU的地址線寬度相等)、邏輯地址(LA,形如1000H:2000H)、四個(gè)段地址(SA,16位,包括CS、DS、ES、SS)、有效地址(EA,16位,又叫偏移地址)的關(guān)系:

LA=SA:EA,我們使用邏輯地址編寫程序,而計(jì)算機(jī)訪問存儲(chǔ)器時(shí)輸出的是物理地址,即物理地址由邏輯地址形成:

PA=SA*10H+EA有效地址EA和物理地址PA存儲(chǔ)器分段管理1立即尋址 P26立即尋址方式中,指令操作碼和操作數(shù)都在存儲(chǔ)器代碼段中。匯編格式:n(n為立即操作數(shù),是用8位或16位二進(jìn)制補(bǔ)碼表示的有符號(hào)數(shù))功能:操作數(shù)存放在存儲(chǔ)器,指令下一單元的內(nèi)容為立即操作數(shù)n。圖形表示:例:ADDAX,100C語(yǔ)言:AX+=100;內(nèi)存中的代碼立即數(shù)1立即尋址 P26立即尋址方式中,指令操作碼和操作數(shù)【例2.3】【例2.3】MOVAX,10 ;C語(yǔ)言AX=10;執(zhí)行后(AX)=?該例中源操作數(shù)為立即尋址方式,立即數(shù)為10,存放在指令的下一單元。圖形表示:執(zhí)行:10→AX執(zhí)行后:(AX)=000AH

返回本節(jié)內(nèi)存中的代碼立即數(shù)10【例2.3】【例2.3】MOVAX,10 ;C語(yǔ)言2寄存器尋址 P27寄存器尋址方式的操作數(shù)在指令指明的寄存器中。匯編格式:R其中R表示寄存器名。功能:操作數(shù)直接存放在寄存器R中。圖形表示:R指令→操作數(shù) ADD AX,BX AX+=BX; //c語(yǔ)言內(nèi)存中的代碼R操作數(shù)2寄存器尋址 P27寄存器尋址方式的操作數(shù)在指令指明【例2.4】下列程序執(zhí)行后,(AX)=?,(BX)=?MOVAX,1234HMOVBX,5678HADDAX,BX該程序中MOV指令為數(shù)據(jù)傳送指令操作符,ADD指令為加法指令操作符,三條指令皆為雙操作數(shù)指令。第一、二條指令中AX、BX為目的操作數(shù),為寄存器尋址方式;源操作數(shù)為立即尋址。第三條指令中,AX為目的操作數(shù)地址,BX為源操作數(shù)地址。源地址和目的地址皆為寄存器尋址方式?!纠?.4】下列程序執(zhí)行后,(AX)=?,(BX)=?圖形表示:MOVAX,1234HMOVBX,5678HADDAX,BX執(zhí)行:1234H→AX5678H→BX(AX)+(BX)→AX執(zhí)行后:(AX)=68ACH,(BX)=5678H返回本節(jié)圖形表示:返回本節(jié)3直接尋址 P28匯編格式:①含有變量的地址表達(dá)式。②段寄存器名:[EA]。功能:指令下一字單元的內(nèi)容是操作數(shù)的偏移地址EA。圖形表示:3直接尋址 P28匯編格式:①含有變量的地址表達(dá)式?!纠?.5】寄存器和存儲(chǔ)器內(nèi)容為:(AX)=1212H,BUF為數(shù)據(jù)段定義的變量,其偏移地址是2000H,(DS)=3000H,(32000H)=45ABH。執(zhí)行指令:MOVAX,BUF或MOVAX,[2000H]執(zhí)行后:(AX)=?執(zhí)行:(32000H)→AX執(zhí)行后:(AX)=45ABH返回本節(jié)內(nèi)存數(shù)據(jù)物理地址【例2.5】寄存器和存儲(chǔ)器內(nèi)容為:(AX)=1212H,BU4寄存器間接尋址 P29寄存器間接尋址方式中,寄存器的內(nèi)容為操作數(shù)的偏移地址EA,操作數(shù)在存儲(chǔ)器中。匯編格式:[R]功能:操作數(shù)存放在存儲(chǔ)器,寄存器R存放操作數(shù)的偏移地址EA。能夠作為寄存器間接尋址的寄存器:基址寄存器:BX、BP

和變址寄存器:SI、DI其中:[BX]、[SI]、[DI]默認(rèn)段為DS [BP]默認(rèn)段為SS4寄存器間接尋址 P29寄存器間接尋址方式中,寄存器的偏移地址EA計(jì)算方法如下:EA=[SI] ;SI作間址寄存器。[DI] ;DI作間址寄存器。[BX] ;BX作間址寄存器。[BP] ;BP作間址寄存器。偏移地址EA計(jì)算方法如下:EA=[SI] ;SI作間址寄存器執(zhí)行指令:MOVAX,[BP]執(zhí)行后:(AX)=1234H(BP)=0030H(SS)=2000H(20030H)=1234H圖形表示如下:

【例2.6】寄存器和存儲(chǔ)器內(nèi)容分別為:(AX)=0,(BP)=0030H,(SS)=2000H,(20030H)=1234H返回本節(jié)物理地址內(nèi)存數(shù)據(jù)段地址偏移地址執(zhí)行指令:MOVAX,[BP]【例2.6】寄存器和5寄存器相對(duì)尋址 P30變址尋址方式操作數(shù)的偏移地址EA為寄存器的內(nèi)容加位移量,操作數(shù)在存儲(chǔ)器中。匯編格式:X[R](X表示位移量,是8位或16位二進(jìn)制補(bǔ)碼表示的有符號(hào)數(shù))功能:操作數(shù)存放在存儲(chǔ)器,寄存器R的內(nèi)容加位移量X為操作數(shù)的偏移地址EA。圖形表示如下:5寄存器相對(duì)尋址 P30變址尋址方式操作數(shù)的偏移地址E第2章_計(jì)算機(jī)組織結(jié)構(gòu)偏移地址EA計(jì)算方法如下:EA=[SI]+X ;SI作間址寄存器。[DI]+X ;DI作間址寄存器。[BX]+X ;BX作間址寄存器。[BP]+X ;BP作間址寄存器。

有效地址=(BX)(BP)8位(SI)16位(DI)+位移量偏移地址EA計(jì)算方法如下:EA=[SI]+X ;SI作執(zhí)行:(20036H)+(AX)→20036H執(zhí)行后:(AX)=0040H,(BX)=0030H,(DS)=2000H,(20036H)=0090H。返回本節(jié)【例2.7】設(shè)執(zhí)行前:(AX)=0040H,(BX)=0030H,(DS)=2000H,(20036H)=0050H執(zhí)行指令:ADD6[BX],AX執(zhí)行:(20036H)+(AX)→20036H返回本節(jié)【例6基址變址尋址 P31基址變址尋址方式中,操作數(shù)的偏移地址EA是指令中基址寄存器內(nèi)容、變址寄存器內(nèi)容之和,操作數(shù)在存儲(chǔ)器中。匯編格式:[BR][IR]或[BR+IR]功能:操作數(shù)存放在存儲(chǔ)器,BR的內(nèi)容加IR的內(nèi)容是操作數(shù)的偏移地址EA。如:MOVDX,[BX][SI]基址寄存器:BX、BP變址寄存器:SI、DI返回本節(jié)6基址變址尋址 P31基址變址尋址方式中,操作數(shù)的偏●基址變址尋址*適于數(shù)組、字符串、表格的處理*必須是一個(gè)基址寄存器和一個(gè)變址寄存器的組合MOVAX,[BX][BP]MOVAX,[SI][DI]有效地址=(BX)(SI)(BP)(DI)+●基址變址尋址*適于數(shù)組、字符串、表格的處理有效地址7基址變址相對(duì)尋址 P32基址變址相對(duì)尋址方式中,操作數(shù)的偏移地址EA是指令中基址寄存器內(nèi)容、變址寄存器內(nèi)容、位移量X三項(xiàng)之和,操作數(shù)在存儲(chǔ)器中。匯編格式:X[BR][IR]或X[BR+IR]功能:操作數(shù)存放在存儲(chǔ)器,BR的內(nèi)容加IR的內(nèi)容加位移量X是操作數(shù)的偏移地址EA。圖形表示:7基址變址相對(duì)尋址 P32基址變址相對(duì)尋址方式中,操作第2章_計(jì)算機(jī)組織結(jié)構(gòu)操作數(shù)偏移地址EA計(jì)算方法如下

有效地址=(BX)(SI)8位(BP)(DI)16位++位移量操作數(shù)偏移地址EA計(jì)算方法如下有效地址=(BX)執(zhí)行:(20000H+2000H+1000H+0250H)→(AX)執(zhí)行后:(AX)=0050H,(BX)=2000H,(SI)=1000H,(DS)=2000H,(23250H)=0050H。返回本節(jié)【例2.8】設(shè)執(zhí)行前:(BX)=2000H,(SI)=1000H,(DS)=2000H,MASK=0250H(23250H)=0050H執(zhí)行指令:MOVAX,MASK[BX][SI]執(zhí)行:(20000H+2000H+1000H+0250H)8跨段問題 P22按前述規(guī)定:若選用BP作間址基址寄存器、變址寄存器或基址寄存器,則操作數(shù)在堆棧段,操作數(shù)的物理地址PA由堆棧段寄存器SS的內(nèi)容左移4位與偏移地址EA相加后形成;否則,操作數(shù)在數(shù)據(jù)段,操作數(shù)的物理地址PA由數(shù)據(jù)段寄存器DS的內(nèi)容左移4位與偏移EA相加后形成。該規(guī)定為系統(tǒng)默認(rèn)狀態(tài)。當(dāng)要否定默認(rèn)狀態(tài),到非約定段尋找操作數(shù)時(shí),必須用跨段前綴指明操作數(shù)的段寄存器名??缍螁柼嵋簿褪侵付ǘ螁栴},非默認(rèn)段時(shí)必須指明段。匯編格式:段寄存器名:操作數(shù)地址。功能:段寄存器名指明操作數(shù)屬哪個(gè)段。8跨段問題 P22按前述規(guī)定:若選用BP作間址基址寄存【例2.9】跨段前綴示例。MOV AX,DS:[BP]MOV CX,SS:[SI]該例中,DS:,SS:均為跨段前綴,此時(shí)默認(rèn)狀態(tài)無(wú)效,操作數(shù)的物理地址PA由段寄存器內(nèi)容左移4位加偏移EA形成。上述2條指令的源操作數(shù)物理地址分別為:PA1=(DS)左移4位+[BP]PA2=(SS)左移4位+[SI]返回本節(jié)【例2.9】跨段前綴示例。MOV AX,DS:[BP]返2.4.4外設(shè)尋址方式 每一個(gè)接口包含一組REGISTER:數(shù)據(jù)寄存器、狀態(tài)寄存器、控制寄存器 P33數(shù)據(jù)寄存器:存放外設(shè)和主機(jī)間傳送的數(shù)據(jù)狀態(tài)寄存器:保存外設(shè)或接口的狀態(tài)信息命令寄存器:保存CPU發(fā)給外設(shè)或接口的控制命令 每一個(gè)寄存器有一個(gè)PORT地址,80X86的I/O地址空間可達(dá)64KB,端口地址范圍為0000~FFFFH 80X86提供兩種調(diào)用:BIOS調(diào)用(basicinput/outputsystem),DOS調(diào)用(diskoperatingsystem) I/O口尋址指令I(lǐng)N、OUT INAX,12H INAL,DXOUT12H,AL OUTDX,AX2.4.4外設(shè)尋址方式 每一個(gè)接口包含一組REGIST2.5匯編語(yǔ)言程序設(shè)計(jì)過程1

開發(fā)環(huán)境 P224或?qū)嶒?yàn)指導(dǎo)書P2-20 用編輯程序(Edit等)編輯源程序生成文本文件→用匯編程序(MASM等)將源程序匯編為目標(biāo)文件OBJ→用連接程序(LINK)把OBJ文件連接裝配成可執(zhí)行文件EXE。 調(diào)試過程,用debug工具對(duì)生成的EXE文件調(diào)試和測(cè)試。2.5匯編語(yǔ)言程序設(shè)計(jì)過程1

開發(fā)環(huán)境 P22.

開發(fā)過程分析問題設(shè)計(jì)算法編制程序分析結(jié)果修改分析完成返回本章首頁(yè)2.

開發(fā)過程分析問題設(shè)計(jì)算法編制程序分析結(jié)果修改分返回本章首頁(yè)結(jié)束作業(yè):P34習(xí)題7、8、9、11、12其余課后思考,課堂抽查復(fù)習(xí)第1、2章基礎(chǔ)知識(shí)預(yù)習(xí)第3章匯編語(yǔ)言格式返回本章首頁(yè)結(jié)束作業(yè):P34習(xí)題7、8、9練習(xí)1.

指令指針寄存器是()。 ①IP②SP③BP④PSW2.

當(dāng)執(zhí)行指令A(yù)DDAX,BX后,若AX的內(nèi)容為2BA0H,設(shè)置的奇偶標(biāo)志位PF=1,下面的敘述正確的是()。①表示結(jié)果中含1的個(gè)數(shù)為偶數(shù)②表示結(jié)果中含1的個(gè)數(shù)為奇數(shù)③表示該數(shù)為偶數(shù)④表示結(jié)果中低八位含1的個(gè)數(shù)為偶數(shù)3.

8088CPU中通用寄存器是____,指針寄存器是___,段寄存器是___。4.

8088CPU具有_______條地址線,直接尋址能力可達(dá)_________。5.

在標(biāo)志寄存器中,反映進(jìn)位標(biāo)志位是____,方向標(biāo)志位是____,溢出標(biāo)志位是____,符號(hào)標(biāo)志位是____,零標(biāo)志位是____。6.

變址寄存器SI和DI,它們即可作為通用寄存器,也可以作為__________寄存器分別存放_(tái)______數(shù)據(jù)串和________數(shù)據(jù)串的基址。7.

8086/8088寄存器組可以分為四類,它們分別是

,

。8.

典型的計(jì)算機(jī)結(jié)構(gòu)包括_______________,通過___________連接在一起。判斷1.同一地址即可以看作是字節(jié)單元地址,也可以看作是字單元地址。()2.一個(gè)字存入存儲(chǔ)器要占有相繼的兩個(gè)字節(jié),低位字節(jié)存入低地址,高位字節(jié)存入高地址。()2022/12/215814AX、BX、CX、DX、SP、BP、SI、DIIP、SP、BPCS、DS、ES、SS201MCFDFOFSFZF專用源目的通用,標(biāo)志,段,指針CPU、存儲(chǔ)器、IO系統(tǒng)總線TT練習(xí)1.

指令指針寄存器是()。 ①IP1.

指令指針寄存器是()。 ①

IP②SP③BP④PSW2.當(dāng)執(zhí)行指令A(yù)DDAX,BX后,若AX的內(nèi)容為2BA0H,設(shè)置的奇偶標(biāo)志位PF=1,下面的敘述正確的是()。①表示結(jié)果中含1的個(gè)數(shù)為偶數(shù)②表示結(jié)果中含1的個(gè)數(shù)為奇數(shù)③表示該數(shù)為偶數(shù)④表示結(jié)果中低八位含1的個(gè)數(shù)為偶數(shù)3.

8088CPU中通用寄存器是AX、BX、CX、DX、SP、BP、SI、DI,指針寄存器是IP、SP、BP,段寄存器是CS、DS、ES、SS。4.

8088CPU具有__20_條地址線,直接尋址能力可達(dá)__1M___。5.

在標(biāo)志寄存器中,反映進(jìn)位標(biāo)志位是_CF_,方向標(biāo)志位是_DF_,溢出標(biāo)志位是_OF_,符號(hào)標(biāo)志位是_SF_,零標(biāo)志位是_ZF_。6.

變址寄存器SI和DI,它們即可作為通用寄存器,也可以作為___專用___寄存器分別存放_(tái)_源__數(shù)據(jù)串和_目的_數(shù)據(jù)串的基址。7.

8086/8088寄存器組可以分為四類,它們分別是通用,標(biāo)志,段,指針。8.

典型的計(jì)算機(jī)結(jié)構(gòu)包括CPU、存儲(chǔ)器、IO,通過系統(tǒng)總線連接在一起。判斷1.同一地址即可以看作是字節(jié)單元地址,也可以看作是字單元地址。(T)2.一個(gè)字存入存儲(chǔ)器要占有相繼的兩個(gè)字節(jié),低位字節(jié)存入低地址,高位字節(jié)存入高地址。(T)591.

指令指針寄存器是()。 ①IP②SP匯編語(yǔ)言程序設(shè)計(jì)主講:劉政2009年3月第2章80X86計(jì)算機(jī)組織結(jié)構(gòu)匯編語(yǔ)言程序設(shè)計(jì)主講:劉政2009年3月第2章80兩款用于工業(yè)的AllinOneCPU板PentiumCPU486CPU兩款用于工業(yè)的AllinOneCPU板Pentium28086CPU和寄存器組2.1計(jì)算機(jī)系統(tǒng)的構(gòu)成

2.1.1Intel

8086CPU內(nèi)部結(jié)構(gòu)

2.1.2寄存器組

2.1.3標(biāo)志寄存器2.2內(nèi)存(存儲(chǔ)器)組織2.3堆棧技術(shù)2.4 8086尋址方式2.5匯編語(yǔ)言程序設(shè)計(jì)過程28086CPU和寄存器組2.1計(jì)算機(jī)系統(tǒng)的2.1計(jì)算機(jī)系統(tǒng)的構(gòu)成 P14硬件:中央處理機(jī)

CPU總線控制邏輯接口接口存儲(chǔ)器大容量存儲(chǔ)器I/O設(shè)備I/O子系統(tǒng)系統(tǒng)總線......軟件:系統(tǒng)軟件用戶軟件計(jì)算機(jī)系統(tǒng)由硬件和軟件兩大部分組成2.1計(jì)算機(jī)系統(tǒng)的構(gòu)成 P14硬件:中央處理翻譯程序 機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言編譯型高級(jí)語(yǔ)言解釋型高級(jí)語(yǔ)言BASICCPASCALFORTRAN直接解釋運(yùn)行編譯編譯匯編翻譯程序包括:匯編程序(masm)、解釋程序和編譯程序連接程序(linker):與庫(kù)文件連接生成可執(zhí)行文件裝入程序(loader):用來把要執(zhí)行的程序從外存?zhèn)魉偷絻?nèi)存調(diào)試程序(debug):是系統(tǒng)提供的,用以監(jiān)控用戶程序的一種工具返回本章首頁(yè)翻譯程序 機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言編譯型高級(jí)語(yǔ)言解2.1.1Intel

8086CPU內(nèi)部結(jié)構(gòu)P14返回本章首頁(yè)段寄存器通用寄存器控制寄存器2.1.1Intel8086CPU內(nèi)部結(jié)構(gòu)P2.1.28086寄存器組 P158086CPU寄存器分組2.1.28086寄存器組 P158086CPU寄存器組 數(shù)據(jù)寄存器共有4個(gè)寄存器AX、BX、CX、DX,每個(gè)16位寄存器可拆分成兩個(gè)8位寄存器,用來保存操作數(shù)或運(yùn)算結(jié)果等信息。 AX寄存器稱為累加器。使用頻度最高,用于算術(shù)、邏輯運(yùn)算以及與外設(shè)傳送信息等。 BX寄存器稱為基址寄存器。常用于存放存儲(chǔ)器地址。 CX寄存器稱為計(jì)數(shù)器。一般作為循環(huán)或串操作等指令中的隱含計(jì)數(shù)器。 DX寄存器稱為數(shù)據(jù)寄存器。常用來存放雙字?jǐn)?shù)據(jù)的高16位,或存放外設(shè)端口地址。1通用數(shù)據(jù)寄存器 P15寄存器組 數(shù)據(jù)寄存器共有4個(gè)寄存器AX、BX、CX、DX,每 變址和指針寄存器包括SI、DI、SP、BP4個(gè)16位寄存器,主要用于存放某個(gè)存儲(chǔ)單元的偏移地址。 SI是源變址寄存器,DI是目的變址寄存器,在字符串操作中,SI和DI都具有自動(dòng)增量或減量的功能。 SP為堆棧指針寄存器,用于存放當(dāng)前堆棧段中棧頂?shù)钠频刂?;BP為基址指針寄存器,用于存放堆棧段中某一存儲(chǔ)單元的偏移地址。2.變址和指針寄存器 P15 變址和指針寄存器包括SI、DI、SP、BP4個(gè)16位寄存3.段寄存器 P16 8086CPU的4個(gè)16位的段寄存器分別稱為代碼段寄存器CS,數(shù)據(jù)段寄存器DS,堆棧段寄存器SS,附加數(shù)據(jù)段寄存器ES。段寄存器用來確定該段在內(nèi)存中的起始地址。 代碼段用來存放程序的指令序列。CS存放代碼段的段首址,指令指針寄存器IP指示代碼段中指令的偏移地址。3.段寄存器 P16 8086CPU的4個(gè)16位的段4.指令指針 P17 8086CPU中的指令指針I(yè)P,它總是保存下一次將要從主存中取出指令的偏移地址,偏移地址的值為該指令到所在段段首址的字節(jié)距離。在目標(biāo)程序運(yùn)行時(shí),IP的內(nèi)容由微處理器硬件自動(dòng)設(shè)置,程序不能直接訪問IP,但一些指令卻可改變IP的值,如轉(zhuǎn)移指令、子程序調(diào)用指令等。返回本章首頁(yè)4.指令指針 P17 8086CPU中的指令指針I(yè)2.1.3標(biāo)志寄存器 P158086CPU中有一個(gè)很重要的16位標(biāo)志寄存器,它包含9個(gè)標(biāo)志位,主要用于保存一條指令執(zhí)行后,CPU所處狀態(tài)信息及運(yùn)算結(jié)果的特征。1.條件標(biāo)志2.狀態(tài)控制標(biāo)志2.1.3標(biāo)志寄存器 P158086CPU中有一個(gè)標(biāo)志寄存器(FLAGS/PSW) P151514131211109876543210條件碼標(biāo)志:控制標(biāo)志:OF溢出標(biāo)志DF方向標(biāo)志SF符號(hào)標(biāo)志IF中斷標(biāo)志ZF零標(biāo)志TF陷阱標(biāo)志CF進(jìn)位標(biāo)志AF輔助進(jìn)位標(biāo)志PF奇偶標(biāo)志OFDFIFTFSFZFAFPFCF例:ADDAX,BXJO/JCERROR?標(biāo)志寄存器(FLAGS/PSW) P15151.條件標(biāo)志(1)進(jìn)位標(biāo)志CF(2)零標(biāo)志ZF(3)符號(hào)標(biāo)志SF(4)溢出標(biāo)志OF(5)奇偶標(biāo)志PF(6)輔助進(jìn)位標(biāo)志AF1.條件標(biāo)志(1)進(jìn)位標(biāo)志CF2.狀態(tài)控制標(biāo)志(1)方向標(biāo)志DF(2)中斷允許標(biāo)志IF(3)陷阱標(biāo)志TF返回本章首頁(yè)2.狀態(tài)控制標(biāo)志(1)方向標(biāo)志DF返回本章首頁(yè)2.2內(nèi)存組織及存儲(chǔ)器物理地址的形成2.2.1存儲(chǔ)器2.2.2存儲(chǔ)器單元的地址和內(nèi)容2.2.3物理地址的形成返回本章首頁(yè)2.2內(nèi)存組織及存儲(chǔ)器物理地址的形成2.2.12.2.1存儲(chǔ)器 P17 存儲(chǔ)器是計(jì)算機(jī)的記憶部件,用來存放程序和數(shù)據(jù)。按所在的位置,存儲(chǔ)器可以分成主存儲(chǔ)器和輔助存儲(chǔ)器,高速緩沖存儲(chǔ)器。 主存儲(chǔ)器存放當(dāng)前正在執(zhí)行的程序和使用的數(shù)據(jù),CPU可以直接存取,它由半導(dǎo)體存儲(chǔ)器芯片構(gòu)成,其成本高,容量小,但速度快。高速緩沖存儲(chǔ)器(cache):速度高,容量小 輔助存儲(chǔ)器可用來長(zhǎng)期保存大量程序和數(shù)據(jù),CPU需要通過I/O接口訪問,它由磁盤或光盤構(gòu)成,其成本低,容量大,但速度較慢。返回本節(jié)2.2.1存儲(chǔ)器 P17 存儲(chǔ)器是計(jì)算機(jī)的記憶2.2.2存儲(chǔ)器單元的地址和內(nèi)容P18存儲(chǔ)器以字節(jié)(8bit)為編程單位每個(gè)字節(jié)單元都有唯一的地址編碼地址用無(wú)符號(hào)整數(shù)來表示(編程用十六進(jìn)制表示)一個(gè)字要占用相繼的兩個(gè)字節(jié)低位字節(jié)存入低地址,高位字節(jié)存入高地址字單元地址用它的低地址來表示2.2.2存儲(chǔ)器單元的地址和內(nèi)容P18存儲(chǔ)器圖中表明了存儲(chǔ)器中部分存儲(chǔ)單元存放信息情況。從圖中可看到,地址為34560H的字節(jié)的存儲(chǔ)單元中的內(nèi)容是34H,而地址為34561H的字節(jié)存儲(chǔ)單元中的內(nèi)容是12H。返回本節(jié)圖中表明了存儲(chǔ)器中部分存儲(chǔ)單元存放信息情況。從圖中可看到,地2.2.3物理地址的形成 P19 8086,80286的字長(zhǎng)是16位。80386到PII機(jī)的字長(zhǎng)為32位。8086,8088的地址線是20位的,這樣最大可尋址空間應(yīng)為220=1MB,其物理地址范圍從00000H~FFFFFH。80286的地址總線寬度為24位80386,80486,Pentium的地址總線寬度為32位

PentiumPro和PentiumII的地址總線寬度為36位

2.2.3物理地址的形成 P19 8086,802實(shí)模式存儲(chǔ)器尋址 P19實(shí)模式下的最大尋址空間為1MB,8086/8088只能在實(shí)模式下工作。

邏輯地址=段地址:偏移地址 1.存儲(chǔ)器地址的分段 根據(jù)要求可把1M字節(jié)地址空間劃成若干邏輯段。每個(gè)邏輯段必須滿足兩個(gè)條件:一是邏輯段的起始地址(簡(jiǎn)稱段首址)必須是16的倍數(shù);二是邏輯段的最大長(zhǎng)度為64K。按照這兩個(gè)條件,1M字節(jié)地址空間最多可劃分成64K個(gè)邏輯段,最少也要?jiǎng)澐殖?6個(gè)邏輯段。邏輯段與邏輯段可以相連,也可以不連,還可以重疊。實(shí)模式存儲(chǔ)器尋址 P19實(shí)模式下【例2-1】各獨(dú)立段的分配情況示例。 P20設(shè)CS=B000H、DS=1CDEH、SS=4200H、ES=0150H,它們分別為代碼段、數(shù)據(jù)段、堆棧段和附加段的段首址。自每個(gè)段首址開始,各段均占64KB的范圍,各段之間互不重疊。如下圖所示?!纠?-1】各獨(dú)立段的分配情況示例。 P20設(shè)CS=B00cs圖2.1各段不重疊存儲(chǔ)單元分配圖cs圖2.1各段不重疊存儲(chǔ)單元分配圖【例2-2】各段相互重疊情況示例。設(shè)CS=0200H、DS=0400H、SS=0480H,這樣代碼段、數(shù)據(jù)段和堆棧段的物理首地址分別為02000H、04000H和04800H。其中代碼段占8KB地址空間,數(shù)據(jù)段占2KB,堆棧段占256B,SP=0100H。如下圖所示?!纠?-2】各段相互重疊情況示例。設(shè)CS=0200H、DS=圖2.2各段重疊存儲(chǔ)單元分配圖圖2.2各段重疊存儲(chǔ)單元分配圖2.實(shí)模式尋址的物理地址=16d*段地址+偏移地址0000B 16位段地址16位偏移地址20位物理地址返回本節(jié)2.實(shí)模式尋址的物理地址=16d*段地址+偏移地址16位段2.3堆棧技術(shù)1.

堆棧描述 P24堆棧是內(nèi)存種的一塊特定區(qū)域,先進(jìn)后出、后進(jìn)先出的存儲(chǔ)空間,存儲(chǔ)地址由高到低存放。堆棧指針SS:SP。2.

堆棧操作堆棧操作遵循“先進(jìn)后出、后進(jìn)先出”的原則。例:SS=2000H,SP=100H,用PUSH指令將數(shù)據(jù)1234H壓入棧,堆棧操作示意圖如下。2.3堆棧技術(shù)1.

堆棧描述 P2堆棧段地址2000H:0000H

2000H:0100H棧底地址SP

……34H12H……內(nèi)存堆棧指針SP2000H:00FEH進(jìn)棧出棧入棧時(shí),SP指針先減2,數(shù)據(jù)再入棧。出棧時(shí),數(shù)據(jù)先出棧,SP指針再加2。返回本章首頁(yè)……34H12H……內(nèi)存堆棧指針SP進(jìn)棧出棧入棧時(shí)§2.480X86尋址方式和指令系統(tǒng)1、立即尋址2、寄存器尋址與存儲(chǔ)器有關(guān)的尋址方式3、直接尋址4、寄存器間接尋址5、寄存器相對(duì)尋址6、基址變址尋址7、基址變址相對(duì)尋址跨段問題§2.480X86尋址方式和指令系統(tǒng)1、立即尋址8086CPU指令的共同的規(guī)律l

大多數(shù)數(shù)據(jù)傳送類指令、算術(shù)運(yùn)算類指令、位操作類指令及串操作類指令,其雙操作數(shù)指令有相同的語(yǔ)句格式和操作規(guī)定。

語(yǔ)句格式[標(biāo)號(hào):] 操作符OPD,OPS[;注釋] OPD--目的操作數(shù) OPS--源操作數(shù)

again: AX=0x1200; //c語(yǔ)言語(yǔ)句l

again: MOVAX,1200H ;AX=1200H目的操作數(shù)源操作數(shù)標(biāo)號(hào)助記符注釋區(qū)8086CPU指令的共同的規(guī)律l

大多數(shù)數(shù)據(jù)傳送類指令、有效地址EA和物理地址PA存儲(chǔ)器分段管理

物理地址(PA,20位,與CPU的地址線寬度相等)、邏輯地址(LA,形如1000H:2000H)、四個(gè)段地址(SA,16位,包括CS、DS、ES、SS)、有效地址(EA,16位,又叫偏移地址)的關(guān)系:

LA=SA:EA,我們使用邏輯地址編寫程序,而計(jì)算機(jī)訪問存儲(chǔ)器時(shí)輸出的是物理地址,即物理地址由邏輯地址形成:

PA=SA*10H+EA有效地址EA和物理地址PA存儲(chǔ)器分段管理1立即尋址 P26立即尋址方式中,指令操作碼和操作數(shù)都在存儲(chǔ)器代碼段中。匯編格式:n(n為立即操作數(shù),是用8位或16位二進(jìn)制補(bǔ)碼表示的有符號(hào)數(shù))功能:操作數(shù)存放在存儲(chǔ)器,指令下一單元的內(nèi)容為立即操作數(shù)n。圖形表示:例:ADDAX,100C語(yǔ)言:AX+=100;內(nèi)存中的代碼立即數(shù)1立即尋址 P26立即尋址方式中,指令操作碼和操作數(shù)【例2.3】【例2.3】MOVAX,10 ;C語(yǔ)言AX=10;執(zhí)行后(AX)=?該例中源操作數(shù)為立即尋址方式,立即數(shù)為10,存放在指令的下一單元。圖形表示:執(zhí)行:10→AX執(zhí)行后:(AX)=000AH

返回本節(jié)內(nèi)存中的代碼立即數(shù)10【例2.3】【例2.3】MOVAX,10 ;C語(yǔ)言2寄存器尋址 P27寄存器尋址方式的操作數(shù)在指令指明的寄存器中。匯編格式:R其中R表示寄存器名。功能:操作數(shù)直接存放在寄存器R中。圖形表示:R指令→操作數(shù) ADD AX,BX AX+=BX; //c語(yǔ)言內(nèi)存中的代碼R操作數(shù)2寄存器尋址 P27寄存器尋址方式的操作數(shù)在指令指明【例2.4】下列程序執(zhí)行后,(AX)=?,(BX)=?MOVAX,1234HMOVBX,5678HADDAX,BX該程序中MOV指令為數(shù)據(jù)傳送指令操作符,ADD指令為加法指令操作符,三條指令皆為雙操作數(shù)指令。第一、二條指令中AX、BX為目的操作數(shù),為寄存器尋址方式;源操作數(shù)為立即尋址。第三條指令中,AX為目的操作數(shù)地址,BX為源操作數(shù)地址。源地址和目的地址皆為寄存器尋址方式?!纠?.4】下列程序執(zhí)行后,(AX)=?,(BX)=?圖形表示:MOVAX,1234HMOVBX,5678HADDAX,BX執(zhí)行:1234H→AX5678H→BX(AX)+(BX)→AX執(zhí)行后:(AX)=68ACH,(BX)=5678H返回本節(jié)圖形表示:返回本節(jié)3直接尋址 P28匯編格式:①含有變量的地址表達(dá)式。②段寄存器名:[EA]。功能:指令下一字單元的內(nèi)容是操作數(shù)的偏移地址EA。圖形表示:3直接尋址 P28匯編格式:①含有變量的地址表達(dá)式?!纠?.5】寄存器和存儲(chǔ)器內(nèi)容為:(AX)=1212H,BUF為數(shù)據(jù)段定義的變量,其偏移地址是2000H,(DS)=3000H,(32000H)=45ABH。執(zhí)行指令:MOVAX,BUF或MOVAX,[2000H]執(zhí)行后:(AX)=?執(zhí)行:(32000H)→AX執(zhí)行后:(AX)=45ABH返回本節(jié)內(nèi)存數(shù)據(jù)物理地址【例2.5】寄存器和存儲(chǔ)器內(nèi)容為:(AX)=1212H,BU4寄存器間接尋址 P29寄存器間接尋址方式中,寄存器的內(nèi)容為操作數(shù)的偏移地址EA,操作數(shù)在存儲(chǔ)器中。匯編格式:[R]功能:操作數(shù)存放在存儲(chǔ)器,寄存器R存放操作數(shù)的偏移地址EA。能夠作為寄存器間接尋址的寄存器:基址寄存器:BX、BP

和變址寄存器:SI、DI其中:[BX]、[SI]、[DI]默認(rèn)段為DS [BP]默認(rèn)段為SS4寄存器間接尋址 P29寄存器間接尋址方式中,寄存器的偏移地址EA計(jì)算方法如下:EA=[SI] ;SI作間址寄存器。[DI] ;DI作間址寄存器。[BX] ;BX作間址寄存器。[BP] ;BP作間址寄存器。偏移地址EA計(jì)算方法如下:EA=[SI] ;SI作間址寄存器執(zhí)行指令:MOVAX,[BP]執(zhí)行后:(AX)=1234H(BP)=0030H(SS)=2000H(20030H)=1234H圖形表示如下:

【例2.6】寄存器和存儲(chǔ)器內(nèi)容分別為:(AX)=0,(BP)=0030H,(SS)=2000H,(20030H)=1234H返回本節(jié)物理地址內(nèi)存數(shù)據(jù)段地址偏移地址執(zhí)行指令:MOVAX,[BP]【例2.6】寄存器和5寄存器相對(duì)尋址 P30變址尋址方式操作數(shù)的偏移地址EA為寄存器的內(nèi)容加位移量,操作數(shù)在存儲(chǔ)器中。匯編格式:X[R](X表示位移量,是8位或16位二進(jìn)制補(bǔ)碼表示的有符號(hào)數(shù))功能:操作數(shù)存放在存儲(chǔ)器,寄存器R的內(nèi)容加位移量X為操作數(shù)的偏移地址EA。圖形表示如下:5寄存器相對(duì)尋址 P30變址尋址方式操作數(shù)的偏移地址E第2章_計(jì)算機(jī)組織結(jié)構(gòu)偏移地址EA計(jì)算方法如下:EA=[SI]+X ;SI作間址寄存器。[DI]+X ;DI作間址寄存器。[BX]+X ;BX作間址寄存器。[BP]+X ;BP作間址寄存器。

有效地址=(BX)(BP)8位(SI)16位(DI)+位移量偏移地址EA計(jì)算方法如下:EA=[SI]+X ;SI作執(zhí)行:(20036H)+(AX)→20036H執(zhí)行后:(AX)=0040H,(BX)=0030H,(DS)=2000H,(20036H)=0090H。返回本節(jié)【例2.7】設(shè)執(zhí)行前:(AX)=0040H,(BX)=0030H,(DS)=2000H,(20036H)=0050H執(zhí)行指令:ADD6[BX],AX執(zhí)行:(20036H)+(AX)→20036H返回本節(jié)【例6基址變址尋址 P31基址變址尋址方式中,操作數(shù)的偏移地址EA是指令中基址寄存器內(nèi)容、變址寄存器內(nèi)容之和,操作數(shù)在存儲(chǔ)器中。匯編格式:[BR][IR]或[BR+IR]功能:操作數(shù)存放在存儲(chǔ)器,BR的內(nèi)容加IR的內(nèi)容是操作數(shù)的偏移地址EA。如:MOVDX,[BX][SI]基址寄存器:BX、BP變址寄存器:SI、DI返回本節(jié)6基址變址尋址 P31基址變址尋址方式中,操作數(shù)的偏●基址變址尋址*適于數(shù)組、字符串、表格的處理*必須是一個(gè)基址寄存器和一個(gè)變址寄存器的組合MOVAX,[BX][BP]MOVAX,[SI][DI]有效地址=(BX)(SI)(BP)(DI)+●基址變址尋址*適于數(shù)組、字符串、表格的處理有效地址7基址變址相對(duì)尋址 P32基址變址相對(duì)尋址方式中,操作數(shù)的偏移地址EA是指令中基址寄存器內(nèi)容、變址寄存器內(nèi)容、位移量X三項(xiàng)之和,操作數(shù)在存儲(chǔ)器中。匯編格式:X[BR][IR]或X[BR+IR]功能:操作數(shù)存放在存儲(chǔ)器,BR的內(nèi)容加IR的內(nèi)容加位移量X是操作數(shù)的偏移地址EA。圖形表示:7基址變址相對(duì)尋址 P32基址變址相對(duì)尋址方式中,操作第2章_計(jì)算機(jī)組織結(jié)構(gòu)操作數(shù)偏移地址EA計(jì)算方法如下

有效地址=(BX)(SI)8位(BP)(DI)16位++位移量操作數(shù)偏移地址EA計(jì)算方法如下有效地址=(BX)執(zhí)行:(20000H+2000H+1000H+0250H)→(AX)執(zhí)行后:(AX)=0050H,(BX)=2000H,(SI)=1000H,(DS)=2000H,(23250H)=0050H。返回本節(jié)【例2.8】設(shè)執(zhí)行前:(BX)=2000H,(SI)=1000H,(DS)=2000H,MASK=0250H(23250H)=0050H執(zhí)行指令:MOVAX,MASK[BX][SI]執(zhí)行:(20000H+2000H+1000H+0250H)8跨段問題 P22按前述規(guī)定:若選用BP作間址基址寄存器、變址寄存器或基址寄存器,則操作數(shù)在堆棧段,操作數(shù)的物理地址PA由堆棧段寄存器SS的內(nèi)容左移4位與偏移地址EA相加后形成;否則,操作數(shù)在數(shù)據(jù)段,操作數(shù)的物理地址PA由數(shù)據(jù)段寄存器DS的內(nèi)容左移4位與偏移EA相加后形成。該規(guī)定為系統(tǒng)默認(rèn)狀態(tài)。當(dāng)要否定默認(rèn)狀態(tài),到非約定段尋找操作數(shù)時(shí),必須用跨段前綴指明操作數(shù)的段寄存器名??缍螁柼嵋簿褪侵付ǘ螁栴},非默認(rèn)段時(shí)必須指明段。匯編格式:段寄存器名:操作數(shù)地址。功能:段寄存器名指明操作數(shù)屬哪個(gè)段。8跨段問題 P22按前述規(guī)定:若選用BP作間址基址寄存【例2.9】跨段前綴示例。MOV AX,DS:[BP]MOV CX,SS:[SI]該例中,DS:,SS:均為跨段前綴,此時(shí)默認(rèn)狀態(tài)無(wú)效,操作數(shù)的物理地址PA由段寄存器內(nèi)容左移4位加偏移EA形成。上述2條指令的源操作數(shù)物理地址分別為:PA1=(DS)左移4位+[BP]PA2=(SS)左移4位+[

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論