版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、關(guān)于指令尋址第一張,PPT共八十五頁,創(chuàng)作于2022年6月2什么是指令系統(tǒng)計算機(jī)的指令系統(tǒng)就是指該計算機(jī)能夠執(zhí)行的全部指令的集合。每種計算機(jī)都有它支持的指令集合。 16位8086指令系統(tǒng)是整個Intel 80 x86 系列微處理器指令系統(tǒng)的基礎(chǔ)。本章內(nèi)容是本課程的一個關(guān)鍵內(nèi)容。第二張,PPT共八十五頁,創(chuàng)作于2022年6月3第2章的重點(diǎn)本章的重點(diǎn)是理解8086常用指令的功能本章的關(guān)鍵是熟悉8086的寄存器組本章的難點(diǎn)是8086的各種尋址方式 可采用調(diào)試程序 DEBUG進(jìn)行實踐第三張,PPT共八十五頁,創(chuàng)作于2022年6月4內(nèi)部數(shù)據(jù)總線控制總線數(shù)據(jù)總線地址總線暫存器累加器ALU標(biāo)志寄存器指令寄存
2、指令譯碼時序和控制邏輯通 用寄存器組地 址寄存器組地址總線控制數(shù)據(jù)總線控制2.1.1 8位微處理器的內(nèi)部結(jié)構(gòu)算術(shù)邏輯單元(運(yùn)算器)寄存器組指令處理單元(控制器)第四張,PPT共八十五頁,創(chuàng)作于2022年6月52.1.2 8088/8086的功能結(jié)構(gòu)8088的內(nèi)部結(jié)構(gòu)從功能分成兩個單元總線接口單元BIU管理8088與系統(tǒng)總線的接口,負(fù)責(zé)CPU對存儲器和外設(shè)進(jìn)行訪問執(zhí)行單元EU負(fù)責(zé)指令的譯碼、執(zhí)行和數(shù)據(jù)的運(yùn)算兩個單元相互獨(dú)立,分別完成各自操作兩個單元可以并行執(zhí)行,實現(xiàn)指令取指和執(zhí)行的流水線操作第五張,PPT共八十五頁,創(chuàng)作于2022年6月6調(diào)試程序DEBUGDEBUG是常用的匯編語言級調(diào)試工具,為
3、匯編語言程序員提供了分析指令、跟蹤程序的有效手段。常用DEBUG命令:A 匯編 U 反匯編T 單步執(zhí)行 G 斷點(diǎn)執(zhí)行D 數(shù)據(jù)顯示 R 寄存器第六張,PPT共八十五頁,創(chuàng)作于2022年6月72.1 8086的寄存器組8086的寄存器(如圖2.1)都為16位,分為:通用寄存器8AX/BX/CX/DX BP/SP DI/SI指令指針寄存器1IP標(biāo)志寄存器1PSW段寄存器4 CS/SS/DS/ES掌握通用寄存器的作用熟悉PSW中各個標(biāo)志的含義切實理解存儲器組織和存儲空間分段的概念第七張,PPT共八十五頁,創(chuàng)作于2022年6月8圖2.1 8086的寄存器組第八張,PPT共八十五頁,創(chuàng)作于2022年6月9
4、通用寄存器8086的16位通用寄存器是:AXBXCXDXSIDIBPSP 其中,前4個數(shù)據(jù)寄存器都還可以分成高8位和低8位兩個獨(dú)立的寄存器,它們是: AH BH CH DH AL BL CL DL對其中某個8位寄存器的操作,并不影響它所對應(yīng)的另外一個8位寄存器。第九張,PPT共八十五頁,創(chuàng)作于2022年6月10數(shù)據(jù)寄存器數(shù)據(jù)寄存器用來存放計算的結(jié)果和操作數(shù)每個寄存器又有它們各自的專用目的:AX16位累加器,使用頻度最高,用于算術(shù)、邏輯運(yùn)算以及與外設(shè)傳送信息等;AL為8位累加器。BX基址寄存器,常用來做基址指針,指向一批連續(xù)存放操作數(shù)的基地址。CX計數(shù)器,作為循環(huán)和串操作等指令中的隱含計數(shù)器。D
5、X數(shù)據(jù)寄存器,用來存放外設(shè)端口的16位地址,或雙字長數(shù)據(jù)的高16位。第十張,PPT共八十五頁,創(chuàng)作于2022年6月11變址寄存器變址寄存器常用于存儲器尋址時提供地址SI是源變址寄存器DI是目的變址寄存器在串操作類指令中,SI和DI具有特別的功能第十一張,PPT共八十五頁,創(chuàng)作于2022年6月12指針寄存器指針寄存器用于尋址內(nèi)存堆棧內(nèi)的數(shù)據(jù)SP為堆棧指針寄存器,指示棧頂?shù)钠频刂贰P不能再用于其他目的,具有專用性BP為基址指針寄存器,表示數(shù)據(jù)在堆棧段中的基地址SP/BP寄存器與SS段寄存器聯(lián)合使用以確定堆棧段中的存儲單元地址詳見堆棧操作指令第十二張,PPT共八十五頁,創(chuàng)作于2022年6月13堆
6、棧的概念堆棧(Stack)是主存中一個特殊的區(qū)域。它采用先進(jìn)后出FILO(First In Last Out)或后進(jìn)先出LIFO(Last In First Out)的原則進(jìn)行存取操作,而不是隨機(jī)存取操作方式。堆棧指針?biāo)甘緱m斘恢?,?086中,棧頂由SS和SP共同指示,即SS:SP。堆棧操作處理器自動維持(子程序調(diào)用時的斷點(diǎn)處理)用戶操作(PISH/POP指令)詳見堆棧操作指令第十三張,PPT共八十五頁,創(chuàng)作于2022年6月148088/8086的堆棧操作特點(diǎn)向下生長向低地址方向生長;雙字節(jié)操作高對高,低對低;“棧頂總滿”棧頂已經(jīng)堆有數(shù)據(jù)。PUSH AXALAH原棧頂新棧頂POP BXBL
7、BH低址第十四張,PPT共八十五頁,創(chuàng)作于2022年6月15指令指針寄存器IP指令指針寄存器IP,指示代碼段中指令的偏移地址它與代碼段寄存器CS聯(lián)用,確定下一條指令的物理地址計算機(jī)通過CS : IP寄存器來取指,從而控制指令序列的執(zhí)行流程IP寄存器是一個專用寄存器,用戶不能直接訪問。第十五張,PPT共八十五頁,創(chuàng)作于2022年6月16標(biāo)志寄存器標(biāo)志(Flag)用于反映指令執(zhí)行結(jié)果或控制指令執(zhí)行形式。8086處理器中各種常用的標(biāo)志形成了一個16位的標(biāo)志寄存器FLAGS(也稱程序狀態(tài)字PSW寄存器)。OF1115 12DF10IF9TF8SF7ZF65AF43PF21CF0控制反映結(jié)果狀態(tài)反應(yīng)運(yùn)算
8、過程第十六張,PPT共八十五頁,創(chuàng)作于2022年6月17標(biāo)志的作用指令的執(zhí)行與標(biāo)志有很大關(guān)系。標(biāo)志分成兩類:狀態(tài)標(biāo)志用來記錄程序運(yùn)行結(jié)果的狀態(tài)信息,許多指令的執(zhí)行都將自動地改變它。CF OF AF SF ZF PF控制標(biāo)志可由用戶根據(jù)需要用指令進(jìn)行設(shè)置,用于控制處理器的具體工作方式。DF IF TF第十七張,PPT共八十五頁,創(chuàng)作于2022年6月18進(jìn)位標(biāo)志CF(Carry Flag)當(dāng)運(yùn)算結(jié)果的最高有效位有進(jìn)位(加法)或借位(減法)時,進(jìn)位標(biāo)志置1,即CF = 1;否則 CF=0。例如(以8位運(yùn)算為例,8088中為16位):3AH + 7CHB6H沒有進(jìn)位:CF=0AAH + 7CH26H有
9、進(jìn)位:CF=1(1)第十八張,PPT共八十五頁,創(chuàng)作于2022年6月19全零標(biāo)志ZF(Zero Flag)若運(yùn)算結(jié)果為全0,則ZF=1,否則ZF=0。例如:3AH + 7CHB6H結(jié)果不是零:ZF=086H + 7CH00H結(jié)果是全零:ZF=1注意:ZF為1表示的結(jié)果是0(1)第十九張,PPT共八十五頁,創(chuàng)作于2022年6月20符號標(biāo)志SF(Sign Flag)運(yùn)算結(jié)果最高位為1,則SF=1;否則SF=0。例如:3AH + 7CHB6H最高位D71:SF=186H + 7CH00H最高位D70:SF=0有符號數(shù)利用最高有效位(MSB)來表示它的符號。所以,運(yùn)算結(jié)果的MSB與符號標(biāo)志SF相一致。
10、(1)第二十張,PPT共八十五頁,創(chuàng)作于2022年6月21奇偶標(biāo)志PF(Parity Flag)當(dāng)運(yùn)算結(jié)果最低字節(jié)中“1”的個數(shù)為零或偶數(shù)時,PF=1;否則PF=0(奇校驗)。例如:3AH + 7CHB6H10110110B,結(jié)果中有5個1,是奇數(shù),則 PF=0注意:PF標(biāo)志僅反映最低8位中“1”的個數(shù)是偶或奇,即使是進(jìn)行16位字操作。第二十一張,PPT共八十五頁,創(chuàng)作于2022年6月22溢出標(biāo)志OF(Overflow Flag)若算術(shù)運(yùn)算的結(jié)果有溢出,則OF=1;否則 OF0。例如:3AH + 7CHB6H產(chǎn)生溢出:OF=1AAH + 7CH26H沒有溢出:OF=0問題:什么是溢出?溢出和進(jìn)
11、位有什么區(qū)別?處理器怎么處理,程序員如何運(yùn)用?如何判斷是否溢出?(1)第二十二張,PPT共八十五頁,創(chuàng)作于2022年6月23什么是溢出“溢出”針對有符號數(shù)處理器內(nèi)部以補(bǔ)碼表示有符號數(shù)8位表示范圍是:-128 +127 16位表示范圍是:-32768 +32767 如果運(yùn)算結(jié)果超出了這個范圍,就是產(chǎn)生了溢出,溢出發(fā)生時,說明有符號數(shù)的運(yùn)算結(jié)果不正確以8位運(yùn)算為例: 3AH + 7CHB6H即 58 + 124182結(jié)果超出-128127故溢出,所以O(shè)F=1另一方面,補(bǔ)碼B6H表達(dá)真值是-74,顯然運(yùn)算結(jié)果也不正確。第二十三張,PPT共八十五頁,創(chuàng)作于2022年6月24溢出標(biāo)志和進(jìn)位標(biāo)志的區(qū)別溢出
12、標(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)不正確。請看例子第二十四張,PPT共八十五頁,創(chuàng)作于2022年6月25溢出和進(jìn)位的對比例1:3AH + 7CHB6H無符號運(yùn)算:58124182 不超范圍,無進(jìn)位有符號運(yùn)算:58124182 超范圍,有溢出例2:AAH + 7CH26H無符號運(yùn)算:170124294,超范圍,有進(jìn)位有符號運(yùn)算:8612428 ,不超范圍,無溢出(1)第二十五張,PPT共八十五頁,創(chuàng)作于2022年6月26如何運(yùn)用溢出和進(jìn)位處理器對兩個操作數(shù)進(jìn)行運(yùn)算時,根據(jù)無符
13、號運(yùn)算有無進(jìn)位來設(shè)置進(jìn)位標(biāo)志CF;根據(jù)有符號運(yùn)算是否超出表示范圍來設(shè)置溢出標(biāo)志OF。應(yīng)該利用哪個標(biāo)志,則由程序員來決定。如果參加運(yùn)算的操作數(shù)是無符號數(shù),用戶應(yīng)該關(guān)心進(jìn)位標(biāo)志如果參加運(yùn)算的操作數(shù)是有符號數(shù),用戶應(yīng)該關(guān)心溢出標(biāo)志。第二十六張,PPT共八十五頁,創(chuàng)作于2022年6月27如何判斷CF標(biāo)志和OF標(biāo)志(1)以8位減運(yùn)算位例,判斷CF標(biāo)志和OF標(biāo)志:A8H-67H=168-103=65 無符號運(yùn)算夠減:CF=0A8H-67H=-88-103=-192 有符號運(yùn)算1010 1000 0110 0111有: 1010 1000 + 1001 1001 1010 1000+ 1001 100110
14、100 0001有進(jìn)有出/無進(jìn)無出 不溢出有進(jìn)無出/無進(jìn)有出 溢出無進(jìn)有出:OF=1第二十七張,PPT共八十五頁,創(chuàng)作于2022年6月28如何判斷CF標(biāo)志和OF標(biāo)志(2)以8位加運(yùn)算位例,判斷CF標(biāo)志和OF標(biāo)志:A8H+67H=168+103=271 無符號運(yùn)算 有進(jìn)位:CF=1A8H+67H=-88+103=15 有符號運(yùn)算 1010 1000+ 0110 011110000 1111有進(jìn)有出/無進(jìn)無出 不溢出有進(jìn)無出/無進(jìn)有出 溢出有進(jìn)有出:OF=0第二十八張,PPT共八十五頁,創(chuàng)作于2022年6月29輔助進(jìn)位標(biāo)志AF(Auxiliary Carry Flag)運(yùn)算時D3位(低半字節(jié))有進(jìn)
15、位或借位時,AF=1;否則AF=0。例如:3AH + 7CHB6H D3向前有進(jìn)位:AF=1這個標(biāo)志主要由處理器內(nèi)部使用,用于十進(jìn)制算術(shù)運(yùn)算的調(diào)整,用戶一般不必關(guān)心。第二十九張,PPT共八十五頁,創(chuàng)作于2022年6月30方向標(biāo)志DF(Direction Flag)用于串操作指令中,控制地址的變化方向:設(shè)置DF0,串操作后存儲器地址自動增量(增址) ;設(shè)置DF1,串操作后存儲器地址自動減量(減址) 。CLD 指令復(fù)位方向標(biāo)志:DF0STD 指令置位方向標(biāo)志:DF1第三十張,PPT共八十五頁,創(chuàng)作于2022年6月31中斷允許標(biāo)志IF(Interrupt-enable Flag)用于控制外部可屏蔽中
16、斷是否可以被處理器響應(yīng):設(shè)置IF1,則允許中斷;設(shè)置IF0,則禁止中斷。CLI 指令復(fù)位中斷標(biāo)志:IF0STI 指令置位中斷標(biāo)志:IF1第三十一張,PPT共八十五頁,創(chuàng)作于2022年6月32陷阱標(biāo)志TF(Trap Flag)用于控制處理器是否進(jìn)入單步執(zhí)行方式:設(shè)置TF0,處理器正常工作;設(shè)置TF1,處理器每執(zhí)行一條指令就中斷一次,中斷編號為 1 (稱單步中斷) TF 也被稱為單步標(biāo)志。單步執(zhí)行和單步調(diào)試?yán)脝尾街袛嗫蓪Τ绦蜻M(jìn)行逐條指令的調(diào)試。這種逐條指令調(diào)試程序的方法就是單步調(diào)試。第三十二張,PPT共八十五頁,創(chuàng)作于2022年6月33變址寄存器變址寄存器常用于存儲器尋址時提供地址SI是源變址寄
17、存器DI是目的變址寄存器在串操作類指令中,SI和DI具有特別的功能第三十三張,PPT共八十五頁,創(chuàng)作于2022年6月34指針寄存器指針寄存器用于尋址內(nèi)存堆棧內(nèi)的數(shù)據(jù)SP為堆棧指針寄存器,指示棧頂?shù)钠频刂?。SP不能再用于其他目的,具有專用性BP為基址指針寄存器,表示數(shù)據(jù)在堆棧段中的基地址SP/BP寄存器與SS段寄存器聯(lián)合使用以確定堆棧段中的存儲單元地址詳見堆棧操作指令第三十四張,PPT共八十五頁,創(chuàng)作于2022年6月35堆棧的概念堆棧(Stack)是主存中一個特殊的區(qū)域它采用先進(jìn)后出FILO(First In Last Out)或后進(jìn)先出LIFO(Last In First Out)的原則進(jìn)行
18、存取操作,而不是隨機(jī)存取操作方式。堆棧操作處理器自動維持(子程序調(diào)用時的斷點(diǎn)處理)用戶操作(PISH/POP指令)在8086中,棧頂由SS和SP共同指示。第三十五張,PPT共八十五頁,創(chuàng)作于2022年6月36數(shù)據(jù)的存儲格式計算機(jī)中信息的單位有:位(bit)、字節(jié)(byte)、字(word)、雙字(double word)等在存儲器中,信息的存儲單元是:字節(jié)80 x86微處理器對多字節(jié)數(shù)據(jù)采用:小端方式(little endian)存儲的數(shù)據(jù)如果對齊邊界,則存取速度較快參見圖2.3第三十六張,PPT共八十五頁,創(chuàng)作于2022年6月37圖2.3 8086的存儲格式第三十七張,PPT共八十五頁,創(chuàng)作
19、于2022年6月38信息的表示單位位bit:存儲一位二進(jìn)制數(shù):0或1。字節(jié)Byte : 8位二進(jìn)制,D7D0。字Word: 16位/2個字節(jié),D15D0。雙字Double:32位/4個字節(jié),D31D0。最低有效位LSB(Least Significant Bit):指數(shù)據(jù)的最低位,即D0位;最高有效位MSB(Most Significant Bit):指數(shù)據(jù)的最高位,對應(yīng)字節(jié)、字、雙字分別指D7、D15、D31位。第三十八張,PPT共八十五頁,創(chuàng)作于2022年6月39存儲單元及其存儲內(nèi)容每個存儲單元都有一個編號存儲器地址每個存儲單元存放一個字節(jié)的內(nèi)容例如:0002H單元存放有一個數(shù)據(jù)34H00
20、02H34H參見圖2.3第三十九張,PPT共八十五頁,創(chuàng)作于2022年6月40小端方式多字節(jié)數(shù)據(jù)在存儲器中占據(jù)多個連續(xù)的存儲單元:存放時,低字節(jié)存于低地址,高字節(jié)存于高地址;多字節(jié)數(shù)據(jù)占據(jù)的地址空間用它的低地址來表示。例如:圖2.3中,2號“字”單元: 0002H = 1234H 2號“雙字”單元: 0002H = 78561234H80 x86處理器的“低對低、高對高”的存儲形式,被稱為“小端方式”;相對應(yīng)還存在“大端方式(big endian)”。第四十張,PPT共八十五頁,創(chuàng)作于2022年6月41數(shù)據(jù)的地址對齊同一個存儲器地址可以表示為:字節(jié)單元地址、字單元地址、雙字單元地址等等(視指令
21、的具體情況)。如 mov word ptr 2000H, 10H mov byte ptr 2000H, 10H將字單元安排在偶地址(xx.xx0 B),將雙字單元安排在模4地址(xxxx00 B)的做法,被稱為“地址對齊(Align)”。對于地址不對齊的數(shù)據(jù),處理器訪問時,需要付出額外的訪問時間。要取得較高的存取速度,應(yīng)該將數(shù)據(jù)的地址對齊。第四十一張,PPT共八十五頁,創(chuàng)作于2022年6月42存儲器的分段管理8088有20條地址線,最大可尋址空間為 2201MB,可尋址的地址范圍為 00000HFFFFFH該地址稱物理地址硬件用20位的物理地址來對存儲單元進(jìn)行尋址第四十二張,PPT共八十五頁
22、,創(chuàng)作于2022年6月43存儲器的分段管理由于8088中的地址寄存器都是16位的,用戶不能直接使用20位的物理地址,編程時需要使用邏輯地址來尋址存儲單元。邏輯地址由兩個16位數(shù)構(gòu)成,其形式為: 段的起始地址 : 段內(nèi)的偏移地址(16位段地址) :( 16位偏移量) 第四十三張,PPT共八十五頁,創(chuàng)作于2022年6月44存儲器的分段管理8088將存儲空間分為多個邏輯段(段Segment)來進(jìn)行管理,要求:段的20位的起始地址(xxxxxH)其低4位必須為0(xxxx0H),所以可以將它們省略,然后用1個16位數(shù)來表示表示段的首地址。每段長度限216=64KB,所以段內(nèi)偏移地址可以用1個16位數(shù)來
23、表示(xxxxH);所以有: 段的起始地址 : 段內(nèi)的偏移地址(16位段地址) :( 16位偏移量)第四十四張,PPT共八十五頁,創(chuàng)作于2022年6月45存儲器的分段管理邏輯地址的表示段地址:偏移地址地址偏移量(xxxxH)段首(xxxx0H)低址段尾某邏輯段64KB某尋址單元第四十五張,PPT共八十五頁,創(chuàng)作于2022年6月46存儲器的分段管理1MB 最多可分為16個不重迭的段。實際上,兩個不同的邏輯段可以交疊,或者完全重疊。一個存儲單元可以擁有多個邏輯地址,但只可能擁有一個唯一的物理地址。例如:物理地址: 00200H邏輯地址: 0000H : 0200H邏輯地址: 0020H : 000
24、0H第四十六張,PPT共八十五頁,創(chuàng)作于2022年6月47物理地址和邏輯地址每個存儲單元都有一個唯一物理地址(00000HFFFFFH) ,20位,該地址在指令執(zhí)行時由地址加法器形成,并進(jìn)行硬件尋址。地址加法器的具體做法:段地址左移4位,然后加上偏移地址就得到20位物理地址。用戶編程時采用邏輯地址,其形式為:段的首地址 : 段內(nèi)偏移地址它們由兩個16位的無符號數(shù)構(gòu)成 。邏輯地址“1460H:100H” = 物理地址14700H第四十七張,PPT共八十五頁,創(chuàng)作于2022年6月48段地址段地址說明邏輯段在存儲器中的起始位置,為模16地址:xxxx0H,省略低4位后,可用1個16位數(shù)來表示,該地址
25、可被存放在不同的段寄存器CS/SS/DS/ES中。偏移地址說明尋址單元距離段首的偏移量,因每段長度不超過64KB,所以偏移地址也可用1個16位數(shù)來表示。第四十八張,PPT共八十五頁,創(chuàng)作于2022年6月49段寄存器和邏輯段8086有4個16位的段寄存器:CS(代碼段寄存器)用來指明代碼段的首地址SS(堆棧段寄存器)指明堆棧段的首地址DS(數(shù)據(jù)段寄存器)指明數(shù)據(jù)段的首地址ES(附加段寄存器)指明附加段的首地址段寄存器用來指明某個段的起始地址。在尋址時,以上4個段寄存器提供的段地址有著不同的用法。第四十九張,PPT共八十五頁,創(chuàng)作于2022年6月50代碼段(Code Segment)代碼段主要用來
26、存放指令代碼(程序),也可存放數(shù)據(jù):代碼段寄存器CS存放代碼段的段地址,指令指針寄存器IP指示下條指令的偏移地址;處理器利用CS:IP取得下一條要執(zhí)行的指令。第五十張,PPT共八十五頁,創(chuàng)作于2022年6月51堆棧段(Stack Segment)堆棧段用于堆棧,用于保存程序斷點(diǎn)、和現(xiàn)場、向子程序傳遞參數(shù)等:堆棧段寄存器SS存放堆棧段的段地址,堆棧指針寄存器SP指示堆棧棧頂?shù)钠频刂?;處理器利用SS:SP操作堆棧頂?shù)臄?shù)據(jù)。第五十一張,PPT共八十五頁,創(chuàng)作于2022年6月52數(shù)據(jù)段(Data Segment)數(shù)據(jù)段存放程序所使用的數(shù)據(jù):數(shù)據(jù)段寄存器DS存放數(shù)據(jù)段的段地址,各種存儲器尋址方式得到存
27、儲器中操作數(shù)的偏移地址(有效地址EA) 。處理器利用DS:EA存取數(shù)據(jù)段中的數(shù)據(jù)。第五十二張,PPT共八十五頁,創(chuàng)作于2022年6月53附加段(Extra Segment)附加段是附加的數(shù)據(jù)段,也用于數(shù)據(jù)的保存:附加段寄存器ES存放附加段的段地址,通過各種主存尋址方式(有效地址EA)得到存儲器中操作數(shù)的偏移地址。處理器利用ES:EA存取附加段中的數(shù)據(jù)。串操作指令將附加段作為其目的操作數(shù)的存放區(qū)域第五十三張,PPT共八十五頁,創(chuàng)作于2022年6月54程序員如何分配各個邏輯段程序的指令序列必須安排在代碼段;程序使用的堆棧一定在堆棧段;程序中的數(shù)據(jù)默認(rèn)是安排在數(shù)據(jù)段,也經(jīng)常安排在附加段,尤其是串操作
28、的目的區(qū)必須是附加段。數(shù)據(jù)的存放比較靈活,實際上可以存放在任何一種邏輯段中。程序中如何指明數(shù)據(jù)所在的邏輯段呢?第五十四張,PPT共八十五頁,創(chuàng)作于2022年6月55段跨越前綴指令沒有指明時,一般的數(shù)據(jù)訪問在DS段;若使用BP訪問存儲器,則在SS段。默認(rèn)的情況允許改變,需要使用段跨越前綴指令,8086指令系統(tǒng)中共有4個:CS: 代碼段超越,使用代碼段的數(shù)據(jù)SS:堆棧段超越,使用堆棧段的數(shù)據(jù)DS:數(shù)據(jù)段超越,使用數(shù)據(jù)段的數(shù)據(jù)ES:附加段超越,使用附加段的數(shù)據(jù)第五十五張,PPT共八十五頁,創(chuàng)作于2022年6月56段超越的例子沒有段超越的指令實例:MOV AX, 2000H;AXDS:2000H,;從
29、默認(rèn)的DS數(shù)據(jù)段取出數(shù)據(jù)采用段超越前綴的指令實例:MOV AX, ES:2000H;AXES:2000H,;從指定的ES附加段取出數(shù)據(jù)第五十六張,PPT共八十五頁,創(chuàng)作于2022年6月57段寄存器的使用規(guī)定(表2.1)存儲器訪問方式默認(rèn)段寄存器 段跨越偏移地址取指令 CS 無 IP堆棧操作 SS 無 SP一般數(shù)據(jù)訪問 DSCS/ES/SS有效地址EA下列特殊情況除外串操作的源操作數(shù) DSCS/ES/SS SI串操作的目的操作數(shù) ES 無 DIBP基址的尋址方式 SSCS/DS/ES有效地址EA第五十七張,PPT共八十五頁,創(chuàng)作于2022年6月58程序分段的圖例(圖2.4)8086對邏輯段的要求
30、是:段地址低4位均為0,每段最大不超過64KB。8086對每個段不要求必須是64KB,不要求各段之間完全分開、即可以重疊。圖2.4a是各自獨(dú)立段的分配示例圖2.4b是相互重疊段的分配示例1MB空間最多能分成多少個段?1MB空間最少能分成多少個段?第五十八張,PPT共八十五頁,創(chuàng)作于2022年6月591MB空間的分段1MB空間最多能分成多少個邏輯段?每隔16個存儲單元就可以開始一個段,所以1MB最多可以有:2201621664K 個段1MB空間最少能分成多少個邏輯段?每隔64K個存儲單元開始一個段,所以1MB最少可以有:22021616 個段第五十九張,PPT共八十五頁,創(chuàng)作于2022年6月60
31、圖2.4a 各個邏輯段獨(dú)立的實例第六十張,PPT共八十五頁,創(chuàng)作于2022年6月61圖2.4b 各個邏輯段重疊的實例第六十一張,PPT共八十五頁,創(chuàng)作于2022年6月622.1節(jié)的總結(jié)8086有8個8位通用寄存器、8個16位通用寄存器8086有6個狀態(tài)標(biāo)志和3個控制標(biāo)志8086將1MB存儲空間分段管理,有4個段寄存器,對應(yīng)4種邏輯段8086有4個段超越前綴指令,用于明確指定數(shù)據(jù)所在的邏輯段。第六十二張,PPT共八十五頁,創(chuàng)作于2022年6月632.2 8086的尋址方式本節(jié)從8086的機(jī)器代碼格式入手,論述:立即數(shù)尋址方式寄存器尋址方式存儲器尋址方式進(jìn)而熟悉8086匯編語言指令格式,尤其是其中
32、操作數(shù)的表示方法;為展開8086指令系統(tǒng)做好準(zhǔn)備。第六十三張,PPT共八十五頁,創(chuàng)作于2022年6月64指令構(gòu)成指令由操作碼和操作數(shù)兩部分構(gòu)成操作碼說明計算機(jī)要執(zhí)行哪種操作,如傳送、運(yùn)算、移位、跳轉(zhuǎn)等操作,它是指令中不可缺少的組成部分。操作數(shù)是指令執(zhí)行的參與者,即各種操作的對象。有些指令不需要操作數(shù),通常的指令都有一個或兩個操作數(shù),也有個別指令有3個甚至4個操作數(shù)。操作碼操作數(shù)第六十四張,PPT共八十五頁,創(chuàng)作于2022年6月65指令中的操作碼和操作數(shù)每種指令的操作碼: 用一個唯一的助記符表示(英文縮寫), 對應(yīng)著一個二進(jìn)制編碼的機(jī)器指令。指令中的操作數(shù): 可以是一個具體的數(shù)值(立即數(shù)); 可
33、以是存放數(shù)據(jù)的寄存器; 可以用多種方式指明尋址單元在存儲器中的地址。第六十五張,PPT共八十五頁,創(chuàng)作于2022年6月66尋址方式指令系統(tǒng)設(shè)計了多種操作數(shù)的來源,尋找操作數(shù)的過程就是操作數(shù)的尋址方式。操作數(shù)采取哪一種尋址方式,會影響機(jī)器運(yùn)行的速度和效率。如何尋址一個操作數(shù)對程序的設(shè)計來講很重要。第六十六張,PPT共八十五頁,創(chuàng)作于2022年6月678086的機(jī)器代碼(Machine Code)格式指令長度:17個字節(jié)操作碼:12個字節(jié),操作數(shù):05個字節(jié),其中:“mod reg r/m”字節(jié)表明所采用的尋址方式,“位移量”字節(jié)給出某些尋址方式需要的對基地址的偏移量,“立即數(shù)”字節(jié)給出立即尋址方
34、式需要的數(shù)值。操作數(shù)的各個字段有多種組合,如表2.2所示第六十七張,PPT共八十五頁,創(chuàng)作于2022年6月68指令格式操作碼 操作數(shù)1, 操作數(shù)2;注釋操作數(shù)1,稱為目的操作數(shù) dest,它不僅可以作為指令操作的一個源對象,還用來存放指令操作的結(jié)果。操作數(shù)2,稱為源操作數(shù) src,它表示參與指令操作的一個源對象;分號后的內(nèi)容是對指令的解釋。第六十八張,PPT共八十五頁,創(chuàng)作于2022年6月69傳送指令MOV的格式 MOV指令的功能是將源操作數(shù)src傳送至目的操作數(shù)destMOV dest,src;destsrc ;MOV AL, 05H;AL05HMOV BX, AX;BXAXMOV AX,
35、SI;AXDS:SIMOV AX, BP+06H;AXSS:BP+06HMOV AX, BX+SI;AXDS:BX+SI功能演示第六十九張,PPT共八十五頁,創(chuàng)作于2022年6月70傳送指令MOV的功能演示源操作數(shù) src目的操作數(shù) dest返回30H30H被傳送的數(shù)據(jù)第七十張,PPT共八十五頁,創(chuàng)作于2022年6月71立即數(shù)尋址方式指令中的操作數(shù)直接存放在機(jī)器代碼中,緊跟在操作碼之后(操作數(shù)作為指令的一部分存放在操作碼之后的主存單元中)。這種操作數(shù)被稱為立即數(shù)imm它可以是8位數(shù)值i8(00HFFH),也可以是16位數(shù)值i16(0000HFFFFH)。立即數(shù)尋址方式常用來給寄存器賦值。MOV
36、 AL,05H;AL05HMOV AX,0102H;AX0102H第七十一張,PPT共八十五頁,創(chuàng)作于2022年6月72寄存器尋址方式操作數(shù)存放在CPU的內(nèi)部寄存器reg中,可以是:8位寄存器r8:AH/AL/BH/BL/CH/CL/DH/DL;16位寄存器r16:AX/BX/CX/DX/SI/DI/BP/SP;4個段寄存器seg:CS/DS/SS/ES。MOV AX,1234H ;AX1234HMOV BX,AX;BXAX第七十二張,PPT共八十五頁,創(chuàng)作于2022年6月73存儲器尋址方式指令中給出操作數(shù)的主存地址信息(偏移地址,稱之為有效地址EA),而段地址在默認(rèn)的或用段超越前綴指定的段寄
37、存器中。8086設(shè)計了多種存儲器尋址方式1、直接尋址方式2、寄存器間接尋址方式3、寄存器相對尋址方式4、基址變址尋址方式5、相對基址變址尋址方式第七十三張,PPT共八十五頁,創(chuàng)作于2022年6月74直接尋址方式有效地址在指令中直接給出默認(rèn)的段地址在DS段寄存器,可使用段超越前綴改變MOV AX,2000H ;AXDS:2000H;指令代碼:A10020MOV AX,ES:2000H ;AXES:2000H;指令代碼:26A10020第七十四張,PPT共八十五頁,創(chuàng)作于2022年6月75(寄存器)間接尋址方式有效地址存放在基址寄存器BX或變址寄存器SI、DI中。默認(rèn)的段地址在DS段寄存器,可使用
38、段超越前綴MOV AX,SI;AXDS:SI第七十五張,PPT共八十五頁,創(chuàng)作于2022年6月76(寄存器)相對尋址方式有效地址是寄存器內(nèi)容與有符號8位或16位位移量之和,寄存器可以是BX、BP或SI、DI。有效地址BX/BP/SI/DI8/16位位移量段地址對應(yīng)BX/SI/DI寄存器默認(rèn)是DS,對應(yīng)BP寄存器默認(rèn)是SS;可用段超越前綴改變。MOV AX,DI+06H;AXDS:DI+06HMOV AX,BP+06H;AXSS:BP+06H第七十六張,PPT共八十五頁,創(chuàng)作于2022年6月77基址變址尋址方式有效地址由基址寄存器(BX或BP)的內(nèi)容加上變址寄存器(SI或DI)的內(nèi)容構(gòu)成:有效地址BX/BPSI/DI段地址對應(yīng)BX基址寄存器默認(rèn)是DS,對應(yīng)BP基址寄存器默認(rèn)是SS;可用段超越前綴改變。MOV AX,BX+SI;AXDS:BX+SIMOV AX,BP+DI;AXSS:BP+DIMOV AX,DS:BP+DI;AXDS:BP+DI
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 蜜蜂身體形態(tài)特征與采蜜
- 小型礦井水及生活污水處理方案
- 高一化學(xué)教案:第一單元化學(xué)是認(rèn)識和創(chuàng)造物質(zhì)的科學(xué)
- 2024高中物理第一章電磁感應(yīng)章末質(zhì)量評估含解析粵教版選修3-2
- 2024高中語文第1單元論語蚜第4課己所不欲勿施于人練習(xí)含解析新人教版選修先秦諸子蚜
- 2024高中語文第五課言之有“理”第3節(jié)有話“好好說”-修改蹭練習(xí)含解析新人教版選修語言文字應(yīng)用
- 2024高中語文綜合評估含解析新人教版必修5
- 2024高考?xì)v史一輪復(fù)習(xí)方案專題十八20世紀(jì)的戰(zhàn)爭與和平第39講第一次世界大戰(zhàn)及凡爾賽-華盛頓體系下的世界教學(xué)案+練習(xí)人民版
- 小學(xué)民主監(jiān)督制度
- 二零二五年綠化垃圾處理與運(yùn)輸合作協(xié)議3篇
- 繼電保護(hù)試題庫(含參考答案)
- 《榜樣9》觀后感心得體會四
- 《水下拋石基床振動夯實及整平施工規(guī)程》
- 2025年云南大理州工業(yè)投資(集團(tuán))限公司招聘31人管理單位筆試遴選500模擬題附帶答案詳解
- 風(fēng)電危險源辨識及控制措施
- 《教師職業(yè)道德與政策法規(guī)》課程教學(xué)大綱
- 兒童傳染病預(yù)防課件
- 集裝箱活動房供需合同
- 山西省2022年中考道德與法治真題試卷(含答案)
- 《住院患者身體約束的護(hù)理》團(tuán)體標(biāo)準(zhǔn)解讀課件
- 《機(jī)床夾具設(shè)計》試卷5
評論
0/150
提交評論