![指令尋址精品課件_第1頁](http://file4.renrendoc.com/view/4dd927733aaeb2798e78d805c2985056/4dd927733aaeb2798e78d805c29850561.gif)
![指令尋址精品課件_第2頁](http://file4.renrendoc.com/view/4dd927733aaeb2798e78d805c2985056/4dd927733aaeb2798e78d805c29850562.gif)
![指令尋址精品課件_第3頁](http://file4.renrendoc.com/view/4dd927733aaeb2798e78d805c2985056/4dd927733aaeb2798e78d805c29850563.gif)
![指令尋址精品課件_第4頁](http://file4.renrendoc.com/view/4dd927733aaeb2798e78d805c2985056/4dd927733aaeb2798e78d805c29850564.gif)
![指令尋址精品課件_第5頁](http://file4.renrendoc.com/view/4dd927733aaeb2798e78d805c2985056/4dd927733aaeb2798e78d805c29850565.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、關于指令尋址第一張,PPT共八十五頁,創(chuàng)作于2022年6月2什么是指令系統(tǒng)計算機的指令系統(tǒng)就是指該計算機能夠執(zhí)行的全部指令的集合。每種計算機都有它支持的指令集合。 16位8086指令系統(tǒng)是整個Intel 80 x86 系列微處理器指令系統(tǒng)的基礎。本章內容是本課程的一個關鍵內容。第二張,PPT共八十五頁,創(chuàng)作于2022年6月3第2章的重點本章的重點是理解8086常用指令的功能本章的關鍵是熟悉8086的寄存器組本章的難點是8086的各種尋址方式 可采用調試程序 DEBUG進行實踐第三張,PPT共八十五頁,創(chuàng)作于2022年6月4內部數(shù)據(jù)總線控制總線數(shù)據(jù)總線地址總線暫存器累加器ALU標志寄存器指令寄存
2、指令譯碼時序和控制邏輯通 用寄存器組地 址寄存器組地址總線控制數(shù)據(jù)總線控制2.1.1 8位微處理器的內部結構算術邏輯單元(運算器)寄存器組指令處理單元(控制器)第四張,PPT共八十五頁,創(chuàng)作于2022年6月52.1.2 8088/8086的功能結構8088的內部結構從功能分成兩個單元總線接口單元BIU管理8088與系統(tǒng)總線的接口,負責CPU對存儲器和外設進行訪問執(zhí)行單元EU負責指令的譯碼、執(zhí)行和數(shù)據(jù)的運算兩個單元相互獨立,分別完成各自操作兩個單元可以并行執(zhí)行,實現(xiàn)指令取指和執(zhí)行的流水線操作第五張,PPT共八十五頁,創(chuàng)作于2022年6月6調試程序DEBUGDEBUG是常用的匯編語言級調試工具,為
3、匯編語言程序員提供了分析指令、跟蹤程序的有效手段。常用DEBUG命令:A 匯編 U 反匯編T 單步執(zhí)行 G 斷點執(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標志寄存器1PSW段寄存器4 CS/SS/DS/ES掌握通用寄存器的作用熟悉PSW中各個標志的含義切實理解存儲器組織和存儲空間分段的概念第七張,PPT共八十五頁,創(chuàng)作于2022年6月8圖2.1 8086的寄存器組第八張,PPT共八十五頁,創(chuàng)作于2022年6月9
4、通用寄存器8086的16位通用寄存器是:AXBXCXDXSIDIBPSP 其中,前4個數(shù)據(jù)寄存器都還可以分成高8位和低8位兩個獨立的寄存器,它們是: AH BH CH DH AL BL CL DL對其中某個8位寄存器的操作,并不影響它所對應的另外一個8位寄存器。第九張,PPT共八十五頁,創(chuàng)作于2022年6月10數(shù)據(jù)寄存器數(shù)據(jù)寄存器用來存放計算的結果和操作數(shù)每個寄存器又有它們各自的專用目的:AX16位累加器,使用頻度最高,用于算術、邏輯運算以及與外設傳送信息等;AL為8位累加器。BX基址寄存器,常用來做基址指針,指向一批連續(xù)存放操作數(shù)的基地址。CX計數(shù)器,作為循環(huán)和串操作等指令中的隱含計數(shù)器。D
5、X數(shù)據(jù)寄存器,用來存放外設端口的16位地址,或雙字長數(shù)據(jù)的高16位。第十張,PPT共八十五頁,創(chuàng)作于2022年6月11變址寄存器變址寄存器常用于存儲器尋址時提供地址SI是源變址寄存器DI是目的變址寄存器在串操作類指令中,SI和DI具有特別的功能第十一張,PPT共八十五頁,創(chuàng)作于2022年6月12指針寄存器指針寄存器用于尋址內存堆棧內的數(shù)據(jù)SP為堆棧指針寄存器,指示棧頂?shù)钠频刂贰P不能再用于其他目的,具有專用性BP為基址指針寄存器,表示數(shù)據(jù)在堆棧段中的基地址SP/BP寄存器與SS段寄存器聯(lián)合使用以確定堆棧段中的存儲單元地址詳見堆棧操作指令第十二張,PPT共八十五頁,創(chuàng)作于2022年6月13堆
6、棧的概念堆棧(Stack)是主存中一個特殊的區(qū)域。它采用先進后出FILO(First In Last Out)或后進先出LIFO(Last In First Out)的原則進行存取操作,而不是隨機存取操作方式。堆棧指針它指示棧頂位置,在8086中,棧頂由SS和SP共同指示,即SS:SP。堆棧操作處理器自動維持(子程序調用時的斷點處理)用戶操作(PISH/POP指令)詳見堆棧操作指令第十三張,PPT共八十五頁,創(chuàng)作于2022年6月148088/8086的堆棧操作特點向下生長向低地址方向生長;雙字節(jié)操作高對高,低對低;“棧頂總滿”棧頂已經堆有數(shù)據(jù)。PUSH AXALAH原棧頂新棧頂POP BXBL
7、BH低址第十四張,PPT共八十五頁,創(chuàng)作于2022年6月15指令指針寄存器IP指令指針寄存器IP,指示代碼段中指令的偏移地址它與代碼段寄存器CS聯(lián)用,確定下一條指令的物理地址計算機通過CS : IP寄存器來取指,從而控制指令序列的執(zhí)行流程IP寄存器是一個專用寄存器,用戶不能直接訪問。第十五張,PPT共八十五頁,創(chuàng)作于2022年6月16標志寄存器標志(Flag)用于反映指令執(zhí)行結果或控制指令執(zhí)行形式。8086處理器中各種常用的標志形成了一個16位的標志寄存器FLAGS(也稱程序狀態(tài)字PSW寄存器)。OF1115 12DF10IF9TF8SF7ZF65AF43PF21CF0控制反映結果狀態(tài)反應運算
8、過程第十六張,PPT共八十五頁,創(chuàng)作于2022年6月17標志的作用指令的執(zhí)行與標志有很大關系。標志分成兩類:狀態(tài)標志用來記錄程序運行結果的狀態(tài)信息,許多指令的執(zhí)行都將自動地改變它。CF OF AF SF ZF PF控制標志可由用戶根據(jù)需要用指令進行設置,用于控制處理器的具體工作方式。DF IF TF第十七張,PPT共八十五頁,創(chuàng)作于2022年6月18進位標志CF(Carry Flag)當運算結果的最高有效位有進位(加法)或借位(減法)時,進位標志置1,即CF = 1;否則 CF=0。例如(以8位運算為例,8088中為16位):3AH + 7CHB6H沒有進位:CF=0AAH + 7CH26H有
9、進位:CF=1(1)第十八張,PPT共八十五頁,創(chuàng)作于2022年6月19全零標志ZF(Zero Flag)若運算結果為全0,則ZF=1,否則ZF=0。例如:3AH + 7CHB6H結果不是零:ZF=086H + 7CH00H結果是全零:ZF=1注意:ZF為1表示的結果是0(1)第十九張,PPT共八十五頁,創(chuàng)作于2022年6月20符號標志SF(Sign Flag)運算結果最高位為1,則SF=1;否則SF=0。例如:3AH + 7CHB6H最高位D71:SF=186H + 7CH00H最高位D70:SF=0有符號數(shù)利用最高有效位(MSB)來表示它的符號。所以,運算結果的MSB與符號標志SF相一致。
10、(1)第二十張,PPT共八十五頁,創(chuàng)作于2022年6月21奇偶標志PF(Parity Flag)當運算結果最低字節(jié)中“1”的個數(shù)為零或偶數(shù)時,PF=1;否則PF=0(奇校驗)。例如:3AH + 7CHB6H10110110B,結果中有5個1,是奇數(shù),則 PF=0注意:PF標志僅反映最低8位中“1”的個數(shù)是偶或奇,即使是進行16位字操作。第二十一張,PPT共八十五頁,創(chuàng)作于2022年6月22溢出標志OF(Overflow Flag)若算術運算的結果有溢出,則OF=1;否則 OF0。例如:3AH + 7CHB6H產生溢出:OF=1AAH + 7CH26H沒有溢出:OF=0問題:什么是溢出?溢出和進
11、位有什么區(qū)別?處理器怎么處理,程序員如何運用?如何判斷是否溢出?(1)第二十二張,PPT共八十五頁,創(chuàng)作于2022年6月23什么是溢出“溢出”針對有符號數(shù)處理器內部以補碼表示有符號數(shù)8位表示范圍是:-128 +127 16位表示范圍是:-32768 +32767 如果運算結果超出了這個范圍,就是產生了溢出,溢出發(fā)生時,說明有符號數(shù)的運算結果不正確以8位運算為例: 3AH + 7CHB6H即 58 + 124182結果超出-128127故溢出,所以OF=1另一方面,補碼B6H表達真值是-74,顯然運算結果也不正確。第二十三張,PPT共八十五頁,創(chuàng)作于2022年6月24溢出標志和進位標志的區(qū)別溢出
12、標志OF和進位標志CF是兩個意義不同的標志進位標志表示無符號數(shù)運算結果是否超出范圍,運算結果仍然正確;溢出標志表示有符號數(shù)運算結果是否超出范圍,運算結果已經不正確。請看例子第二十四張,PPT共八十五頁,創(chuàng)作于2022年6月25溢出和進位的對比例1:3AH + 7CHB6H無符號運算:58124182 不超范圍,無進位有符號運算:58124182 超范圍,有溢出例2:AAH + 7CH26H無符號運算:170124294,超范圍,有進位有符號運算:8612428 ,不超范圍,無溢出(1)第二十五張,PPT共八十五頁,創(chuàng)作于2022年6月26如何運用溢出和進位處理器對兩個操作數(shù)進行運算時,根據(jù)無符
13、號運算有無進位來設置進位標志CF;根據(jù)有符號運算是否超出表示范圍來設置溢出標志OF。應該利用哪個標志,則由程序員來決定。如果參加運算的操作數(shù)是無符號數(shù),用戶應該關心進位標志如果參加運算的操作數(shù)是有符號數(shù),用戶應該關心溢出標志。第二十六張,PPT共八十五頁,創(chuàng)作于2022年6月27如何判斷CF標志和OF標志(1)以8位減運算位例,判斷CF標志和OF標志:A8H-67H=168-103=65 無符號運算夠減:CF=0A8H-67H=-88-103=-192 有符號運算1010 1000 0110 0111有: 1010 1000 + 1001 1001 1010 1000+ 1001 100110
14、100 0001有進有出/無進無出 不溢出有進無出/無進有出 溢出無進有出:OF=1第二十七張,PPT共八十五頁,創(chuàng)作于2022年6月28如何判斷CF標志和OF標志(2)以8位加運算位例,判斷CF標志和OF標志:A8H+67H=168+103=271 無符號運算 有進位:CF=1A8H+67H=-88+103=15 有符號運算 1010 1000+ 0110 011110000 1111有進有出/無進無出 不溢出有進無出/無進有出 溢出有進有出:OF=0第二十八張,PPT共八十五頁,創(chuàng)作于2022年6月29輔助進位標志AF(Auxiliary Carry Flag)運算時D3位(低半字節(jié))有進
15、位或借位時,AF=1;否則AF=0。例如:3AH + 7CHB6H D3向前有進位:AF=1這個標志主要由處理器內部使用,用于十進制算術運算的調整,用戶一般不必關心。第二十九張,PPT共八十五頁,創(chuàng)作于2022年6月30方向標志DF(Direction Flag)用于串操作指令中,控制地址的變化方向:設置DF0,串操作后存儲器地址自動增量(增址) ;設置DF1,串操作后存儲器地址自動減量(減址) 。CLD 指令復位方向標志:DF0STD 指令置位方向標志:DF1第三十張,PPT共八十五頁,創(chuàng)作于2022年6月31中斷允許標志IF(Interrupt-enable Flag)用于控制外部可屏蔽中
16、斷是否可以被處理器響應:設置IF1,則允許中斷;設置IF0,則禁止中斷。CLI 指令復位中斷標志:IF0STI 指令置位中斷標志:IF1第三十一張,PPT共八十五頁,創(chuàng)作于2022年6月32陷阱標志TF(Trap Flag)用于控制處理器是否進入單步執(zhí)行方式:設置TF0,處理器正常工作;設置TF1,處理器每執(zhí)行一條指令就中斷一次,中斷編號為 1 (稱單步中斷) TF 也被稱為單步標志。單步執(zhí)行和單步調試利用單步中斷可對程序進行逐條指令的調試。這種逐條指令調試程序的方法就是單步調試。第三十二張,PPT共八十五頁,創(chuàng)作于2022年6月33變址寄存器變址寄存器常用于存儲器尋址時提供地址SI是源變址寄
17、存器DI是目的變址寄存器在串操作類指令中,SI和DI具有特別的功能第三十三張,PPT共八十五頁,創(chuàng)作于2022年6月34指針寄存器指針寄存器用于尋址內存堆棧內的數(shù)據(jù)SP為堆棧指針寄存器,指示棧頂?shù)钠频刂贰P不能再用于其他目的,具有專用性BP為基址指針寄存器,表示數(shù)據(jù)在堆棧段中的基地址SP/BP寄存器與SS段寄存器聯(lián)合使用以確定堆棧段中的存儲單元地址詳見堆棧操作指令第三十四張,PPT共八十五頁,創(chuàng)作于2022年6月35堆棧的概念堆棧(Stack)是主存中一個特殊的區(qū)域它采用先進后出FILO(First In Last Out)或后進先出LIFO(Last In First Out)的原則進行
18、存取操作,而不是隨機存取操作方式。堆棧操作處理器自動維持(子程序調用時的斷點處理)用戶操作(PISH/POP指令)在8086中,棧頂由SS和SP共同指示。第三十五張,PPT共八十五頁,創(chuàng)作于2022年6月36數(shù)據(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:存儲一位二進制數(shù):0或1。字節(jié)Byte : 8位二進制,D7D0。字Word: 16位/2個字節(jié),D15D0。雙字Double:32位/4個字節(jié),D31D0。最低有效位LSB(Least Significant Bit):指數(shù)據(jù)的最低位,即D0位;最高有效位MSB(Most Significant Bit):指數(shù)據(jù)的最高位,對應字節(jié)、字、雙字分別指D7、D15、D31位。第三十八張,PPT共八十五頁,創(chuàng)作于2022年6月39存儲單元及其存儲內容每個存儲單元都有一個編號存儲器地址每個存儲單元存放一個字節(jié)的內容例如: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處理器的“低對低、高對高”的存儲形式,被稱為“小端方式”;相對應還存在“大端方式(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ù),處理器訪問時,需要付出額外的訪問時間。要取得較高的存取速度,應該將數(shù)據(jù)的地址對齊。第四十一張,PPT共八十五頁,創(chuàng)作于2022年6月42存儲器的分段管理8088有20條地址線,最大可尋址空間為 2201MB,可尋址的地址范圍為 00000HFFFFFH該地址稱物理地址硬件用20位的物理地址來對存儲單元進行尋址第四十二張,PPT共八十五頁
22、,創(chuàng)作于2022年6月43存儲器的分段管理由于8088中的地址寄存器都是16位的,用戶不能直接使用20位的物理地址,編程時需要使用邏輯地址來尋址存儲單元。邏輯地址由兩個16位數(shù)構成,其形式為: 段的起始地址 : 段內的偏移地址(16位段地址) :( 16位偏移量) 第四十三張,PPT共八十五頁,創(chuàng)作于2022年6月44存儲器的分段管理8088將存儲空間分為多個邏輯段(段Segment)來進行管理,要求:段的20位的起始地址(xxxxxH)其低4位必須為0(xxxx0H),所以可以將它們省略,然后用1個16位數(shù)來表示表示段的首地址。每段長度限216=64KB,所以段內偏移地址可以用1個16位數(shù)來
23、表示(xxxxH);所以有: 段的起始地址 : 段內的偏移地址(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í)行時由地址加法器形成,并進行硬件尋址。地址加法器的具體做法:段地址左移4位,然后加上偏移地址就得到20位物理地址。用戶編程時采用邏輯地址,其形式為:段的首地址 : 段內偏移地址它們由兩個16位的無符號數(shù)構成 。邏輯地址“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)堆棧段用于堆棧,用于保存程序斷點、和現(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ù)默認是安排在數(shù)據(jù)段,也經常安排在附加段,尤其是串操作
28、的目的區(qū)必須是附加段。數(shù)據(jù)的存放比較靈活,實際上可以存放在任何一種邏輯段中。程序中如何指明數(shù)據(jù)所在的邏輯段呢?第五十四張,PPT共八十五頁,創(chuàng)作于2022年6月55段跨越前綴指令沒有指明時,一般的數(shù)據(jù)訪問在DS段;若使用BP訪問存儲器,則在SS段。默認的情況允許改變,需要使用段跨越前綴指令,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、默認的DS數(shù)據(jù)段取出數(shù)據(jù)采用段超越前綴的指令實例:MOV AX, ES:2000H;AXES:2000H,;從指定的ES附加段取出數(shù)據(jù)第五十六張,PPT共八十五頁,創(chuàng)作于2022年6月57段寄存器的使用規(guī)定(表2.1)存儲器訪問方式默認段寄存器 段跨越偏移地址取指令 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是各自獨立段的分配示例圖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 各個邏輯段獨立的實例第六十張,PPT共八十五頁,創(chuàng)作于2022年6月61圖2.4b 各個邏輯段重疊的實例第六十一張,PPT共八十五頁,創(chuàng)作于2022年6月622.1節(jié)的總結8086有8個8位通用寄存器、8個16位通用寄存器8086有6個狀態(tài)標志和3個控制標志8086將1MB存儲空間分段管理,有4個段寄存器,對應4種邏輯段8086有4個段超越前綴指令,用于明確指定數(shù)據(jù)所在的邏輯段。第六十二張,PPT共八十五頁,創(chuàng)作于2022年6月632.2 8086的尋址方式本節(jié)從8086的機器代碼格式入手,論述:立即數(shù)尋址方式寄存器尋址方式存儲器尋址方式進而熟悉8086匯編語言指令格式,尤其是其中
32、操作數(shù)的表示方法;為展開8086指令系統(tǒng)做好準備。第六十三張,PPT共八十五頁,創(chuàng)作于2022年6月64指令構成指令由操作碼和操作數(shù)兩部分構成操作碼說明計算機要執(zhí)行哪種操作,如傳送、運算、移位、跳轉等操作,它是指令中不可缺少的組成部分。操作數(shù)是指令執(zhí)行的參與者,即各種操作的對象。有些指令不需要操作數(shù),通常的指令都有一個或兩個操作數(shù),也有個別指令有3個甚至4個操作數(shù)。操作碼操作數(shù)第六十四張,PPT共八十五頁,創(chuàng)作于2022年6月65指令中的操作碼和操作數(shù)每種指令的操作碼: 用一個唯一的助記符表示(英文縮寫), 對應著一個二進制編碼的機器指令。指令中的操作數(shù): 可以是一個具體的數(shù)值(立即數(shù)); 可
33、以是存放數(shù)據(jù)的寄存器; 可以用多種方式指明尋址單元在存儲器中的地址。第六十五張,PPT共八十五頁,創(chuàng)作于2022年6月66尋址方式指令系統(tǒng)設計了多種操作數(shù)的來源,尋找操作數(shù)的過程就是操作數(shù)的尋址方式。操作數(shù)采取哪一種尋址方式,會影響機器運行的速度和效率。如何尋址一個操作數(shù)對程序的設計來講很重要。第六十六張,PPT共八十五頁,創(chuàng)作于2022年6月678086的機器代碼(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,它不僅可以作為指令操作的一個源對象,還用來存放指令操作的結果。操作數(shù)2,稱為源操作數(shù) src,它表示參與指令操作的一個源對象;分號后的內容是對指令的解釋。第六十八張,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ù)直接存放在機器代碼中,緊跟在操作碼之后(操作數(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的內部寄存器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),而段地址在默認的或用段超越前綴指定的段寄
37、存器中。8086設計了多種存儲器尋址方式1、直接尋址方式2、寄存器間接尋址方式3、寄存器相對尋址方式4、基址變址尋址方式5、相對基址變址尋址方式第七十三張,PPT共八十五頁,創(chuàng)作于2022年6月74直接尋址方式有效地址在指令中直接給出默認的段地址在DS段寄存器,可使用段超越前綴改變MOV AX,2000H ;AXDS:2000H;指令代碼:A10020MOV AX,ES:2000H ;AXES:2000H;指令代碼:26A10020第七十四張,PPT共八十五頁,創(chuàng)作于2022年6月75(寄存器)間接尋址方式有效地址存放在基址寄存器BX或變址寄存器SI、DI中。默認的段地址在DS段寄存器,可使用
38、段超越前綴MOV AX,SI;AXDS:SI第七十五張,PPT共八十五頁,創(chuàng)作于2022年6月76(寄存器)相對尋址方式有效地址是寄存器內容與有符號8位或16位位移量之和,寄存器可以是BX、BP或SI、DI。有效地址BX/BP/SI/DI8/16位位移量段地址對應BX/SI/DI寄存器默認是DS,對應BP寄存器默認是SS;可用段超越前綴改變。MOV AX,DI+06H;AXDS:DI+06HMOV AX,BP+06H;AXSS:BP+06H第七十六張,PPT共八十五頁,創(chuàng)作于2022年6月77基址變址尋址方式有效地址由基址寄存器(BX或BP)的內容加上變址寄存器(SI或DI)的內容構成:有效地址BX/BPSI/DI段地址對應BX基址寄存器默認是DS,對應BP基址寄存器默認是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)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子廢棄物處理市場調查研究及行業(yè)投資潛力預測報告
- 2025年中國衛(wèi)生資源配置行業(yè)發(fā)展監(jiān)測及投資戰(zhàn)略研究報告
- 2025年中國交通機械零部件行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 2024-2025年中國三元乙丙防水涂料行業(yè)發(fā)展?jié)摿Ψ治黾巴顿Y方向研究報告
- 勞務合同范例 木工
- 一具體保理合同范例
- 冷庫海鮮出售合同范本
- 買賣名畫合同范本
- 信息保密協(xié)議合同范本
- 農村冷庫銷售合同范例
- 2024年臨床醫(yī)師定期考核試題中醫(yī)知識題庫及答案(共330題) (二)
- 2025-2030年中國反滲透膜行業(yè)市場發(fā)展趨勢展望與投資策略分析報告
- 湖北省十堰市城區(qū)2024-2025學年九年級上學期期末質量檢測道德與法治試題 (含答案)
- 2025年山東省濟寧高新區(qū)管委會“優(yōu)才”招聘20人歷年高頻重點提升(共500題)附帶答案詳解
- 2025年中國社會科學評價研究院第一批專業(yè)技術人員招聘2人歷年高頻重點提升(共500題)附帶答案詳解
- (2024年高考真題)2024年普通高等學校招生全國統(tǒng)一考試數(shù)學試卷-新課標Ⅰ卷(含部分解析)
- HCIA-AI H13-311 v3.5認證考試題庫(含答案)
- 市場調查 第三版 課件全套 夏學文 單元1-8 市場調查認知 - 市場調查報告的撰寫與評估
- 初中化學跨學科實踐活動:海洋資源的綜合利用與制鹽課件 2024-2025學年九年級化學科粵版(2024)下冊
- 內蒙自治區(qū)烏蘭察布市集寧二中2025屆高考語文全真模擬密押卷含解析
- 初中英語1600詞背誦版+檢測默寫版
評論
0/150
提交評論