![第5講 第3章 指令系統(tǒng)_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/15/22910c3c-bf13-4a44-84c7-07fe015d0e44/22910c3c-bf13-4a44-84c7-07fe015d0e441.gif)
![第5講 第3章 指令系統(tǒng)_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/15/22910c3c-bf13-4a44-84c7-07fe015d0e44/22910c3c-bf13-4a44-84c7-07fe015d0e442.gif)
![第5講 第3章 指令系統(tǒng)_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/15/22910c3c-bf13-4a44-84c7-07fe015d0e44/22910c3c-bf13-4a44-84c7-07fe015d0e443.gif)
![第5講 第3章 指令系統(tǒng)_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/15/22910c3c-bf13-4a44-84c7-07fe015d0e44/22910c3c-bf13-4a44-84c7-07fe015d0e444.gif)
![第5講 第3章 指令系統(tǒng)_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/15/22910c3c-bf13-4a44-84c7-07fe015d0e44/22910c3c-bf13-4a44-84c7-07fe015d0e445.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第3章 指令系統(tǒng) 15: 5: 若用若用4K4K1 1位的位的RAMRAM芯片組成芯片組成16K16K8 8位的存位的存儲器,需要多少芯片?儲器,需要多少芯片?A19A0A19A0地址線中哪些地址線中哪些參與片內尋址?哪些作為芯片組的片選信號?參與片內尋址?哪些作為芯片組的片選信號?2021-10-152第3章 指令系統(tǒng) 3n學習匯編語言并不難難得是學會怎么用n不要試圖掌握每一條指令熟悉常用的就可以了n不要說:我看不懂英文資料誰都是不懂到懂n不要擔心:我編程能力差,我不會不下水永遠學不會游泳n不要只學不問,也不要只問不學學問學問,邊學邊問n學會利用網絡是書本知識極好的補充n盡量擺脫C語言的編程
2、習慣可以借鑒,不要照搬n多動手,多看高手寫的程序,慢慢體會,可以從中學到很有價值的東西編程的思想n大膽去試,只有試過才知道可不可以語言是用來使用的,不是用來學習的葵花寶典葵花寶典第3章 指令系統(tǒng) 4主要內容主要內容學習目標學習目標重點難點重點難點知識點知識點第3章 指令系統(tǒng) 5主要內容主要內容2. 2. 尋址方式;尋址方式;3.8086/80883.8086/8088指令系統(tǒng)指令系統(tǒng)1 1計算機指令格式;計算機指令格式;第3章 指令系統(tǒng) 61 1了解指令的機器語言格式;了解指令的機器語言格式;2 2熟練掌握指令的尋址方式熟練掌握指令的尋址方式; 3 3掌握掌握8086/80888086/808
3、8的指令系統(tǒng);的指令系統(tǒng);4. 4. 熟練掌握常用指令;熟練掌握常用指令;學習目標學習目標第3章 指令系統(tǒng) 7n8086/8088指令碼格式n8086/8088操作數(shù)尋址方式n程序轉移地址的尋址方式n8086指令系統(tǒng)n數(shù)據(jù)傳送指令n算術運算指令n邏輯運算和移位指令n串處理指令n控制轉移指令n處理器控制指令知識點知識點第3章 指令系統(tǒng) 81 1指令的尋址方式;指令的尋址方式;2 2指令系統(tǒng);指令系統(tǒng); 重點重點難點難點指令的尋址方式;指令的尋址方式;第3章 指令系統(tǒng) 9n本章的關鍵是熟悉本章的關鍵是熟悉80868086的寄存器組的寄存器組n本章的重點是理解本章的重點是理解80868086常用指令
4、的功能常用指令的功能n本章的難點是本章的難點是80868086的各種尋址方式的各種尋址方式為什么要以為什么要以8086CPU8086CPU為目標學習呢?為目標學習呢?n每一種匯編語言都是不一樣的(因為每一種匯編語言都是不一樣的(因為CPUCPU的結的結構,指令不一樣),只能以一種常用的,典構,指令不一樣),只能以一種常用的,典型的,簡潔的微處理器的匯編語言為學習對型的,簡潔的微處理器的匯編語言為學習對象,從而達到學習匯編語言兩個根本目的:象,從而達到學習匯編語言兩個根本目的:n1 1:充分獲得底層編程的體驗:充分獲得底層編程的體驗n2 2:深刻理解機器運行的機理:深刻理解機器運行的機理專業(yè)的需
5、求專業(yè)的需求第3章 指令系統(tǒng) 10n完成計算768+12288-1280的機器碼如下n101100000000000000000011n000001010000000000110000n001011010000000000000101n假如將程序錯寫成以下這樣,請找處錯誤n101100000000000000000011n000001010000000000110000n000101101000000000000101第3章 指令系統(tǒng) 11n00011110n101110000000000000000000n01010000n101110001100011000001111n100011101
6、1011000n1011010000000000n1011000000000000n1011011100000111n101110010000000000000000n1011011000011000n1011001001000111n1100110100010000n1011010000000010n1011011100000000n.n.n.n.n1000100111011000-mov ax,bxn1000100111011000-89d8h第3章 指令系統(tǒng) 12n匯編語言是一種面向機器的低級程序設計語言匯編語言是一種面向機器的低級程序設計語言n匯編語言以助記符形式表示每一條計算機指令匯
7、編語言以助記符形式表示每一條計算機指令q助記符(助記符(mnemonic)是便于人們記憶、并能描述是便于人們記憶、并能描述指令功能和指令操作數(shù)的符號指令功能和指令操作數(shù)的符號q助記符一般就是表明指令功能的英語單詞或其縮寫助記符一般就是表明指令功能的英語單詞或其縮寫n用助記符表示的指令就是匯編語言中的匯編格式指令用助記符表示的指令就是匯編語言中的匯編格式指令n匯編格式指令以及使用它們編寫程序的規(guī)則就形成匯匯編格式指令以及使用它們編寫程序的規(guī)則就形成匯編語言(編語言(Assembly Language)n用匯編語言書寫的程序就是匯編語言程序,或稱匯編用匯編語言書寫的程序就是匯編語言程序,或稱匯編語
8、言源程序語言源程序n匯編程序將匯編語言程序匯編程序將匯編語言程序“匯編匯編”成機器代碼目標模成機器代碼目標模塊塊第3章 指令系統(tǒng) 13n匯編語言的主要特點:匯編語言的主要特點:q匯編語言程序與處理器指令系統(tǒng)密切相關匯編語言程序與處理器指令系統(tǒng)密切相關q程序員可直接、有效地控制系統(tǒng)硬件程序員可直接、有效地控制系統(tǒng)硬件q形成的可執(zhí)行文件運行速度快、占用主存容量少形成的可執(zhí)行文件運行速度快、占用主存容量少 匯編語言程序與匯編程序是兩個概念匯編語言程序與匯編程序是兩個概念這是我們寫的程序這是我們寫的程序這是廠家的工具這是廠家的工具第3章 指令系統(tǒng) 14n匯編語言與處理器密切相關匯編語言與處理器密切相關
9、 匯編語言程序的通用性、可移植性較差匯編語言程序的通用性、可移植性較差n高級語言與具體計算機無關高級語言與具體計算機無關 高級語言程序可以在多種計算機上編譯后執(zhí)行高級語言程序可以在多種計算機上編譯后執(zhí)行n匯編語言功能有限、涉及硬件細節(jié)匯編語言功能有限、涉及硬件細節(jié) 編寫程序比較繁瑣,調試起來也比較困難編寫程序比較繁瑣,調試起來也比較困難n高級語言提供了強大的功能,不必關心瑣碎問高級語言提供了強大的功能,不必關心瑣碎問題題 類似自然語言的語法,易于掌握和應用類似自然語言的語法,易于掌握和應用第3章 指令系統(tǒng) 15n匯編語言本質上就是機器語言匯編語言本質上就是機器語言 可以直接、有效地控制計算機硬
10、件可以直接、有效地控制計算機硬件 易于產生速度快、容量小的高效率目標程序易于產生速度快、容量小的高效率目標程序n高級語言不針對具體計算機系統(tǒng)高級語言不針對具體計算機系統(tǒng) 不易直接控制計算機的各種操作不易直接控制計算機的各種操作 目標程序比較龐大、運行速度較慢目標程序比較龐大、運行速度較慢n小結:匯編語言的優(yōu)點:小結:匯編語言的優(yōu)點:q直接控制計算機硬件部件直接控制計算機硬件部件q可以編寫在可以編寫在“時間時間”和和“空間空間”兩方面最有效的程序兩方面最有效的程序n小結:匯編語言的缺點:小結:匯編語言的缺點:q與處理器密切有關與處理器密切有關q需要熟悉計算機硬件系統(tǒng)、考慮許多細節(jié)需要熟悉計算機硬
11、件系統(tǒng)、考慮許多細節(jié)q編寫繁瑣,調試、維護、交流和移植困難編寫繁瑣,調試、維護、交流和移植困難第3章 指令系統(tǒng) 16n匯編語言的優(yōu)點使得它在程序設計中占有重要的位置,匯編語言的優(yōu)點使得它在程序設計中占有重要的位置,是不可被取代的是不可被取代的n匯編語言的缺點使得人們主要采用高級語言進行程序匯編語言的缺點使得人們主要采用高級語言進行程序開發(fā)工作開發(fā)工作n有時需要采用高級語言和匯編語言混合編程的方法,有時需要采用高級語言和匯編語言混合編程的方法,互相取長補短,更好地解決實際問題互相取長補短,更好地解決實際問題q問題問題q答案答案匯編語言:匯編語言:?高級語言:高級語言:?第3章 指令系統(tǒng) 1720
12、21年年10月月15日日 17例例: : 編程實現(xiàn)編程實現(xiàn)c=a+bc=a+b,并在屏幕上顯示結果,并在屏幕上顯示結果解解1 1:用:用C C語言實現(xiàn)語言實現(xiàn) #include stdio.h int main(int argc, char* argv) int a,b,c; a=1; b=2; c=a+b; printf(“c=%dn,c); return 0; 第3章 指令系統(tǒng) 182021年年10月月15日日 18data segmenta db ?b db ?c db ?string db c=$data endscode segmentmain proc far assume cs:
13、code, ds:data assume es:datastart: push ds sub ax,ax push ax mov ax,data mov ds,ax mov es,ax mov a,1 mov b,2 mov al,a add al,b mov c,al lea dx,string mov ah,09 int 21h add c,30h mov dl,c mov ah,2 int 21h mov dl,0ah int 21h mov dl,0dh int 21h retmain endpcode ends end start解解2: 2: 用匯編語言實現(xiàn)用匯編語言實現(xiàn)第3章 指
14、令系統(tǒng) 19n程序要具有較快的執(zhí)行時間,或者只能占用較小的存儲容量程序要具有較快的執(zhí)行時間,或者只能占用較小的存儲容量n程序與計算機硬件密切相關,程序要直接、有效地控制硬件程序與計算機硬件密切相關,程序要直接、有效地控制硬件n大型軟件需要提高性能、優(yōu)化處理的部分大型軟件需要提高性能、優(yōu)化處理的部分n沒有合適的高級語言、或只能采用匯編語言的時候沒有合適的高級語言、或只能采用匯編語言的時候n分析具體系統(tǒng)尤其是該系統(tǒng)的低層軟件、加密解密軟件、分析和分析具體系統(tǒng)尤其是該系統(tǒng)的低層軟件、加密解密軟件、分析和防治計算機病毒等等防治計算機病毒等等 匯編語言的作用實在不小匯編語言的作用實在不小 !從某種意義上
15、說匯編語言改變了20世紀人們的生活方式第3章 指令系統(tǒng) 20n開發(fā)匯編語言程序q指令系統(tǒng)q文本編輯器q匯編程序q連接程序q調試程序q集成化開發(fā)環(huán)境這些都是開這些都是開發(fā)匯編程序發(fā)匯編程序的必須步驟的必須步驟及必用工具及必用工具第3章 指令系統(tǒng) 21n計算機的指令系統(tǒng)就是指該計算機能夠執(zhí)計算機的指令系統(tǒng)就是指該計算機能夠執(zhí)行的全部指令的集合。行的全部指令的集合。n每種計算機都有它支持的指令集合。每種計算機都有它支持的指令集合。 n16位位8086指令系統(tǒng)是整個指令系統(tǒng)是整個Intel 80 x86 系系列微處理器指令系統(tǒng)的基礎列微處理器指令系統(tǒng)的基礎。n本章內容是本課程的一個關鍵內容。本章內容是
16、本課程的一個關鍵內容。第3章 指令系統(tǒng) 22匯編語言程序上機運行的軟件環(huán)境匯編語言程序上機運行的軟件環(huán)境 DOS操作系統(tǒng)下,編輯、修改和運行匯編語言程序,需要用文本編輯軟件、宏匯編程序、連接程序和調試程序。 文本編輯軟件:EDIT.EXE等 宏匯編程序:MASM.EXE,TASM.EXE等 連接程序:LINK.EXE,TLINK.EXE等 調試程序:CV.EXE,TD.EXE等 第3章 指令系統(tǒng) 23源程序的編輯與匯編源程序的編輯與匯編1. 編輯源程序編輯源程序 C:ASMEDIT HEXTOASC.ASM(回車)(回車)2. 匯編源程序匯編源程序 C:ASMTASM HEXTOASC (回車
17、)(回車) 在匯編中,如果有語法錯誤,會給出提示信息,指出錯誤的類型、行號。當匯編無錯之后,會自動生成目標文件(文件擴展名為OBJ)。注:待編輯的文件擴展名必須為 ASM。第3章 指令系統(tǒng) 24目標程序的連接目標程序的連接 C:ASMTLINK HEXTOASC (回車)(回車)連接成功后,將生成可執(zhí)行程序HEXTOASC.EXE。程序的調試與運行程序的調試與運行 1調試可執(zhí)行程序調試可執(zhí)行程序 利用Turbo Debuger(TD)對可執(zhí)行程序進行調試,以檢查程序可能存在的各種錯誤:C:ASMTD HEXTOASC.EXE (回車)(回車)第3章 指令系統(tǒng) 25程序在存儲區(qū)中程序在存儲區(qū)中存
18、放的邏輯地址存放的邏輯地址源程序部分源程序部分程序執(zhí)行后各寄存器、程序執(zhí)行后各寄存器、標志位的結果標志位的結果數(shù)據(jù)段中存放的數(shù)據(jù)段中存放的40個個“A”對應的對應的ASCII碼碼DEBUG調試環(huán)境如下:調試環(huán)境如下:第3章 指令系統(tǒng) 262運行可執(zhí)行程序運行可執(zhí)行程序 C:ASMHEXTOASC (回車)(回車)編輯程序編輯程序. ASM 文件文件匯編程序匯編程序. OBJ 文件文件連接程序連接程序. EXE 文件文件Edit 等等MASMLINK第3章 指令系統(tǒng) 27n對程序員來說,對程序員來說,8086內部結構的最重要的是內部結構的最重要的是其寄存器組其寄存器組v 8個通用寄存器個通用寄存
19、器v 1個指令指針寄存器個指令指針寄存器 v 1個標志寄存器個標志寄存器v 4個段寄存器個段寄存器他們均為他們均為1616位位! ! 匯編語言程序員看到的處理器,就是寄存器匯編語言程序員看到的處理器,就是寄存器 所以,一定要熟悉這些寄存器的名稱和作用所以,一定要熟悉這些寄存器的名稱和作用第3章 指令系統(tǒng) 288086的16位通用寄存器是:AXBXCXDXSIDIBPSP 其中,前4個數(shù)據(jù)寄存器都還可以分成高8位和低8位兩個獨立的寄存器,它們是: AH BH CH DH AL BL CL DL對其中某個8位寄存器的操作,并不影響它所對應的另外一個8位寄存器。第3章 指令系統(tǒng) 29n數(shù)據(jù)寄存器用來
20、存放計算的結果和操作數(shù)n每個寄存器又有它們各自的專用目的:qAX16位累加器,使用頻度最高,用于算術、邏輯運算以及與外設傳送信息等;AL為8位累加器。qBX基址寄存器,常用來做基址指針,指向一批連續(xù)存放操作數(shù)的基地址。qCX計數(shù)器,作為循環(huán)和串操作等指令中的隱含計數(shù)器。qDX數(shù)據(jù)寄存器,用來存放外設端口的16位地址,或雙字長數(shù)據(jù)的高16位。第3章 指令系統(tǒng) 30n變址寄存器常用于存儲器尋址時提供地址偏移量nSI是源變址寄存器nDI是目的變址寄存器n在串操作類指令中,SI和DI具有特別的功能第3章 指令系統(tǒng) 31n指針寄存器用于尋址內存堆棧內的數(shù)據(jù)nSP為堆棧指針寄存器,指示棧頂?shù)钠频刂?。SP
21、不能再用于其他目的,具有專用性nBP為基址指針寄存器,表示數(shù)據(jù)在堆棧段中的基地址nSP/BP寄存器與SS段寄存器聯(lián)合使用以確定堆棧段中的存儲單元地址n詳見堆棧操作指令第3章 指令系統(tǒng) 32n堆棧(Stack)是主存中一個特殊的區(qū)域。n它采用(First In Last Out)或后進先出LIFO(Last In First Out)的原則進行存取操作,而不是隨機存取操作方式。n堆棧指針它指示棧頂位置,在8086中,棧頂由SS和SP共同指示,即SS:SP。n堆棧操作q處理器自動維持(子程序調用時的斷點處理)q用戶操作(PUSH/POP指令)q詳見堆棧操作指令注意與FIFO的區(qū)別第3章 指令系統(tǒng)
22、33n指令指針寄存器IP,指示代碼段中指令的偏移地址n它與代碼段寄存器CS聯(lián)用,確定下一條指令的物理地址n計算機通過CS : IP寄存器來取指,從而控制指令序列的執(zhí)行流程nIP寄存器是一個專用寄存器,用戶不能直接訪問。第3章 指令系統(tǒng) 34標志(Flag)用于反映指令執(zhí)行結果或控制指令執(zhí)行形式。8086處理器中各種常用的標志形成了一個16位的標志寄存器FLAGS(也稱程序狀態(tài)字PSW寄存器)。OF1115 12DF10IF9TF8SF7ZF65AF43PF21CF0控制控制 反映結果狀態(tài)反映結果狀態(tài)反應運算過程反應運算過程第3章 指令系統(tǒng) 35指令的執(zhí)行與標志有很大關系。標志分成兩類:n狀態(tài)標
23、志用來記錄程序運行結果的狀態(tài)信息,許多指令的執(zhí)行都將自動地改變它。CF OF AF SF ZF PFn控制標志可由用戶根據(jù)需要用指令進行設置,用于控制處理器的具體工作方式。DF IF TF第3章 指令系統(tǒng) 36n當運算結果的最高有效位有進位(加法)或借位(減法)時,進位標志置1,即CF = 1;否則 CF=0。例如(以8位運算為例):3AH + 7CHB6H沒有進位:CF=0AAH + 7CH 26H有進位:CF=1(1)第3章 指令系統(tǒng) 37n若運算結果為全0,則ZF=1,否則ZF=0。例如:3AH + 7CHB6H 結果不是零:ZF=084H + 7CH100H結果是全零:ZF=1注意:Z
24、F為1表示的結果是0第3章 指令系統(tǒng) 38n運算結果最高位為1,則SF=1;否則SF=0。例如:3AH + 7CHB6H最高位D71:SF=184H + 7CH100H最高位D70:SF=0有符號數(shù)利用最高有效位(MSB)來表示它的符號。所以,運算結果的MSB與符號標志SF相一致。第3章 指令系統(tǒng) 39n當運算結果最低字節(jié)中“1”的個數(shù)為零或偶數(shù)時,PF=1;否則PF=0(奇校驗)。例如:3AH + 7CHB6H10110110B,結果中有5個1,是奇數(shù),則 PF=0第3章 指令系統(tǒng) 40問題問題什么是溢出?什么是溢出?溢出和進位有什么區(qū)別?溢出和進位有什么區(qū)別?處理器怎么處理,程序員如何運用
25、?處理器怎么處理,程序員如何運用?如何判斷是否溢出?如何判斷是否溢出?第3章 指令系統(tǒng) 41n“溢出”針對有符號數(shù)n處理器內部以補碼表示有符號數(shù)8位表示范圍是:-128 +127 16位表示范圍是:-32768 +32767 n如果運算結果超出了這個范圍,就是產生了溢出,溢出發(fā)生時,說明有符號數(shù)的運算結果不正確n以8位運算為例: 3AH + 7CHB6H即 58 + 124182結果超出-128127故溢出,所以OF=1另一方面,補碼B6H表達真值是-74,顯然運算結果也不正確。第3章 指令系統(tǒng) 42n溢出標志OF和進位標志CF是兩個意義不同的標志n進位標志表示無符號數(shù)運算結果是否超出范圍,運
26、算結果仍然正確(要考慮進位);n溢出標志表示有符號數(shù)運算結果是否超出范圍,運算結果已經不正確。第3章 指令系統(tǒng) 43例1:3AH + 7CHB6H無符號運算:58124182 不超范圍,無進位有符號運算:58124182 超范圍,有溢出例2:AAH + 7CH26H無符號運算:170124294,超范圍,有進位有符號運算:8612438 ,不超范圍,無溢出(1)第3章 指令系統(tǒng) 44n處理器對兩個操作數(shù)進行運算時,處理器對兩個操作數(shù)進行運算時,q根據(jù)無符號運算有無進位來設置進位標志根據(jù)無符號運算有無進位來設置進位標志CF;q根據(jù)有符號運算是否超出表示范圍來設置溢出標志根據(jù)有符號運算是否超出表示
27、范圍來設置溢出標志OF。n應該利用哪個標志,則由程序員來決定。應該利用哪個標志,則由程序員來決定。q如果你認為參加運算的操作數(shù)是無符號數(shù),你應該如果你認為參加運算的操作數(shù)是無符號數(shù),你應該關心進位標志關心進位標志q如果你認為參加運算的操作數(shù)是有符號數(shù),你應該如果你認為參加運算的操作數(shù)是有符號數(shù),你應該關心溢出標志。關心溢出標志。第3章 指令系統(tǒng) 45以以8位二進制數(shù)為例位二進制數(shù)為例分析一下數(shù)的溢出與進位情況分析一下數(shù)的溢出與進位情況:下面分下面分4種情況加以討論:種情況加以討論: (1)帶符號數(shù)和無符號數(shù)都不溢出)帶符號數(shù)和無符號數(shù)都不溢出 (2)無符號數(shù)溢出)無符號數(shù)溢出 (3)帶符號數(shù)溢
28、出)帶符號數(shù)溢出 (4)帶符號數(shù)和無符號數(shù)都溢出)帶符號數(shù)和無符號數(shù)都溢出數(shù)的溢出與進位的區(qū)別與判斷數(shù)的溢出與進位的區(qū)別與判斷P4550還不清楚的看下面列子,已懂的可以不看了還不清楚的看下面列子,已懂的可以不看了第3章 指令系統(tǒng) 46。二進制數(shù)二進制數(shù)看作無符號數(shù)看作無符號數(shù)看作帶符號數(shù)看作帶符號數(shù)0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 00 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1+ +0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 14 41111+ +1515+ 4+ 4+1 1+1 1+ +1 5+1 5相相加加標志標志CF=0,OF=
29、0CF=0,OF=0CF=0CF=0OF=0OF=0溢出溢出不溢出不溢出不溢出不溢出不溢出不溢出同符號數(shù)相加,同符號數(shù)相加,結果符號與其相同結果符號與其相同第3章 指令系統(tǒng) 47二進制數(shù)二進制數(shù)看作無符號數(shù)看作無符號數(shù)看作帶符號數(shù)看作帶符號數(shù)0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1+ +0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 07 7251251+ +258258+ 7+ 7- 5- 5+ + 2+ 2相相加加標志標志CF=1,OF=0CF=1,OF=0CF=1CF=1OF=0OF=0溢出溢
30、出無符號數(shù)溢出無符號數(shù)溢出溢出溢出結果應為結果應為2 2,錯,錯不溢出不溢出異號數(shù)相加異號數(shù)相加不可能有溢出不可能有溢出CF=1CF=1第3章 指令系統(tǒng) 48二進制數(shù)二進制數(shù)看作無符號數(shù)看作無符號數(shù)看作帶符號數(shù)看作帶符號數(shù)0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 10 0 1 111 1 1 1 1 1 1 1 0 0 0 0+ +1 1 0 0 0 0 0 0 0 0 1 1 0 0 1 19 9124124+ +133133+ 9+ 9+1 2 4+1 2 4+ +1 3 3+1 3 3相相加加標志標志CF=0,OF=1CF=0,OF=1CF=0CF=0O OF=F=1
31、1溢出溢出帶符號數(shù)溢出帶符號數(shù)溢出不溢出不溢出溢出溢出 結果為123 結果為123結果錯結果錯第3章 指令系統(tǒng) 49二進制數(shù)二進制數(shù)看作無符號數(shù)看作無符號數(shù)看作帶符號數(shù)看作帶符號數(shù)1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 11 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1+ +0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0135135245245+ +380380121121- 11- 11+ +132132相相加加標志標志CF=1,OF=1CF=1,OF=1CF=1CF=1OF=1OF=1溢出溢出無符號數(shù)溢出無符號數(shù)溢出溢出溢出現(xiàn)結果為現(xiàn)結果為
32、124,結果錯124,結果錯溢出溢出現(xiàn)結果為124,現(xiàn)結果為124,結果錯結果錯CF=1CF=1第3章 指令系統(tǒng) 50(1)帶符號數(shù))帶符號數(shù)相加相加溢出溢出根據(jù)根據(jù)OF= 1 ?,判斷帶符號數(shù)產生溢出?判斷帶符號數(shù)產生溢出?(2)無符號數(shù))無符號數(shù)相加相加溢出溢出根據(jù)根據(jù)CF= 1 ?,判斷無符號數(shù)產生溢出?判斷無符號數(shù)產生溢出?第3章 指令系統(tǒng) 51n運算時D3位(低半字節(jié))有進位或借位時,AF=1;否則AF=0。例如:3AH + 7CHB6H D3向前有進位:AF=1這個標志主要由處理器內部使用,用于十進制算術運算的調整,用戶一般不必關心。很少使用,可以不管很少使用,可以不管第3章 指令
33、系統(tǒng) 52n用于串操作指令中,控制地址的變化方向:q設置設置DF0,串操作后存儲器地址自動增量(增址)串操作后存儲器地址自動增量(增址) ;q設置設置DF1,串操作后存儲器地址自動減量(減址)串操作后存儲器地址自動減量(減址) 。nCLD 指令復位方向標志:DF0nSTD 指令置位方向標志:DF1第3章 指令系統(tǒng) 53n用于控制外部可屏蔽中斷是否可以被處理器響應:q設置IF1,則允許中斷;q設置IF0,則禁止中斷。nCLI 指令復位中斷標志:IF0nSTI 指令置位中斷標志:IF1第3章 指令系統(tǒng) 54n用于控制處理器是否進入單步執(zhí)行方式:q設置TF0,處理器正常工作;q設置TF1,處理器每執(zhí)
34、行一條指令就中斷一次,中斷編號為 1 (稱單步中斷) TF 也被稱為單步標志。n單步執(zhí)行和單步調試q利用單步中斷可對程序進行逐條指令的調試。q這種逐條指令調試程序的方法就是單步調試。第3章 指令系統(tǒng) 55n同一個存儲器地址可以表示為:字節(jié)單元地址、字單元地址、雙字單元地址等等(視指令的具體情況)。如 mov word ptr 2000H, 10H mov byte ptr 2000H, 10Hn將字單元安排在偶地址(xx.xx0 B),將雙字單元安排在模4地址(xxxx00 B)的做法,被稱為“地址對齊(Align)”。n對于地址不對齊的數(shù)據(jù),處理器訪問時,需要付出額外的訪問時間。n要取得較高
35、的存取速度,應該將數(shù)據(jù)的地址對齊。第3章 指令系統(tǒng) 56n8088有20條地址線,q最大可尋址空間為 2201MB,q可尋址的地址范圍為 00000HFFFFFHq該地址稱物理地址n硬件用20位的物理地址來對存儲單元進行尋址第3章 指令系統(tǒng) 57第3章 指令系統(tǒng) 58寄寄存存器器類類型型小小結結D estination Index目目 的的 變變 址址 寄寄 存存 器器SID IB PSPA X 累累 加加 器器 A ccum ulatorB X 基基 數(shù)數(shù) 寄寄 存存 器器B aseC X 計計 數(shù)數(shù) 寄寄 存存 器器C ountD X 數(shù)數(shù) 據(jù)據(jù) 寄寄 存存 器器D ataA HB HC
36、HD HA LB LC LD LIPP SWD SE SSSC S數(shù)數(shù) 據(jù)據(jù) 段段 寄寄 存存 器器D ata Segm ent附附 加加 段段 寄寄 存存 器器E xtra Segm ent堆堆 棧棧 段段 寄寄 存存 器器S tack Segm ent代代 碼碼 段段 寄寄 存存 器器C ode Segm entP rocessor Status W ord狀狀 態(tài)態(tài) 標標 志志 寄寄 存存 器器Instruction P ointer指指 令令 指指 針針 寄寄 存存 器器變變 址址寄寄 存存 器器段段 寄寄 存存 器器控控 制制 寄寄 存存 器器通通用用寄寄存存器器Source Ind
37、ex源源 變變 址址 寄寄 存存 器器B ase P oint基基 址址 指指 針針 寄寄 存存 器器Stack P oint堆堆 棧棧 指指 針針 寄寄 存存 器器指指 針針寄寄 存存 器器數(shù)數(shù) 據(jù)據(jù)寄寄 存存 器器第3章 指令系統(tǒng) 59n8086有有8個個8位通用寄存器、位通用寄存器、8個個16位通用寄存位通用寄存器器n8086有有6個狀態(tài)標志和個狀態(tài)標志和3個控制標志個控制標志n8086將將1MB存儲空間分段管理,有存儲空間分段管理,有4個段寄存?zhèn)€段寄存器,對應器,對應4種邏輯段種邏輯段n8086有有4個段超越前綴指令,用于明確指定數(shù)個段超越前綴指令,用于明確指定數(shù)據(jù)所在的邏輯段據(jù)所在的
38、邏輯段熟悉上述內容,就可以進入下節(jié)熟悉上述內容,就可以進入下節(jié) !否則?.第3章 指令系統(tǒng) 60 (一)指令(一)指令(Instruction) 指令是計算機執(zhí)行某種操作命令:內容包括指令是計算機執(zhí)行某種操作命令:內容包括做什么操作做什么操作操作數(shù)的來源操作數(shù)的來源結果的存放結果的存放以及下一條指令的位置等等。以及下一條指令的位置等等。 1、傳送類;、傳送類; 2、加工處理類:算術運算、邏輯運算、移位循環(huán);、加工處理類:算術運算、邏輯運算、移位循環(huán); 3、控制類:轉移、調用、中斷等;、控制類:轉移、調用、中斷等; 4、串操作類;、串操作類;一、指令與指令系統(tǒng)一、指令與指令系統(tǒng)操作的操作的結果結
39、果將將存放在存放在何處何處由指令由指令的的操作操作碼碼字段字段規(guī)定規(guī)定指示下一條指示下一條指令是指令是順序順序執(zhí)行還是執(zhí)行還是轉轉移移執(zhí)行執(zhí)行寄存器寄存器存儲器存儲器I/O端口端口第3章 指令系統(tǒng) 61(三 )程序:程序:一些指令的有機結合,用于完成某種目的。(二)指令系統(tǒng):指令系統(tǒng):所有指令的集合 8086CPU包含133條指令。第3章 指令系統(tǒng) 62n指令由操作碼和操作數(shù)兩部分組成n操作碼說明計算機要執(zhí)行哪種操作,如傳送、運算、移位、跳轉等操作,它是指令中不可缺少的組成部分n操作數(shù)是指令執(zhí)行的參與者,即各種操作的對象n有些指令不需要操作數(shù),通常的指令都有一個或兩個操作數(shù),也有個別指令有3個
40、甚至4個操作數(shù)n每種指令的操作碼:q用一個唯一的助記符表示(指令功能的英文縮寫)q對應著機器指令的一個二進制編碼n指令中的操作數(shù):q可以是一個具體的數(shù)值q可以是存放數(shù)據(jù)的寄存器q或指明數(shù)據(jù)在主存位置的存儲器地址操作碼操作碼操作數(shù)操作數(shù)指令有指令有RISC與與CISC的的區(qū)別區(qū)別小知識小知識第3章 指令系統(tǒng) 63給出立即尋址方式需要的數(shù)值本身給出立即尋址方式需要的數(shù)值本身給出某些尋址方式需要的對基地址的偏移量給出某些尋址方式需要的對基地址的偏移量表明采用的尋址方式表明采用的尋址方式立即數(shù)位移量mod reg r/m操作碼0/1/2字節(jié)0/1/2字節(jié)0/1字節(jié)1/2字節(jié)操作數(shù)操作數(shù)第3章 指令系統(tǒng)
41、 64mov ax,BP+0 ;機器代碼是機器代碼是 8B 46 00n前一個字節(jié)8B是操作碼(含w1表示字操作)n中間一個字節(jié)46(01 000 110)是 “mod reg r/m”字節(jié)qreg000表示目的操作數(shù)為AXqmod01和r/m110表示源操作數(shù)為BP+D8n最后一個字節(jié)就是8位位移量D800mov al,05 ;機器代碼是機器代碼是B0 05n前一個字節(jié)B0是操作碼(含一個操作數(shù)AL),后一個字節(jié)05是立即數(shù)mov ax,0102H ;機器代碼是機器代碼是B8 02 01n前一個字節(jié)B8是操作碼(含一個操作數(shù)AX),后兩個字節(jié)02 01是16位立即數(shù)(低字節(jié)02在低地址)立即
42、數(shù)位移量mod reg r/m操作碼0/1/2字節(jié)0/1/2字節(jié)0/1字節(jié)1/2字節(jié)第3章 指令系統(tǒng) 65操作碼 操作數(shù)1,操作數(shù)2;注釋n操作數(shù)2,稱為源操作數(shù) src,它表示參與指令操作的一個對象n操作數(shù)1,稱為目的操作數(shù) dest,它不僅可以作為指令操作的一個對象,還可以用來存放指令操作的結果n分號后的內容是對指令的解釋第3章 指令系統(tǒng) 66MOV dest,src;destsrc nMOV指令的功能是將源操作數(shù)src傳送至目的操作數(shù)dest,例如:MOV AL,05H;AL05HMOV BX,AX;BXAXMOV AX,SI;AXDS:SIMOV AX,BP+06H;AXSS:BP+0
43、6HMOV AX,BX+SI ;AXDS:BX+SI第3章 指令系統(tǒng) 67源操作數(shù)源操作數(shù) src目的操作數(shù)目的操作數(shù) dest30H30H被傳送的數(shù)據(jù)被傳送的數(shù)據(jù)第3章 指令系統(tǒng) 687654 3210OPCODEDW7654 3210MODREGR/M字節(jié)1字節(jié)2字節(jié)3字節(jié)4LOW DISP或DATAHIGH DISP或DATA字節(jié)5字節(jié)6LOW DATAHIGH DATA本小節(jié)內容可以不看本小節(jié)內容可以不看第3章 指令系統(tǒng) 698086/8088不同字長的指令格式類型 看了這個圖,請大家思看了這個圖,請大家思考,為什么考,為什么BIU的指令的指令預存單元是預存單元是6個字節(jié)個字節(jié)第3章
44、指令系統(tǒng) 70W: 操作數(shù)字節(jié)長W=0,字節(jié)字節(jié); W=1,字操作字操作字節(jié)字節(jié)1:操作功能操作功能OPCODE:指令操作碼;指令操作碼;操作數(shù)中至少有一個為寄存器操作數(shù)中至少有一個為寄存器:D: 操作數(shù)傳送方向。如果D=0, 則尋址方式字節(jié)中的reg域指定的寄存器用作源操作數(shù); 若D=1, 則由reg域指定的寄存器為目的操作數(shù), 而源操作數(shù)可來自r/m域中的存儲器或另一個寄存器。D=0,REG為源;為源;D=1,REG為目的為目的第3章 指令系統(tǒng) 71 REG:寄存器編碼字段寄存器編碼字段 000=AL/AX 100=AH/SP 001=CL/CX 101=CH/BP 010=DL/DX 1
45、10=DH/SI 011=BL/BX 111=BH/DI字節(jié)字節(jié)2:尋址方式尋址方式 reg域:規(guī)定一個寄存器操作數(shù),它在指令中作為源操作數(shù)還是目的操作數(shù)由操作碼(第一)字節(jié)中的D位規(guī)定。 由reg域選擇的寄存器的具體規(guī)定如表所示。第3章 指令系統(tǒng) 72 MOD:尋址字段尋址字段 00=存儲器方式,指令中無偏移量 01=存儲器方式,指令中8位偏移量 10=存儲器方式,指令中16位偏移量 11=寄存器方式,指令中無偏移量 MOD:尋址字段尋址字段 mod域: 用來區(qū)分另一個操作數(shù)是在寄存器中(寄存器尋址), 還是在存儲器中(存儲器尋址)。在存儲器尋址的情況下,還用來指出該字節(jié)后有多少位移量字節(jié)。
46、mod域的編碼及其說明如表所示。 第3章 指令系統(tǒng) 73在MOD11,存儲器模式下,R/M給出計算有效地址的方法。.R/M:寄存器/存儲器字段在MOD=11,寄存器模式下,R/M給出第二個操作數(shù)寄存器編碼。第3章 指令系統(tǒng) 74R/M W=0 W=1 R/M MOD=00 MOD=01MOD=10000ALAX000BX+SIBX+SI+D8 BX+SI+D16001CLCX001BX+DIBX+DI+D8 BX+DI+D16010DLDX010BP+SIBP+SI+D8 BP+SI+D16011BLBX011BP+DIBP+DI+D8 BP+DI+D16100AHSP100SISI+D8SI
47、+D16101CHBP101DIDI+D8DI+D16110DHSI110 直接地址直接地址BP+D8BP+D16111BHDI111BXBX+D8BX+D16MOD=11MOD11有效地址計算方法有效地址計算方法第3章 指令系統(tǒng) 75MOV BX+DI-6H, CL;10001000 01 001 00111111010指令碼為:指令碼為:88 49 FADISP:存儲器操作數(shù)地址偏移量,長度由MOD字段定義。DATA:指令中的立即數(shù)。 MOV AX,BXD=1,W=1;MOD=00,R/M=111,REG=000指令碼為:指令碼為:8B 07-6h=+(-6)h第3章 指令系統(tǒng) 76 例例
48、寫出指令MOVBX+DI-6,CL的機器語言編碼(假設在80386/80486上是16位操作)。 這條指令可用符號寫成MOV mem, reg的形式,源操作數(shù)是寄存器尋址,目的數(shù)是存儲器尋址方式,故此指令的編碼形式為: 由于目的數(shù)是存儲器尋址,D=0和reg域指定了源寄存器。CL寄存器的reg編碼是001B,它與W=0一起表示一個8位操作數(shù)。至此編碼又可進一步寫成如下形式: 第3章 指令系統(tǒng) 77 取r/m的值為001B,是對BX+DI+disp的尋址計算。位移量disp8的范圍是在-128到+127之間,-6為FAH。當mod=01B時, 為選取8位位移量, 則指令MOVBX+DI-6, C
49、L的完整編碼如下: 第3章 指令系統(tǒng) 78地址(地址(CS段)段) 機器代碼機器代碼 指令指令 00A8H FA CLI 00A9H 2E 8E 16 A4 00 MOV SS,CS:00A4H 00AEH BC 50 00 MOV SP,0050H 00B1H BB EC MOV BP,SP 00B3H 2E 8E 1E A6 00 MOV DS,CS:00A6H 00B8H FB STI 00B9H C7 06 40 00 22 11 MOV 0040H,1122H第3章 指令系統(tǒng) 79五、指令不同,尋址方式不同,指令執(zhí)行時間不同,五、指令不同,尋址方式不同,指令執(zhí)行時間不同,時間和計算機
50、主頻(時鐘周期)還有關。時間和計算機主頻(時鐘周期)還有關。 一、按指令格式一、按指令格式,一條指令可占一到六個字節(jié)一條指令可占一到六個字節(jié),從形式從形式上可分單操作數(shù)上可分單操作數(shù),雙操作數(shù)雙操作數(shù),無操作數(shù)指令。無操作數(shù)指令。二、指令中二、指令中16位的立即數(shù)或偏移量位的立即數(shù)或偏移量,變?yōu)闄C器代碼后低變?yōu)闄C器代碼后低字節(jié)后在前字節(jié)后在前,高字節(jié)在后高字節(jié)在后。三、雙操作數(shù)指令不能同為存儲器操作數(shù)三、雙操作數(shù)指令不能同為存儲器操作數(shù)四、助記符形式的匯編語言經匯編(四、助記符形式的匯編語言經匯編(DEBUG,MASM,ASM)變成機器代碼才能被變成機器代碼才能被CPU識別和執(zhí)行。識別和執(zhí)行。
51、第3章 指令系統(tǒng) 80n一般來說,操作數(shù)可以跟隨在指令操作碼之后,稱一般來說,操作數(shù)可以跟隨在指令操作碼之后,稱為立即數(shù);操作數(shù)也可以存放在為立即數(shù);操作數(shù)也可以存放在CPUCPU內部的寄存器中,內部的寄存器中,稱為寄存器操作數(shù)。絕大多數(shù)的操作數(shù)存放在存儲器稱為寄存器操作數(shù)。絕大多數(shù)的操作數(shù)存放在存儲器中,稱為存儲器操作數(shù)。中,稱為存儲器操作數(shù)。n指令指定操作數(shù)的位置即給出地址信息,在執(zhí)行時指令指定操作數(shù)的位置即給出地址信息,在執(zhí)行時需要根據(jù)這個地址信息找到需要的操作數(shù)需要根據(jù)這個地址信息找到需要的操作數(shù)n這種尋找操作數(shù)的過程稱為尋址,而尋找操作數(shù)的這種尋找操作數(shù)的過程稱為尋址,而尋找操作數(shù)的
52、方法稱為尋址方式。方法稱為尋址方式。n指令系統(tǒng)設計了多種操作數(shù)的來源指令系統(tǒng)設計了多種操作數(shù)的來源n操作數(shù)采取哪一種尋址方式,會影響機器運行的速操作數(shù)采取哪一種尋址方式,會影響機器運行的速度和效率度和效率 如何尋址一個操作數(shù)對程序設計如何尋址一個操作數(shù)對程序設計很重要很重要源操作數(shù)與源操作數(shù)與目的操作數(shù)目的操作數(shù)第3章 指令系統(tǒng) 81操作數(shù)尋址方式操作數(shù)尋址方式 指令由操作碼和操作數(shù)兩部分構成。操作碼表明指令要進行什指令由操作碼和操作數(shù)兩部分構成。操作碼表明指令要進行什么樣的操作;操作數(shù)是參加本指令操作的數(shù)據(jù)。操作數(shù)的表現(xiàn)形么樣的操作;操作數(shù)是參加本指令操作的數(shù)據(jù)。操作數(shù)的表現(xiàn)形式比較復雜,可
53、以是參與操作的數(shù)值,也可以是參與操作的數(shù)值式比較復雜,可以是參與操作的數(shù)值,也可以是參與操作的數(shù)值的的“地址地址”,需要通過尋址方式來體現(xiàn)。,需要通過尋址方式來體現(xiàn)。操作碼操作碼操作數(shù)操作數(shù)介紹操作數(shù)之前,首先要清楚計算機中的數(shù)據(jù)可以存放在哪里呢?介紹操作數(shù)之前,首先要清楚計算機中的數(shù)據(jù)可以存放在哪里呢?在計算機運行過程中大量的數(shù)據(jù)在計算機運行過程中大量的數(shù)據(jù)存儲器存儲器中(中(MEM),這部分數(shù)據(jù)),這部分數(shù)據(jù)處理時需要給出操作數(shù)所在存儲單元的地址;處理時需要給出操作數(shù)所在存儲單元的地址;少量數(shù)據(jù)少量數(shù)據(jù)(中間數(shù)據(jù))可以放在中間數(shù)據(jù))可以放在寄存器寄存器中,使用時也需要給出其名中,使用時也需
54、要給出其名稱;稱;接口中也有寄存器,對其訪問需給出其接口中也有寄存器,對其訪問需給出其端口端口地址(第地址(第6章介紹)。章介紹)。還有部分是常數(shù),不需要地址也不需要名稱還有部分是常數(shù),不需要地址也不需要名稱第3章 指令系統(tǒng) 82操作數(shù)的類型操作數(shù)的類型1.1.存儲器操作數(shù)存儲器操作數(shù)存放在代碼段中的數(shù)據(jù)是指令格式編碼的一部分,在取指存放在代碼段中的數(shù)據(jù)是指令格式編碼的一部分,在取指令是就隨指令被取到令是就隨指令被取到CPUCPU,直接可以參加指令操作,通常,直接可以參加指令操作,通常稱為稱為立即數(shù)立即數(shù)。存儲器分為代碼段、數(shù)據(jù)段、附加段和堆棧段,存放在數(shù)存儲器分為代碼段、數(shù)據(jù)段、附加段和堆棧
55、段,存放在數(shù)據(jù)段、附加段和堆棧段中的數(shù)據(jù)即據(jù)段、附加段和堆棧段中的數(shù)據(jù)即存儲器操作數(shù)存儲器操作數(shù),其地址,其地址表示比較復雜,將在尋址方式中做詳細介紹;表示比較復雜,將在尋址方式中做詳細介紹;存放在外設端口中的數(shù)據(jù)稱為端口操作數(shù),存放在外設端口中的數(shù)據(jù)稱為端口操作數(shù),CPUCPU使用專用使用專用的的ININ、OUTOUT指令來對端口進行訪問。指令來對端口進行訪問。2.2.立即操作數(shù)立即操作數(shù)3.3.寄存器操作數(shù)寄存器操作數(shù)存放在寄存器中的數(shù)據(jù)稱為寄存器操作數(shù)存放在寄存器中的數(shù)據(jù)稱為寄存器操作數(shù)。4.4.端口操作數(shù)端口操作數(shù)操作數(shù)尋址方式操作數(shù)尋址方式第3章 指令系統(tǒng) 83(一)立即尋址(一)立
56、即尋址操作數(shù)直接存放在指操作數(shù)直接存放在指令中。用于表示常令中。用于表示常數(shù),給變量賦初值。數(shù),給變量賦初值。例:mov AL,5;mov AL,5; AL5 AL5 10000H10100H10101H 10102H OP34H12H100H。 34HAHAL12HAX代碼段 代碼段起址操作數(shù)包含在指令中,緊跟在操作碼后放在代碼段 。 MOV AX ,1234H (若若CS = 1000H ,IP = 100H)定義:如何尋找如何尋找操作數(shù)或其地址操作數(shù)或其地址第3章 指令系統(tǒng) 84n指令中的操作數(shù)直接存放在機器代碼中,緊跟指令中的操作數(shù)直接存放在機器代碼中,緊跟在操作碼之后(在操作碼之后(
57、操作數(shù)作為指令的一部分存放操作數(shù)作為指令的一部分存放在操作碼之后的主存單元中在操作碼之后的主存單元中)n這種操作數(shù)被稱為立即數(shù)這種操作數(shù)被稱為立即數(shù)imm(immediately) q它可以是它可以是8位數(shù)值位數(shù)值i8(00HFFH)q也可以是也可以是16位數(shù)值位數(shù)值i16(0000HFFFFH)n立即數(shù)尋址方式常用來給寄存器賦值立即數(shù)尋址方式常用來給寄存器賦值注:立即數(shù)可理解為常數(shù),在指令中只能作為源操作數(shù)第3章 指令系統(tǒng) 85MOV AL,05H;AL05HMOV AX,0102H;AX0102H第3章 指令系統(tǒng) 86第3章 指令系統(tǒng) 87第3章 指令系統(tǒng) 88指令指定寄存器內指令指定寄存
58、器內容為操作數(shù)。容為操作數(shù)。MOV AX ,BX 若 AX = 1234H,BX = 4567H4567H4567H AXBX操作數(shù)包含在CPU的內部寄存器中。(二)寄存器尋址二)寄存器尋址例:mov BX,AX;mov BX,AX; BXAX BXAX第3章 指令系統(tǒng) 89n操作數(shù)存放在CPU的內部寄存器reg中,可以是:q8位寄存器r8:AH、AL、BH、BL、CH、CL、DH、DLq16位寄存器r16:AX、BX、CX、DX、SI、DI、BP、SPq4個段寄存器seg:CS、DS、SS、ESSSSS、DSDS、ESES既可以作為源操作數(shù),也可既可以作為源操作數(shù),也可以作為目的操作數(shù),但不
59、能互為目的操以作為目的操作數(shù),但不能互為目的操作數(shù)。作為目的操作數(shù)時,源操作數(shù)不作數(shù)。作為目的操作數(shù)時,源操作數(shù)不能是立即數(shù),能是立即數(shù),CSCS只能作為源操作數(shù)。只能作為源操作數(shù)。 第3章 指令系統(tǒng) 90MOV AX,1234H;AX1234HMOV BX,AX;BXAX第3章 指令系統(tǒng) 91第3章 指令系統(tǒng) 92第3章 指令系統(tǒng) 93 存儲器操作數(shù)的尋址方式中,數(shù)據(jù)都存放于存儲單元中,指令操作過程中需要BIU通過一個總線周期的訪問,才能獲取操作數(shù)。存儲器操作數(shù)的尋址方式是怎么計算出操作數(shù)的有效地址EA(Effective Address)。有效地址EA是三個地址量因子一個以上組合,由CPU
60、執(zhí)行單元EU計算出來。 存儲器尋址(存儲器尋址(Memory AddressingMemory Addressing)偏移量因子(Displacement):偏移量是指令中直接給出的一個8/16位數(shù);基址量因子(Base):由基址寄存器BX或BP提供的內容;變址量因子(Index):由變址寄存器SI或DI提供的內容。注:3個地址量因子組合有7種方式。根據(jù)組合后地址量因子的特點,最終合并成5種尋址方式。3.3 3.3 操作數(shù)尋址方式操作數(shù)尋址方式第3章 指令系統(tǒng) 94例:例:mov SI,var;mov SI,var;var var 定義為變量。定義為變量。(三)直接尋址三)直接尋址指令中直接給
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年房車露營旅行保險服務行業(yè)深度調研及發(fā)展戰(zhàn)略咨詢報告
- 2025-2030年房車旅游社交媒體營銷行業(yè)跨境出海戰(zhàn)略研究報告
- 2025-2030年含乳飲料口感提升行業(yè)深度調研及發(fā)展戰(zhàn)略咨詢報告
- 2025-2030年可拼接糖果企業(yè)制定與實施新質生產力戰(zhàn)略研究報告
- 2025-2030年即食龍蝦肉罐頭行業(yè)跨境出海戰(zhàn)略研究報告
- 2025-2030年抽象藝術畫展行業(yè)跨境出海戰(zhàn)略研究報告
- 帆布在戶外休閑家具的舒適度與環(huán)保性能考核試卷
- 搪瓷杯具的設計與個性化定制考核試卷
- 二零二五年度企業(yè)辦公場地使用權購買協(xié)議
- 零星工程安全文明施工和環(huán)境保護措施
- 小區(qū)排水管網修復施工方案
- 智慧城市發(fā)展-人工智能技術在城市管理中的應用
- 因產品質量買賣合同糾紛起訴狀
- 安監(jiān)人員考核細則(2篇)
- GB/T 6892-2023一般工業(yè)用鋁及鋁合金擠壓型材
- 實驗室危險廢物處理廢液分類與收集
- 生物技術制藥課件
- 生活老師培訓資料課件
- 2020年新概念英語第一冊lesson97-102單元檢測
- 腹主動脈瘤(護理業(yè)務學習)
- 注射用醋酸亮丙瑞林微球
評論
0/150
提交評論