版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第2章:微處置器指令系統(tǒng)微處置器的內(nèi)部構(gòu)造8088/8086的尋址方式8088/8086的根本指令數(shù)據(jù)傳送加減運(yùn)算邏輯運(yùn)算、移位控制轉(zhuǎn)移、功能調(diào)用主要教學(xué)內(nèi)容:.概述-8086微處置器系列概略1從8080/8085到80868086是16位微處置器,內(nèi)部及對外有16位數(shù)據(jù)通路,8080/8085只需8位。8086尋址空間1MB,8080/8085為64KB。8086有一個初級流水線構(gòu)造,內(nèi)部操作與對外操作具有并行性,8085無。 .2從8086到80888088內(nèi)部構(gòu)造與8086一樣,是16位微處置器,對外數(shù)據(jù)總線是8位的。8088與已有的8位外圍芯片容易配合運(yùn)用。8088價錢低,適宜當(dāng)時的微
2、計(jì)算機(jī)運(yùn)用。38088獲得勝利 IBM公司選擇8088作為處置器設(shè)計(jì)個人計(jì)算機(jī),大獲勝利,Intel微處置器成為主流產(chǎn)品。.12345678910111213141516171819204039383736353433323130292827262524232221 GND A14 A13 A12 A11 A10 A9 A8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GNDVCCAD15AD16 / S3AD17 / S4AD18 / S5AD19 / S6SS0 (HIGH)MN / MXRDHOLD (RQ)/ GT0)HLDA (RQ1 /
3、GT1)WR (LOCK)M / IO ( S2 )DT / R ( S1 )DEN ( S0 )ALEINTATESTREADYRESET80888088的引腳圖.微處置器性能目的 一、字長 微處置器的字長是指它在交換、加工和存放信息時,其信息位的最根本的長度,它決議一次傳送的二進(jìn)制的位數(shù)。 各類微處置器的字長不同,例如有四位的、八位的、十六位的、三十二位的等。 字長長、位數(shù)多的機(jī)器處置的精度和速度都更高,因此,字長是微處置器最重要的目的之一。.微處置器性能目的為了辯別信息在長度方面的差別,計(jì)算機(jī)中用了一個術(shù)語字節(jié)(Byte)。字節(jié)是通用的根本單元,它由8個二進(jìn)制位(bit)組成。 一個16
4、位的數(shù),對八位微處置器,需進(jìn)展二次傳送處置,而對十六位的微處置器那么需一次,這就是字長長的機(jī)器在處置速度上帶來的優(yōu)越性。.字長由微處置器對外數(shù)據(jù)通路的數(shù)據(jù)總線的條數(shù)決議。 同時字長又確定了微處置器的內(nèi)部構(gòu)造。16位微處置器,是指數(shù)據(jù)總線條數(shù)和內(nèi)部構(gòu)造均為16位,16位內(nèi)部構(gòu)造而對外數(shù)據(jù)總線只需8條的又稱為準(zhǔn)16位機(jī)。微處置器性能目的.二、指令數(shù)計(jì)算機(jī)完成某種操作的命今被稱為指令。一臺微計(jì)算機(jī)可以有幾十到幾百種指令。一臺計(jì)算機(jī)完成的操作種類愈多,即指今數(shù)愈多,表示該微處置器系統(tǒng)的功能愈強(qiáng)。微處置器性能目的.三、根本指令執(zhí)行時間微處置器的各種指令其執(zhí)行時間是不一樣的。根本指令執(zhí)行時間愈短,表示微處
5、置器任務(wù)速度愈高。微處置器性能目的.四、訪存空間 訪存空間是指由該微處置器構(gòu)成的系統(tǒng)所能訪問(Access)的存儲單元數(shù)。此單元數(shù)是由傳送地址信息的地址總線的條數(shù)決議的。十六位微處置器有20條地址線。訪存空間為:220=10485761024K,比之八位機(jī)大16倍。微處置器性能目的.五、能否能構(gòu)成多處置器系統(tǒng) 假設(shè)微處置器具有協(xié)處置器接口,那么可用來構(gòu)成多處置系統(tǒng) 這樣,可將主處置器CPU的某些義務(wù),如浮點(diǎn)數(shù)據(jù)運(yùn)算,輸入輸出分由協(xié)處置器去完成,而將整個系統(tǒng)功能上百倍地添加。 在十六位微 處置器之前的低位數(shù)微處置器是不具有本性能的.微處置器性能目的.微處置器性能目的六、工藝方式及其它 采用不同工
6、藝制造的微處置器,其性能有很大差別,因此對運(yùn)用環(huán)境的要求也不同,選用時應(yīng)區(qū)分。 其它還有控制功能(包括中斷、等待、堅(jiān)持和復(fù)原等)、封裝方式、所用電源種類、功耗等,選用時也是應(yīng)留意的目的。.2.1 微處置器的內(nèi)部構(gòu)造從運(yùn)用角度不是從內(nèi)部任務(wù)原理展開典型8位微處置器的根本構(gòu)造8088/8086的功能構(gòu)造8088/8086的存放器構(gòu)造8088/8086的存儲器構(gòu)造為學(xué)習(xí)指令系統(tǒng)打好根底例如:關(guān)懷用戶“可編程存放器,不關(guān)懷無法支配的“透明存放器.內(nèi)部數(shù)據(jù)總線控制總線數(shù)據(jù)總線地址總線暫存器累加器ALU標(biāo)志存放器指令寄存指令譯碼時序和控制邏輯通 用存放器組地 址存放器組地址總線控制數(shù)據(jù)總線控制2.1.1
7、微處置器的根本構(gòu)造1.算術(shù)邏輯單元運(yùn)算器2.存放器組3.指令處置單元控制器.微處置器的內(nèi)部構(gòu)造主要組成部分算術(shù)邏輯單元ALU(運(yùn)算器)存放器組:包括通用存放器,地址存放器,標(biāo)志存放器。指令處置單元(控制器):包括指令存放器,指令譯碼邏輯,時序和控制邏輯。.2.1.2 8088/8086的功能構(gòu)造8088的內(nèi)部構(gòu)造從功能上分成兩個單元1. 總線接口單元BIU由指令隊(duì)列、指令指針I(yè)P 、段存放器、地址加法器和總線控制邏輯等組成 管理8088與系統(tǒng)總線的接口 擔(dān)任CPU對存儲器和外設(shè)進(jìn)展訪問2. 執(zhí)行單元EU由ALU、數(shù)據(jù)存放器、地址存放器、標(biāo)志存放器和指令譯碼邏輯等組成 擔(dān)任指令的譯碼、執(zhí)行和數(shù)據(jù)
8、的運(yùn)算兩個單元相互獨(dú)立,分別完成各自操作,還可以并行執(zhí)行,實(shí)現(xiàn)指令預(yù)取指令讀取和執(zhí)行的流水線操作總線四種運(yùn)用情況圖示動畫.總線的四種運(yùn)用情況1.取指操作;硬盤-內(nèi)存-CPU指令隊(duì)列2.取指以外的總線操作: CPU 內(nèi)存;CPU 外設(shè);3.總線空閑4.總線懇求設(shè)備占用總線前往.8088的內(nèi)部構(gòu)造1 2 3 4 內(nèi)部暫存器 IP ES SS DS CS輸入/輸出控制電路外部總線執(zhí)行部分控制電路ALU標(biāo)志存放器 AH AL BH BLCH CL DH DL SP BP SI DI通用存放器地址加法器指令隊(duì)列執(zhí)行部件 EU)總線接口部件 BIU)16位20位8位8位前往.8088的指令執(zhí)行過程前往.2
9、.1.3 8088/8086的存放器構(gòu)造8086/8088中有14個16位存放器8個通用存放器AX、BX、CX、DX、 SI、DI、BP、SP)4個段存放器(CS、SS、DS、ES)1個標(biāo)志存放器(FLAGS)1個指令指針存放器(IP)他們均為16位!圖示 匯編言語程序員看到的處置器,就是存放器 所以,一定要熟習(xí)這些存放器的稱號和作用.1. 通用存放器8088有8個通用的16位存放器1數(shù)據(jù)存放器: AX BX CX DX2變址存放器: SI DI3指針存放器: BP SP4個數(shù)據(jù)存放器還可以分成高8位和低8位兩個獨(dú)立的存放器,這樣又構(gòu)成8個通用的8位存放器AX: AH ALBX: BH BLC
10、X: CH CLDX: DH DL.AX稱為累加器Accumulator運(yùn)用頻度最高。用于算術(shù)、邏輯運(yùn)算以及與外設(shè)傳送信息等BX稱為基址存放器Base address Register常用做存放存儲器地址CX稱為計(jì)數(shù)器Counter作為循環(huán)和串操作等指令中的隱含計(jì)數(shù)器DX稱為數(shù)據(jù)存放器Data register常用來存放雙字長數(shù)據(jù)的高16位,或存放外設(shè)端口地址 1. 通用存放器-數(shù)據(jù)存放器.變址存放器16位變址存放器SI和DI常用于存儲器變址尋址方式時提供地址SI是源地址存放器Source IndexDI是目的地址存放器Destination Index在串操作類指令中,SI、DI還有較特殊的
11、用法.指針存放器指針存放器用于尋址內(nèi)存堆棧內(nèi)的數(shù)據(jù)SP為堆棧指針存放器Stack Pointer,指示堆棧段棧頂?shù)奈恢闷频刂稡P為基址指針存放器Base Pointer,表示數(shù)據(jù)在堆棧段中的基地址SP和BP存放器與SS段存放器結(jié)合運(yùn)用以確定堆棧段中的存儲單元地址堆棧Stack是主存中一個特殊的區(qū)域,采用“先進(jìn)后出或“后進(jìn)先出存取操作方式、而不是隨機(jī)存取方式。用8088/8086構(gòu)成的微機(jī)系統(tǒng)中,堆棧區(qū)域被稱為堆棧段.2. 指令指針存放器IPInstruction Pointer為指令指針存放器,指示主存儲器指令的位置隨著指令的執(zhí)行,IP將自動修正以指示下一條指令所在的存儲器位置IP存放器是一
12、個公用存放器IP存放器與CS段存放器結(jié)合運(yùn)用以確定下一條指令的存儲單元地址.標(biāo)志存放器標(biāo)志Flag用于反映指令執(zhí)行結(jié)果或控制指令執(zhí)行方式;8088處置器的各種標(biāo)志構(gòu)成了一個16位的標(biāo)志存放器FLAGS程序形狀字PSW存放器。 程序設(shè)計(jì)需求利用標(biāo)志的形狀.標(biāo)志存放器-分類形狀標(biāo)志用來記錄程序運(yùn)轉(zhuǎn)結(jié)果的形狀信息,許多指令的執(zhí)行都將相應(yīng)地設(shè)置它CF ZF SF PF OF AF控制標(biāo)志可由程序根據(jù)需求用指令設(shè)置,用于控制處置器執(zhí)行指令的方式DF IF TFOF1115 12DF10IF9TF8SF7ZF65AF43PF21CF0標(biāo)志存放器FLAGS.進(jìn)位標(biāo)志CFCarry Flag當(dāng)運(yùn)算結(jié)果的最高有
13、效位有進(jìn)位加法或借位減法時,進(jìn)位標(biāo)志置1,即CF1; 否那么CF03AH + 7CHB6H,沒有進(jìn)位:CF = 0AAH + 7CH126H,有進(jìn)位:CF = 1.零標(biāo)志ZFZero Flag假設(shè)運(yùn)算結(jié)果為0,那么ZF1;否那么ZF03AH7CHB6H,結(jié)果不是零:ZF084H7CH100H,結(jié)果是零:ZF1 留意:ZF為1表示的結(jié)果是0.符號標(biāo)志SFSign Flag運(yùn)算結(jié)果最高位為1,那么SF1; 否那么SF03AH7CHB6H,最高位D71:SF184H7CH100H,最高位D70:SF0 有符號數(shù)據(jù)用最高有效位表示數(shù)據(jù)的符號所以,最高有效位就是符號標(biāo)志的形狀。.奇偶標(biāo)志PFParity
14、 Flag當(dāng)運(yùn)算結(jié)果最低字節(jié)中“1的個數(shù)為零或偶數(shù)時,PF1;否那么PF03AH7CHB6H10110110B結(jié)果中有5個“1,是奇數(shù):PF0 PF標(biāo)志僅反映最低8位中“1的個數(shù)是偶或奇,即使是進(jìn)展16位字操作.溢出標(biāo)志OFOverflow Flag假設(shè)算術(shù)運(yùn)算的結(jié)果有溢出,那么OF1; 否那么 OF03AH + 7CHB6H,產(chǎn)生溢出:OF1AAH + 7CH126H,沒有溢出:OF0.什么是溢出處置器內(nèi)部以補(bǔ)碼表示有符號數(shù);8位表達(dá)的整數(shù)范圍是:127 128;16位表達(dá)的范圍是:32767 32768;假設(shè)運(yùn)算結(jié)果超出這個范圍,就產(chǎn)生了溢出;有溢出,闡明有符號數(shù)的運(yùn)算結(jié)果不正確。3AH7
15、CHB6H,就是58124182,曾經(jīng)超出128127范圍,產(chǎn)生溢出,故OF1;補(bǔ)碼B6H表達(dá)真值是74,顯然運(yùn)算結(jié)果也不正確 B6H10110110B,最高位為1,作為有符號數(shù)是負(fù)數(shù) 對B6H求反加1等于:01001001B101001010B4AH74 所以,B6H表達(dá)有符號數(shù)的真值為74.溢出和進(jìn)位的區(qū)別溢出標(biāo)志OF和進(jìn)位標(biāo)志CF是兩個意義不同的標(biāo)志進(jìn)位標(biāo)志表示無符號數(shù)運(yùn)算結(jié)果能否超出范圍,運(yùn)算結(jié)果依然正確溢出標(biāo)志表示有符號數(shù)運(yùn)算結(jié)果能否超出范圍,運(yùn)算結(jié)果曾經(jīng)不正確.溢出和進(jìn)位的對比例1:3AH7CHB6H無符號數(shù)運(yùn)算:58124182范圍內(nèi),無進(jìn)位有符號數(shù)運(yùn)算: 58124182范圍外
16、,有溢出例2:AAH7CH126H無符號數(shù)運(yùn)算:170124294范圍外,有進(jìn)位有符號數(shù)運(yùn)算:8612428范圍內(nèi),無溢出.溢出和進(jìn)位的運(yùn)用場所處置器對兩個操作數(shù)進(jìn)展運(yùn)算時,按照無符號數(shù)求得結(jié)果,并相應(yīng)設(shè)置進(jìn)位標(biāo)志CF;同時,根據(jù)能否超出有符號數(shù)的范圍設(shè)置溢出標(biāo)志OF應(yīng)該利用哪個標(biāo)志,那么由程序員來決議。也就是說,假設(shè)將參與運(yùn)算的操作數(shù)以為是無符號數(shù),就應(yīng)該關(guān)懷進(jìn)位;以為是有符號數(shù),那么要留意能否溢出.溢出的判別判別運(yùn)算結(jié)果能否溢出有一個簡單的規(guī)那么:只需當(dāng)兩個一樣符號數(shù)相加包括不同符號數(shù)相減,而運(yùn)算結(jié)果的符號與原數(shù)據(jù)符號相反時,產(chǎn)生溢出;由于,此時的運(yùn)算結(jié)果顯然不正確其他情況下,那么不會產(chǎn)生
17、溢出例1:3AH7CHB6H正+正=負(fù) 溢出例2:AAH7CH負(fù)+正 無溢出例3:3AH7CH 正-正 無溢出例4:AAH7CH2DH負(fù)-正=正 溢出.輔助進(jìn)位標(biāo)志AFAuxiliary Carry Flag3AH7CHB6H,D3有進(jìn)位:AF1運(yùn)算時D3位低半字節(jié)有進(jìn)位或借位時,AF1;否那么AF0這個標(biāo)志主要由處置器內(nèi)部運(yùn)用,用于十進(jìn)制算術(shù)運(yùn)算調(diào)整指令中,用戶普通不用關(guān)懷.方向標(biāo)志DFDirection Flag用于串操作指令中,控制地址的變化方向:設(shè)置DF0,存儲器地址自動添加;設(shè)置DF1,存儲器地址自動減少CLD指令復(fù)位方向標(biāo)志:DF0STD指令置位方向標(biāo)志:DF1.中斷允許標(biāo)志IFI
18、nterrupt-enable Flag控制可屏蔽中斷能否可以被處置器呼應(yīng):設(shè)置IF1,那么允許中斷;設(shè)置IF0,那么制止中斷CLI指令復(fù)位中斷標(biāo)志:IF0STI指令置位中斷標(biāo)志:IF1.圈套標(biāo)志TFTrap Flag用于控制處置器進(jìn)入單步操作方式:設(shè)置TF0,處置器正常任務(wù);設(shè)置TF1,處置器單步執(zhí)行指令單步執(zhí)行指令處置器在每條指令執(zhí)行終了時,便產(chǎn)生一個編號為1的內(nèi)部中斷這種內(nèi)部中斷稱為單步中斷所以TF也稱為單步標(biāo)志利用單步中斷可對程序進(jìn)展逐條指令的調(diào)試這種逐條指令調(diào)試程序的方法就是單步伐試.2.1.4 8088/8086的存儲器構(gòu)造存儲器是計(jì)算機(jī)存儲信息的地方。掌握數(shù)據(jù)存儲格式,以及存儲器
19、的分段管理對以后的匯編程序設(shè)計(jì)非常重要他能區(qū)別存放器、存儲器(主存)、外存(包括硬盤、光盤、磁帶等存儲介質(zhì))嗎?答案.存放器、存儲器和外存的區(qū)別存放器是微處置器CPU內(nèi)部暫存數(shù)據(jù)的存儲單元,以稱號表示,例如:AX,BX.等存儲器也就是平常所說的主存,也叫內(nèi)存,可直接與CPU進(jìn)展數(shù)據(jù)交換。主存利用地址區(qū)別外存主要指用來長久保管數(shù)據(jù)的外部存儲介質(zhì),常見的有硬盤、光盤、磁帶、U盤等。外存的數(shù)據(jù)只能經(jīng)過主存間接地與CPU交換數(shù)據(jù)程序及其數(shù)據(jù)可以長久存放在外存,在運(yùn)轉(zhuǎn)需求時才進(jìn)入主存.1. 數(shù)據(jù)的存儲格式計(jì)算機(jī)中信息的單位二進(jìn)制位Bit:存儲一位二進(jìn)制數(shù):0或1字節(jié)Byte:8個二進(jìn)制位,D7D0字Wo
20、rd:16位,2個字節(jié),D15D0雙字DWord:32位,4個字節(jié),D31D0最低有效位LSB:數(shù)據(jù)的最低位,D0位最高有效位MSB:數(shù)據(jù)的最高位,對應(yīng)字節(jié)、字、雙字分別指D7、D15、D31位圖示.圖2-5 8088的存儲格式D7D0字節(jié)D15D0字D31D0雙字D7 D000006H78H00005H56H00004H12H00003H34H00002H00001H00000H低地址LSBMSB.2.存儲單元及其存儲內(nèi)容每個存儲單元都有一個編號;被稱為存儲器地址每個存儲單元存放一個字節(jié)的內(nèi)容圖示0002H單元存放有一個數(shù)據(jù)34H表達(dá)為0002H34H.圖2-5 8088的存儲格式D7D0字
21、節(jié)D15D0字D31D0雙字D7 D000006H78H00005H56H00004H12H00003H34H00002H00001H00000H低地址LSBMSB高地址.多字節(jié)數(shù)據(jù)存放方式多字節(jié)數(shù)據(jù)在存儲器中占延續(xù)的多個存儲單元:存放時,低字節(jié)存入低地址,高字節(jié)存入高地址;表達(dá)時,用它的低地址表示多字節(jié)數(shù)據(jù)占據(jù)的地址空間。圖2-5中0002H“字單元的內(nèi)容為:0002H = 1234H0002H號“雙字單元的內(nèi)容為:0002H = 78561234H 80 x86處置器采用“低對低、高對高的存儲方式,被稱為“小端方式Little Endian。 相對應(yīng)還存在“大端方式Big Endian。圖
22、示.圖2-5 8088的存儲格式D7D0字節(jié)D15D0字D31D0雙字D7 D000006H78H00005H56H00004H12H00003H34H00002H00001H00000H低地址LSBMSB.數(shù)據(jù)的地址對齊同一個存儲器地址可以是字節(jié)單元地址、字單元地址、雙字單元地址等等視詳細(xì)情況來確定字單元安排在偶地址xxx0B、雙字單元安排在模4地址xx00B等,被稱為“地址對齊Align對于不對齊地址的數(shù)據(jù),處置器訪問時,需求額外的訪問存儲器時間應(yīng)該將數(shù)據(jù)的地址對齊,以獲得較高的存取速度.2. 存儲器的分段管理8088CPU有20條地址線最大可尋址空間為2201MB物理地址范圍從00000
23、HFFFFFH8088CPU將1MB空間分成許多邏輯段Segment每個段最大限制為64KB段地址的低4位為0000B這樣,一個存儲單元除具有一個獨(dú)一的物理地址外,還具有多個邏輯地址.物理地址和邏輯地址8088CPU存儲系統(tǒng)中,對應(yīng)每個物理存儲單元都有一個獨(dú)一的20位編號,就是物理地址,從00000H FFFFFH分段后在用戶編程時,采用邏輯地址,方式為段基地址 : 段內(nèi)偏移地址分隔符物理地址 14700H邏輯地址 1460H:100H.邏輯地址段地址闡明邏輯段在主存中的起始位置8088規(guī)定段地址必需是模16地址:xxxx0H省略低4位0000B,段地址就可以用16位數(shù)據(jù)表示,就能用16位段存
24、放器表達(dá)段地址偏移地址闡明主存單元間隔段起始位置的偏移量每段不超越64KB,偏移地址也可用16位數(shù)據(jù)表示.物理地址和邏輯地址的轉(zhuǎn)換將邏輯地址中的段地址左移4位,加上偏移地址就得到20位物理地址一個物理地址可以有多個邏輯地址邏輯地址1460:100、0:F00物理地址14700H 14700H14600H 100H14700H00H F00H14700H段地址左移4位加上偏移地址得到物理地址.3. 段存放器8088有4個16位段存放器CS代碼段指明代碼段的起始地址SS堆棧段指明堆棧段的起始地址DS數(shù)據(jù)段指明數(shù)據(jù)段的起始地址ES附加段指明附加段的起始地址每個段存放器用來確定一個邏輯段的起始地址,每
25、種邏輯段均有各自的用途.代碼段存放器CSCode Segment代碼段用來存放程序的指令序列代碼段存放器CS存放代碼段的段地址指令指針存放器IP指示下條指令的偏移地址處置器利用CS:IP獲得下一條要執(zhí)行的指令.堆棧段存放器SSStack Segment堆棧段確定堆棧所在的主存區(qū)域堆棧段存放器SS存放堆棧段的段地址堆棧指針存放器SP指示堆棧棧頂?shù)钠频刂诽幹闷骼肧S:SP操作堆棧頂?shù)臄?shù)據(jù).數(shù)據(jù)段存放器DSData Segment數(shù)據(jù)段存放運(yùn)轉(zhuǎn)程序所用的數(shù)據(jù)數(shù)據(jù)段存放器DS存放數(shù)據(jù)段的段地址各種主存尋址方式有效地址EA得到存儲器中操作數(shù)的偏移地址處置器利用DS:EA存取數(shù)據(jù)段中的數(shù)據(jù).附加段存放
26、器ESExtra Segment附加段是附加的數(shù)據(jù)段,也保管數(shù)據(jù):附加段存放器ES存放附加段的段地址各種主存尋址方式有效地址EA得到存儲器中操作數(shù)的偏移地址處置器利用ES:EA存取附加段中的數(shù)據(jù)串操作指令將附加段作為其目的操作數(shù)的存放區(qū)域.如何分配各個邏輯段程序的指令序列必需安排在代碼段程序運(yùn)用的堆棧一定在堆棧段程序中的數(shù)據(jù)默許是安排在數(shù)據(jù)段,也經(jīng)常安排在附加段,尤其是串操作的目的區(qū)必需是附加段數(shù)據(jù)的存放比較靈敏,實(shí)踐上可以存放在任何一種邏輯段中演示.段超越前綴指令沒有指明時,普通的數(shù)據(jù)訪問在DS段;運(yùn)用BP訪問主存,那么在SS段默許的情況允許改動,需求運(yùn)用段超越前綴指令;8088指令系統(tǒng)中有
27、4個:CS:;代碼段超越,運(yùn)用代碼段的數(shù)據(jù)SS: ;堆棧段超越,運(yùn)用堆棧段的數(shù)據(jù)DS: ;數(shù)據(jù)段超越,運(yùn)用數(shù)據(jù)段的數(shù)據(jù)ES: ;附加段超越,運(yùn)用附加段的數(shù)據(jù)例如.段超越的例如沒有段超越的指令實(shí)例:MOV AX,2000H ;AXDS:2000H;從默許的DS數(shù)據(jù)段取出數(shù)據(jù)采用段超越前綴的指令實(shí)例:MOV AX,ES:2000H;AXES:2000H;從指定的ES附加段取出數(shù)據(jù)總結(jié).段存放器的運(yùn)用規(guī)定訪問存儲器的方式默認(rèn)可超越偏移地址取指令CS無IP堆棧操作SS無SP一般數(shù)據(jù)訪問DSCS ES SS有效地址EABP基址的尋址方式SSCS ES DS有效地址EA串操作的源操作數(shù)DSCS ES SS
28、SI串操作的目的操作數(shù)ES無DI.存放器的總結(jié)8088有8個8位通用存放器、8個16位通用存放器8088有6個形狀標(biāo)志和3個控制標(biāo)志8088將1MB存儲空間分段管理,有4個段存放器,對應(yīng)4種邏輯段8088有4個段超越前綴指令,用于明確指定數(shù)據(jù)所在的邏輯段.圖2-5 8088的存儲格式D7D0字節(jié)D15D0字D31D0雙字D7 D000006H78H00005H56H00004H12H00003H34H00002H00001H00000H低地址LSBMSB.8088的內(nèi)部構(gòu)造1 2 3 4 內(nèi)部暫存器 IP ES SS DS CS輸入/輸出控制電路外部總線執(zhí)行部分控制電路ALU標(biāo)志存放器 AH
29、AL BH BLCH CL DH DL SP BP SI DI通用存放器地址加法器指令隊(duì)列執(zhí)行部件 EU)總線接口部件 BIU)16位20位8位8位前往.邏輯段的分配.2.2 80868088的尋址方式 指令的尋址方式 尋址方式就是尋覓指令操作數(shù)所在地址的方式 目的:以確定數(shù)據(jù)的來源和去處。 熟練地掌握尋址方式對學(xué)習(xí)指令系統(tǒng)和匯編言語程序設(shè)計(jì)具有重要作用。從8088/8086的指令格式入手,論述:立刻數(shù)尋址方式存放器尋址方式存儲器尋址方式進(jìn)而熟習(xí)8088/8086匯編言語指令格式,尤其是其中操作數(shù)的表達(dá)方法為展開8088/8086指令系統(tǒng)做好預(yù)備.指令的組成操作碼闡明計(jì)算機(jī)要執(zhí)行哪種操作,如傳
30、送、運(yùn)算、移位、跳轉(zhuǎn)等操作,它是指令中不可短少的組成部分操作數(shù)是指令執(zhí)行的參與者,即各種操作的對象有些指令不需求操作數(shù),通常的指令都有一個或兩個操作數(shù),也有個別指令有3個甚至4個操作數(shù)操作碼操作數(shù)指令由操作碼和操作數(shù)兩部分組成.指令的助記符格式操作數(shù)2,常被稱為源操作數(shù)src,它表示參與指令操作的一個對象操作數(shù)1,常被稱為目的操作數(shù)dest,它不僅可以作為指令操作的一個對象,還可以用來存放指令操作的結(jié)果分號后的內(nèi)容是對指令的解釋操作碼 操作數(shù)1,操作數(shù)2 ;注釋.匯編言語的兩種語句格式執(zhí)行性語句執(zhí)行性語句用于表達(dá)處置器指令(也稱為硬指令),匯編后對應(yīng)一條指令代碼。由處置器指令組成的代碼序列是程
31、序設(shè)計(jì)的主體標(biāo)號: 硬指令助記符 操作數(shù),操作數(shù) ;注釋闡明性語句闡明性語句用于表達(dá)偽指令,指示源程序如何匯編、變量怎樣定義、過程怎樣設(shè)置等名字 偽指令助記符 參數(shù),參數(shù), ;注釋.指令的操作碼和操作數(shù)每種指令的操作碼:用一個助記符表示指令功能的英文縮寫對應(yīng)著機(jī)器指令的一個或多個二進(jìn)制編碼指令中的操作數(shù):可以是一個詳細(xì)的數(shù)值可以是存放數(shù)據(jù)的存放器或指明數(shù)據(jù)在主存位置的存儲器地址.操作數(shù)的尋址方式MOV指令系統(tǒng)設(shè)計(jì)了多種操作數(shù)的來源指令中可以直接給出所運(yùn)用的操作數(shù)本身,或者只給出操作數(shù)所在的存放器、存儲器或I/O端口的地址或地址的計(jì)算方法。尋覓指令中所需的操作數(shù)或操作數(shù)地址的方式稱為尋址方式了解
32、操作數(shù)的尋址方式是了解指令功能的前提操作數(shù)采取哪一種尋址方式一方面,會影響處置器執(zhí)行指令的速度和效率另一方面,對程序設(shè)計(jì)也很重要.MOV指令的功能.2.2.1 立刻數(shù)尋址方式指令中的操作數(shù)直接存放在機(jī)器代碼中,緊跟在操作碼之后操作數(shù)作為指令的一部分存放在操作碼之后的主存單元中這種操作數(shù)被稱為立刻數(shù)imm可以是8位數(shù)值i800HFFH也可以是16位數(shù)值i160000HFFFFH立刻數(shù)尋址方式只允許源操作數(shù)為立刻數(shù),目的操作數(shù)必需是存放器或存儲器不需求訪問存儲器,執(zhí)行速度快演示MOV AX, 0102H;AX0102H. 立刻數(shù)尋址方式: 留意:(1)立刻數(shù)尋址方式只能用于源操作數(shù),主要用于給存放
33、器賦值。 (2)立刻數(shù)尋址方式不執(zhí)行總線周期,執(zhí)行速度快。 (3)立刻數(shù)為16位時,低位字節(jié)存放在存儲器低地址單元,高位字節(jié)存放在存儲器高地址單元。.立刻數(shù)尋址方式演示.2.2.2 存放器尋址方式操作數(shù)存放在CPU的內(nèi)部存放器reg中:8位存放器r8:AH、AL、BH、BL、CH、CL、DH、DL16位存放器r16:AX、BX、CX、DX、SI、DI、BP、SP4個段存放器seg:CS、DS、SS、ES存放器名表示其內(nèi)容操作數(shù)無需訪問存儲器,執(zhí)行速度快源操作數(shù)和目的操作數(shù)可同時運(yùn)用存放器尋址演示MOV AX, BX;AXBX. 存放器尋址方式: 留意: (1)存放器尋址方式的指令操作在CPU內(nèi)
34、部執(zhí)行,不需求執(zhí)行總線周期,執(zhí)行速度快。 (2)存放器尋址方式既適用于指令的源操作數(shù),也適用于目的操作數(shù),并且可同時用于源操作數(shù)和目的操作數(shù)。.2.2.3 存儲器尋址方式操作數(shù)在主存儲器中,用主存地址表示程序設(shè)計(jì)時,8088采用邏輯地址表示主存地址段地址在默許的或用段超越前綴指定的段存放器中指令中只需給出操作數(shù)的偏移地址有效地址EA8086設(shè)計(jì)了多種存儲器尋址方式1、直接尋址方式2、存放器間接尋址方式3、存放器相對尋址方式4、基址變址尋址方式5、相對基址變址尋址方式.直接尋址方式直接尋址方式的有效地址在指令中直接給出默許的段地址在DS段存放器,可運(yùn)用段超越前綴改動用中括號包含有效地址,表達(dá)存儲
35、單元的內(nèi)容尋址時需求訪問存儲器演示MOV AX, 2000H;AXDS:2000HMOV AX, ES: 2000H;AXES:2000H.符號地址實(shí)踐編程時,通常是經(jīng)過定義變量,然后運(yùn)用變量名符號地址來指代該變量所在內(nèi)存單元的偏移地址。WVAR DW 3412H;設(shè)WVAR的偏移地址為2000H MOV AX,2000H;AX=3412H MOV AX,WVAR ;AX=3412H,中括號可省略.變量變量本質(zhì)上是指內(nèi)存單元的數(shù)據(jù),因此可以改動。變量需求事先定義才干運(yùn)用。變量名 偽指令 初值表變量名是用戶自定義的標(biāo)識符,用來表示該變量所占用的內(nèi)存單元的首地址。變量定義偽指令為變量分配或預(yù)留內(nèi)存
36、單元。其中DB用來定義字節(jié)變量,DW用來定義字變量。初值表是用逗號分隔的參數(shù),是用戶定義的多個數(shù)據(jù)初值。.直接尋址方式. 直接尋址方式: 此方式的操作數(shù)在存儲器中,指令中直接給出操作數(shù)所在存儲單元的有效地址。有效地址是一個無符號的16位二進(jìn)制數(shù)。 EA有效地址 D 物理地址16X(DS)+D 留意:(1)直接尋址方式的操作數(shù)所在存儲單元的段地址普通在數(shù)據(jù)段存放器DS中。 (2)假設(shè)操作數(shù)在其他段,那么需求在指令中用段超越前綴指出相應(yīng)的段存放器名。 .存放器間接尋址方式有效地址存放在基址存放器BX或變址存放器SI、DI中,默許的段地址在DS段存放器,可運(yùn)用段超越前綴改動演示MOV AX, BX;AXDS:BX物理地址=(DS)*16+(BX)(SI)(DI).假設(shè)指令中指定的存放器是BP,那么操作數(shù)在堆棧段SS中,操作數(shù)物理地址:物理地址=(SS)*16+(BP)MOV BP, AX假設(shè) (ss)= 1000H, (BP)=3000H, (AX)=1234H 1000H3000HSSBP 34H 12H 10000+ 30001300012H 34HAH AL13000H堆棧段低地址高地址.間接尋址方式.存放器相對尋址方式有效地址是
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024至2030年箱式畫架項(xiàng)目投資價值分析報告
- 2024年農(nóng)業(yè)施肥市場調(diào)研與分析服務(wù)合同3篇
- 2025年酒水購銷合同模板
- 2024年度建筑垃圾處理與資源化利用施工安裝合同3篇
- 2024至2030年汽車室內(nèi)后視鏡項(xiàng)目投資價值分析報告
- 企業(yè)產(chǎn)租賃合同范文
- 2024年圓管涵涵道工程材料購銷與技術(shù)支持合同3篇
- 2024年度打印機(jī)維修與零配件供應(yīng)合同范本3篇
- 2024年度渣土運(yùn)輸勞務(wù)合同環(huán)保風(fēng)險評估范本3篇
- 2024年地產(chǎn)廣告折頁定制化服務(wù)與品牌推廣合同3篇
- 個人租房合同協(xié)議書(5篇)
- 新修訂中華人民共和國行政許可法全文解讀學(xué)習(xí)
- 廣東省廣州市花都區(qū)2024年七年級上學(xué)期期末數(shù)學(xué)試題【附答案】
- 期末測試模擬練習(xí) (含答案) 江蘇省蘇州市2024-2025學(xué)年統(tǒng)編版語文七年級上冊
- 品質(zhì)年度總結(jié)及來年計(jì)劃
- 學(xué)生體質(zhì)健康存在的主要問題及改進(jìn)措施
- 2024年執(zhí)業(yè)藥師資格繼續(xù)教育定期考試題庫(附含答案)
- 建筑幕墻工程檢測知識考試題庫500題(含答案)
- 鋼棚鋼結(jié)構(gòu)施工方案
- 新版第三類醫(yī)療器械分類目錄
- 安防主管崗位招聘面試題及回答建議(某大型集團(tuán)公司)2025年
評論
0/150
提交評論