版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、蘇州科技學(xué)院電子學(xué)院趙梅制作蘇州科技學(xué)院電子學(xué)院趙梅制作匯編語言程序設(shè)計匯編語言程序設(shè)計主講:趙主講:趙 梅梅課程簡介課程簡介援用援用概述 匯編語言是計算機提供給用戶的最匯編語言是計算機提供給用戶的最快最有效的語言,也是利用計算機所有快最有效的語言,也是利用計算機所有硬件特性并能直接控制硬件的唯一語言。硬件特性并能直接控制硬件的唯一語言。因而在對于程序的空間和時間要求很高的場合,因而在對于程序的空間和時間要求很高的場合,匯編語言是必不可少的。匯編語言是必不可少的。很多需要直接控制硬件的應(yīng)用場合,很多需要直接控制硬件的應(yīng)用場合,更是非用匯編語言不可。更是非用匯編語言不可。特點匯編語言是介于計算機
2、能直接理解的機器語言與使用匯編語言是介于計算機能直接理解的機器語言與使用者容易理解的高級語言之間的一種語言。它除有與代者容易理解的高級語言之間的一種語言。它除有與代碼指令一一對應(yīng)的符號指令外,還增加了專用于定義碼指令一一對應(yīng)的符號指令外,還增加了專用于定義變量、常量、符號、過程、分配存貯空間、定位程序變量、常量、符號、過程、分配存貯空間、定位程序起始地址等一系列稱之為偽指令的符號指令。起始地址等一系列稱之為偽指令的符號指令。同高級語言比較,它更接近機器語言,更能全面地同高級語言比較,它更接近機器語言,更能全面地反映計算機硬件的功能特點。同機器語言比較,它反映計算機硬件的功能特點。同機器語言比較
3、,它易于閱讀,編寫和修改程序。因此,易于閱讀,編寫和修改程序。因此, 使用匯編語言使用匯編語言可編寫出運行速度快、占存儲空間少、能充分利用可編寫出運行速度快、占存儲空間少、能充分利用硬件資源、發(fā)揮計算機效能并能進行精確控制的程硬件資源、發(fā)揮計算機效能并能進行精確控制的程序。序。運用高級語言編譯程序的編高級語言編譯程序的編制;編輯、調(diào)試,鏈接制;編輯、調(diào)試,鏈接裝配、磁盤驅(qū)動和磁盤裝配、磁盤驅(qū)動和磁盤讀寫等實用程序的編制讀寫等實用程序的編制;控制、指揮和監(jiān)測等;控制、指揮和監(jiān)測等實時處理程序的編制;實時處理程序的編制;計算機系統(tǒng)的開發(fā)。計算機系統(tǒng)的開發(fā)。 匯編語言是面向機器的匯編語言是面向機器的
4、語言,故它將因計算機語言,故它將因計算機機型的不同而異。但用機型的不同而異。但用匯編語言進行程序設(shè)計匯編語言進行程序設(shè)計的基本概念、基本技巧的基本概念、基本技巧和基本方法是普遍適用和基本方法是普遍適用的。我們選擇目前國內(nèi)的。我們選擇目前國內(nèi)最廣泛使用的最廣泛使用的 IBM PC 作作為基礎(chǔ)講授。其它機型為基礎(chǔ)講授。其它機型同學(xué)們定可觸類旁通。同學(xué)們定可觸類旁通。 學(xué)習(xí)匯編語言程序設(shè)計匯編語言程序設(shè)計第第1章章 匯編語言基礎(chǔ)知識匯編語言基礎(chǔ)知識第第2章章 8086的指令系統(tǒng)的指令系統(tǒng)第第3章章 匯編語言程序格式匯編語言程序格式第第4章章 基本匯編語言程序設(shè)計基本匯編語言程序設(shè)計第第1 1章章 匯
5、編語言基礎(chǔ)知識匯編語言基礎(chǔ)知識1.1 計算機系統(tǒng)概述計算機系統(tǒng)概述1.2 數(shù)據(jù)表示數(shù)據(jù)表示1.3 Intel80 x86系列微處理器系列微處理器1.4 微型計算機系統(tǒng)微型計算機系統(tǒng)1.5 8086微處理器微處理器1.6 8086的尋址方式的尋址方式1.1 計算機系統(tǒng)概述計算機系統(tǒng)計算機系統(tǒng)計算機硬件計算機硬件計算機軟件計算機軟件中央處理器中央處理器存儲器存儲器外部設(shè)備外部設(shè)備運算器運算器控制器控制器寄存器寄存器系統(tǒng)軟件系統(tǒng)軟件應(yīng)用軟件應(yīng)用軟件主存儲器主存儲器輔助存儲器輔助存儲器輸入設(shè)備輸入設(shè)備輸出設(shè)備輸出設(shè)備中央處理器中央處理器CPU總線控制邏輯存儲器存儲器接口接口接口接口大容量大容量存儲器存
6、儲器I/O設(shè)備設(shè)備系統(tǒng)總線系統(tǒng)總線I/O子子系系統(tǒng)統(tǒng)計算機結(jié)構(gòu)計算機結(jié)構(gòu)磁盤、磁磁盤、磁帶、光盤帶、光盤外存外存數(shù)據(jù)總線、地址總數(shù)據(jù)總線、地址總線、控制總線線、控制總線系統(tǒng)總線系統(tǒng)總線1.1 計算機系統(tǒng)概述計算機程序設(shè)計語言計算機程序設(shè)計語言機器語言機器語言匯編語言匯編語言高級語言高級語言0或或1組成的代碼組成的代碼使用指令集編寫程序的規(guī)則使用指令集編寫程序的規(guī)則B8 64 0005 00 01一種符號語言一種符號語言用助記符表示操作碼用助記符表示操作碼MOV AX,100ADD AX,256接近于人類自然語言的語法接近于人類自然語言的語法習(xí)慣及數(shù)學(xué)表達形式習(xí)慣及數(shù)學(xué)表達形式1.2 數(shù)制表示
7、數(shù)制的基數(shù)與權(quán)數(shù)制的基數(shù)與權(quán)基數(shù):數(shù)制所使用的數(shù)碼個數(shù)基數(shù):數(shù)制所使用的數(shù)碼個數(shù)例:十進制數(shù)使用例:十進制數(shù)使用09十個數(shù),所以它的基數(shù)是十個數(shù),所以它的基數(shù)是10權(quán):數(shù)制每一位置所具有的值權(quán):數(shù)制每一位置所具有的值例:例:6 8 4 5千千 百百 十十 個個103 102 101 100十進制數(shù)各位的權(quán)十進制數(shù)各位的權(quán)是以是以10為底的冪為底的冪二進制數(shù)使用二進制數(shù)使用0、1兩個數(shù),兩個數(shù),它的它的“基基”?各各位的位的“權(quán)又權(quán)又是是多少呢?多少呢? 由由0、1二個數(shù)碼構(gòu)成,基數(shù)為二個數(shù)碼構(gòu)成,基數(shù)為2,第,第i位的權(quán)為位的權(quán)為2i,運算規(guī)則:逢二進一、借一作二運算規(guī)則:逢二進一、借一作二
8、二進制數(shù)二進制數(shù)Binary )101011B=125+024+123+022+121+120=43D一個二進制數(shù)按權(quán)展開求和就轉(zhuǎn)換成了對應(yīng)的十進制數(shù)一個二進制數(shù)按權(quán)展開求和就轉(zhuǎn)換成了對應(yīng)的十進制數(shù)8 4 2 1牢記!牢記!1 0 1 1 B23 22 21 20例:一個二進制數(shù)例:一個二進制數(shù)各位的權(quán)各位的權(quán)基數(shù)說明符基數(shù)說明符 十六進制數(shù)十六進制數(shù)HexadecimalHexadecimal)14AFH=1163+4162+10161+15160=5295D 由由0、1、29、A、B、C、D、E、F十六個十六個數(shù)碼構(gòu)成?;鶖?shù)為數(shù)碼構(gòu)成。基數(shù)為16,第,第i位的權(quán)為位的權(quán)為16i運算運算 規(guī)
9、則:逢十六進一、借一作十六規(guī)則:逢十六進一、借一作十六十六進制數(shù)是匯編語言的書寫工具十六進制數(shù)是匯編語言的書寫工具 數(shù)制轉(zhuǎn)換數(shù)制轉(zhuǎn)換1)1. 非十進制數(shù)轉(zhuǎn)換成十進制數(shù)非十進制數(shù)轉(zhuǎn)換成十進制數(shù)按權(quán)展開求和按權(quán)展開求和2. 十進制數(shù)轉(zhuǎn)換成非十進制數(shù)十進制數(shù)轉(zhuǎn)換成非十進制數(shù)整數(shù)部分與整數(shù)部分與小數(shù)部分小數(shù)部分分別轉(zhuǎn)換分別轉(zhuǎn)換例例1:57D=111001B=39H57281222221407031110116 5716 3903除基數(shù)取余數(shù)除基數(shù)取余數(shù)高高低低2 數(shù)制轉(zhuǎn)換數(shù)制轉(zhuǎn)換2)例例2:十進制數(shù)轉(zhuǎn)換成非十進制數(shù)小數(shù)部分):十進制數(shù)轉(zhuǎn)換成非十進制數(shù)小數(shù)部分)0.625D=0.101B=0.AH0.6
10、25*2=1.251 0.25*2= 0.50 0.5*2= 110.625*16=10A乘基數(shù)取整數(shù)乘基數(shù)取整數(shù)57.625D=111001.101B=39.AH高高低低 數(shù)制轉(zhuǎn)換數(shù)制轉(zhuǎn)換3)3. 二、十六進制數(shù)之間的轉(zhuǎn)換二、十六進制數(shù)之間的轉(zhuǎn)換二進制數(shù)二進制數(shù) 十六進制數(shù)十六進制數(shù) 四位一組四位一組分組時如位數(shù)不夠,分組時如位數(shù)不夠,整數(shù)部分在最左邊整數(shù)部分在最左邊補零,小數(shù)部分在補零,小數(shù)部分在最右邊補零最右邊補零十六進制十六進制二進制二進制一位對應(yīng)換成二進制數(shù)四位一位對應(yīng)換成二進制數(shù)四位1100100.11011B= .010001101101 1000 =64. D8H46D8 編碼
11、編碼 ASC碼:碼: 美國信息交換標(biāo)準(zhǔn)碼,一般用美國信息交換標(biāo)準(zhǔn)碼,一般用7bit 二進制編碼二進制編碼 來表示數(shù)字來表示數(shù)字 、英文字母、符號等、英文字母、符號等例:例:0 的的ASCII是是 30H 9 的的ASCII是是 39Ha 的的ASCII是是 61HA的的ASCII是是 41HASCII值小于值小于20H的是不可顯示字符的是不可顯示字符BCD碼:碼:1位十進制數(shù)用位十進制數(shù)用4位二進制編碼表示位二進制編碼表示有符號數(shù)的表示法有符號數(shù)的表示法機器數(shù):機器數(shù): 連同一個符號位在一起作為一個數(shù)叫機器數(shù)連同一個符號位在一起作為一個數(shù)叫機器數(shù)連符號一起數(shù)連符號一起數(shù)字化了的數(shù)字化了的數(shù) 機
12、器數(shù)機器數(shù)正數(shù)的符號位用正數(shù)的符號位用0表示,負數(shù)符號位用表示,負數(shù)符號位用1表示表示原碼原碼最高有效位為符號位最高有效位為符號位例:設(shè)機器字長為例:設(shè)機器字長為8位,二進制數(shù)位,二進制數(shù)+10010和和-100001 其原碼為:其原碼為:00010010,10100001真值真值反碼:對于二進制正數(shù),反碼等于該數(shù)原碼反碼:對于二進制正數(shù),反碼等于該數(shù)原碼 對于二進制負數(shù),符號位為對于二進制負數(shù),符號位為1,其余各位取反,其余各位取反例:設(shè)機器字長為例:設(shè)機器字長為8位,二進制數(shù)位,二進制數(shù)+1100101和和-1010001 其反碼為:其反碼為:01100101,10101110真值真值有符
13、號數(shù)的表示法有符號數(shù)的表示法補碼:對于二進制正數(shù),補碼等于該數(shù)原碼補碼:對于二進制正數(shù),補碼等于該數(shù)原碼 對于二進制負數(shù),符號位為對于二進制負數(shù),符號位為1,其余各位取反,末位加,其余各位取反,末位加1例:設(shè)機器字長為例:設(shè)機器字長為8位,二進制數(shù)位,二進制數(shù)+1100101和和-1010001 其補碼為:其補碼為:01100101,10101111有符號數(shù)的表示法有符號數(shù)的表示法1.3 Intel 80X86微處理器型號型號808680888028680386發(fā)布發(fā)布年份年份1978197919821986字長字長(位位)16163216晶體管數(shù)晶體管數(shù)(萬個)(萬個)2.92.913.42
14、7.5 主頻主頻(MHz)4.774.7762012.533數(shù)據(jù)數(shù)據(jù)總線總線寬度寬度(位位)16161632外部外部總線總線寬度寬度(位位)地址地址總線總線寬度寬度(位位)尋址尋址空間空間高速高速緩存緩存1681632202024321M1M16M4G無無無無無無有有型號型號80486Pentium(586)發(fā)布發(fā)布年份年份1989199320192019字長字長(位位)32323232 晶體晶體 管數(shù)管數(shù)(萬個萬個)120160310330550750 主頻主頻(MHz)2510060166150200233333數(shù)據(jù)數(shù)據(jù)總線總線寬度寬度(位位)32646464外部外部總線總線寬度寬度(位位
15、)地址地址總線總線寬度寬度(位位)尋址尋址空間空間高速高速緩存緩存32646464323236364G4G64G64G8KB8KB數(shù)數(shù)據(jù)據(jù)8KB指令指令PentiumPro(P6)Pentium II8KB數(shù)數(shù)據(jù)據(jù)8KB指令指令256KB二級高二級高速緩存速緩存32KB512KB二級高速二級高速緩存,有獨立封緩存,有獨立封裝和獨立總線裝和獨立總線1.4 微型計算機PC系統(tǒng)1981年,年,IBM公司,公司,8088CPU,IBM PC個人計算機個人計算機擴展型擴展型PC/XT,增強型,增強型IBM/AT80286)各種各種32位位PC采用采用32位位Intel 80 x86CPU現(xiàn)在人們談?wù)摰默F(xiàn)
16、在人們談?wù)摰腜C機是以機是以80 x86CPU構(gòu)成的微型計算機系統(tǒng)構(gòu)成的微型計算機系統(tǒng)復(fù)制復(fù)制ROM HMA64KB)系統(tǒng)系統(tǒng)ROM128KB系統(tǒng)系統(tǒng)RAM640KB顯示顯示RAM128KB擴展擴展ROM128KBFFFFFFFF00100000000E0000000C0000000A000000000000常規(guī)主存常規(guī)主存擴展主存擴展主存32位位PC主存主存(4GB) PC/XT 主存主存(1MB)系統(tǒng)系統(tǒng)RAM640KB顯示顯示RAM128KB擴展擴展ROM128KB系統(tǒng)系統(tǒng)ROM128KB實方式主存實方式主存 UMA(384KB)上位主存上位主存區(qū)區(qū)高端主高端主存區(qū)存區(qū)復(fù)制復(fù)制BIOS只
17、能在保護方只能在保護方式使用式使用PCPC軟件軟件匯編語言的運行環(huán)境匯編語言的運行環(huán)境DOS操作系統(tǒng)操作系統(tǒng)Windows 的的MS-DOS環(huán)境環(huán)境匯編語言程序設(shè)計主要利用的一些軟件:匯編語言程序設(shè)計主要利用的一些軟件:編輯軟件:編輯軟件:EDIT;記事本;記事本;Turbo C編輯器等編輯器等匯編程序:匯編程序:MASM 5.X; MASM 6.X; Turbo ASM 等等連接程序:連接程序:LINK.EXE調(diào)試程序:調(diào)試程序:DEBUG、 Turbo Debugger等等1.5 8086微處理器地址總線地址總線20位位控制總線控制總線數(shù)據(jù)總線數(shù)據(jù)總線16AHBHCHDHALBLCLDLS
18、PBPSIDICSDSSSESIP內(nèi)部暫存寄存器內(nèi)部暫存寄存器暫存寄存器暫存寄存器FREU控制系統(tǒng)1 2 3 4 5 6總線控制邏輯總線控制邏輯數(shù)據(jù)總線數(shù)據(jù)總線16ALU通用寄存器通用寄存器8088指令隊列指令隊列8088/8086外部總線外部總線數(shù)據(jù)總線數(shù)據(jù)總線地址總線地址總線20位位執(zhí)行部件執(zhí)行部件EU總線接口部件總線接口部件BIU16位位控制總線EU控制系統(tǒng)ALUEU控制系統(tǒng)控制系統(tǒng)ALU數(shù)據(jù)總線數(shù)據(jù)總線16地址總線地址總線20位位控制總線AXBXCXDXSPBPAHALBHBLCHCLDHDLAXBXCXDX15 0通用寄存器通用寄存器累加器累加器基地址寄存器基地址寄存器計數(shù)器計數(shù)器數(shù)
19、據(jù)寄存器數(shù)據(jù)寄存器8086/8088堆棧指針堆棧指針基址指針基址指針源變址源變址目的變址目的變址DISI 專用寄存器專用寄存器IP指令指針寄存器指令指針寄存器標(biāo)志寄存器標(biāo)志寄存器用來存放代碼段的偏移地址,用來存放代碼段的偏移地址,總是指向下一條指令的首地址總是指向下一條指令的首地址FLAGS15 0OF DFIFTF SF ZFAFPFCF15 11 10 9 8 7 6 5 4 3 2 1 0進位標(biāo)志進位標(biāo)志奇偶標(biāo)志奇偶標(biāo)志半進位標(biāo)志半進位標(biāo)志零標(biāo)志零標(biāo)志符號標(biāo)志符號標(biāo)志中斷標(biāo)志中斷標(biāo)志單步標(biāo)志單步標(biāo)志溢出標(biāo)志溢出標(biāo)志方向標(biāo)志方向標(biāo)志 存儲器組織與段寄存器存儲器組織與段寄存器1 0字節(jié)字節(jié)7
20、 6 5 4 3 2 1 00003H0002H0001H0000H12H40H35H18H(0002H)=40H(0000H)=18H 字:字:2個字節(jié)組成一個字個字節(jié)組成一個字16位)位)0003H0002H0001H0000H字字字字12H40H35H18H留意:留意:機器內(nèi)部訪問存儲器字單元機器內(nèi)部訪問存儲器字單元時是以偶地址開始的,假設(shè)時是以偶地址開始的,假設(shè)以奇地址訪問字單元,需求以奇地址訪問字單元,需求訪問兩次存儲器訪問兩次存儲器12H15H14H13H雙字:雙字:4個字節(jié)組成雙字個字節(jié)組成雙字32位)位)雙字雙字地址為地址為0002H字單元的內(nèi)容為:字單元的內(nèi)容為:(0002H
21、)=1240H例:地址為例:地址為0002H的單元內(nèi)容為的單元內(nèi)容為 (0002H)=40H同一個地址既可看作字節(jié)單元的地址,又可看作同一個地址既可看作字節(jié)單元的地址,又可看作字單元、雙字單元或字單元、雙字單元或4字單元的地址字單元的地址8086CPU有有20條地址線條地址線 尋址能力尋址能力地址范圍地址范圍220=1M字節(jié)字節(jié) 指令指針寄存器指令指針寄存器IP16位位和地址有關(guān)的寄存和地址有關(guān)的寄存器器SP、BP、SI、DI16位位算術(shù)邏輯單元算術(shù)邏輯單元ALU16位位分段分段 每一段可以從每一段可以從1M空間的任空間的任一個能被一個能被16除盡的地址開始。除盡的地址開始。段內(nèi)地址是段內(nèi)地址
22、是16位的位的00000FFFFFH00003H00002H00001H00000H 物理地址的形成物理地址的形成四個專門存放段地址的寄存器四個專門存放段地址的寄存器 CS:代碼段寄存器:代碼段寄存器 DS:數(shù)據(jù)段寄存器:數(shù)據(jù)段寄存器 SS:堆棧段寄存器:堆棧段寄存器 ES:附加段寄存器:附加段寄存器每一個段寄存器可以確定每一個段寄存器可以確定一個段的起始地址一個段的起始地址16位段地址位段地址16位偏移地址位偏移地址15 015 020位物理地址位物理地址+19 00 0 0 0存放當(dāng)前正在運行程序的段首地址存放當(dāng)前正在運行程序的段首地址存放當(dāng)前程序所用數(shù)據(jù)的段首地址存放當(dāng)前程序所用數(shù)據(jù)的段
23、首地址存放堆棧區(qū)域的段首地址存放堆棧區(qū)域的段首地址輔助數(shù)據(jù)區(qū)域的段首地址輔助數(shù)據(jù)區(qū)域的段首地址物理地址物理地址=段地址段地址16+偏移地址偏移地址 地址加法器地址加法器19 0物理地址物理地址段寄存器段寄存器 偏移地址偏移地址15 015 00000段地址段地址例:例: (CS)=4232H,(,(IP)=66H, 物理地址的形成物理地址的形成00001H00000H42320H42386H(物理地址)(物理地址)偏移量偏移量66H下一條指令下一條指令CSIP1.6 80861.6 8086的尋址方式的尋址方式尋址方式:尋找操作數(shù)的方式尋址方式:尋找操作數(shù)的方式指令系統(tǒng):編制計算機程序的指令集
24、合指令系統(tǒng):編制計算機程序的指令集合指令指令操作碼操作碼操作數(shù)操作數(shù)程序:就是根據(jù)需要用指令編排出的操作順序程序:就是根據(jù)需要用指令編排出的操作順序機器指令機器指令 8B D9 8A 04 BF 00 20MOV BX,CXMOV AL,SIMOV DI,2000H匯編語言指令格式匯編語言指令格式標(biāo)號:標(biāo)號:指令助記符指令助記符操作數(shù)操作數(shù);注釋;注釋, az、AZ、09或某些特殊符號(,或某些特殊符號(,-,?),?) 第一個字符必須是字母或某些特殊符號(,第一個字符必須是字母或某些特殊符號(,-,?),?) ?不能單獨使用?不能單獨使用 標(biāo)識符有效長度為標(biāo)識符有效長度為31個字符個字符標(biāo)識
25、符:標(biāo)識符:例:例: MOV AL,80H1. 立即數(shù)尋址立即數(shù)尋址操作數(shù)就包含在指令當(dāng)中操作數(shù)就包含在指令當(dāng)中MOV AL,80H ;將;將80H送入送入ALMOV AX,1090H ;將;將1090H送入送入AXMOV EAX,12345678H源操作數(shù)源操作數(shù)目的操作數(shù)目的操作數(shù)例:例: 立即數(shù)可以是立即數(shù)可以是8位、位、16位位 、32位位386以后數(shù)值以后數(shù)值 立即數(shù)通常用來給寄存器賦值立即數(shù)通常用來給寄存器賦值 2. 2. 寄存器尋址寄存器尋址操作數(shù)在操作數(shù)在8位、位、16位或位或32位寄存器中位寄存器中INC CX ;將;將CX的內(nèi)容加的內(nèi)容加1ROL AH,1 ;將;將AH中的
26、內(nèi)容循環(huán)左移一位中的內(nèi)容循環(huán)左移一位MOV AX,BXMOV AX,1090H寄存器可以是寄存器可以是AX、BX、CX、DX、SI、DI、SP、BP AH、AL、BH、BL、CH、CL、DH、DL 在一條指令中,可以對源操作數(shù)采用寄存器尋址,也可以對目在一條指令中,可以對源操作數(shù)采用寄存器尋址,也可以對目標(biāo)操作數(shù)采用寄存器尋址,還可以兩者都采用寄存器尋址方式標(biāo)操作數(shù)采用寄存器尋址,還可以兩者都采用寄存器尋址方式例:例:3. 3. 存儲器尋址存儲器尋址 操作數(shù)在存儲器中,其有效地址操作數(shù)在存儲器中,其有效地址EA包含在指令中的尋址方式包含在指令中的尋址方式留意:立即數(shù)尋址和直接尋址的書寫格式,留
27、意:立即數(shù)尋址和直接尋址的書寫格式,直接尋址的地址要放在方括號中直接尋址的地址要放在方括號中ES:例:例:MOV AX,1070H ;DS段的段的1070H和和1071H 兩單元的內(nèi)容傳送到兩單元的內(nèi)容傳送到AX中中(1直接尋址直接尋址物物理理地地址址存儲器存儲器代代碼碼段段數(shù)數(shù)據(jù)據(jù)段段50000H51070HOP 70108967.00000H51071H假設(shè)假設(shè)DS=5000H,地址,地址為為51070H字存儲單元字存儲單元的內(nèi)容是的內(nèi)容是6789H。執(zhí)行執(zhí)行 MOV AX, 1070H6789AXAH ALDS1650000H1070H+51070H內(nèi)部地址加內(nèi)部地址加法器完成法器完成有
28、效地址偏移地址)有效地址偏移地址)例:例: MOV AX, VALUE 或或 MOV AX,VALUE符號地址符號地址MOV 1000H,AL例:例: 操作數(shù)在存儲器中,操作數(shù)的有效地址是操作數(shù)在存儲器中,操作數(shù)的有效地址是寄存器的內(nèi)容。寄存器的內(nèi)容。BX、BPSI、DI 之一之一注:如果沒有特殊說明,用寄存器注:如果沒有特殊說明,用寄存器BP尋址時,尋址時,段寄存器是段寄存器是SS,其余為數(shù)據(jù)段寄存器,其余為數(shù)據(jù)段寄存器DS 。 DS1650000H1234H+51234H內(nèi)部地址加內(nèi)部地址加法器完成法器完成例例1:假設(shè):假設(shè)DS)=5000H,(,(SI)=1234H, 51234H字單元
29、的內(nèi)容是字單元的內(nèi)容是6789H 執(zhí)行指令執(zhí)行指令MOV AX,SI偏移地址,偏移地址,SI的內(nèi)容的內(nèi)容物理地址物理地址(AX)=6789H存儲器存儲器數(shù)數(shù)據(jù)據(jù)段段50000H51234H8967.00000H51235H例例2:假設(shè):假設(shè)SS)=4000H,(,(BP)=1234H, (CX)=6789H執(zhí)行該條指令執(zhí)行該條指令MOV BP,CXSS1640000H1234H+41234H內(nèi)部地址加內(nèi)部地址加法器完成法器完成存儲器存儲器堆堆棧棧段段40000H41234H.00000H41235H偏移地址,偏移地址,BP的內(nèi)容的內(nèi)容物理地址物理地址8967(CX)=6789H帶位移量的寄存器
30、間接尋址帶位移量的寄存器間接尋址有效地址有效地址=BXBPSI DI+8位位移量位位移量16位位移量位位移量執(zhí)行該指令后,(執(zhí)行該指令后,(AX)=55AAH例:例: 假設(shè)假設(shè)DS)=5000H,(,(DI)=3678H 548ACH字存儲單元的內(nèi)容是字存儲單元的內(nèi)容是55AAH50000H 3678H 1234H548ACH+帶位移量的寄存器間接尋帶位移量的寄存器間接尋址址寄存器相對尋址寄存器相對尋址MOV AX,1234H DI 執(zhí)行執(zhí)行 MOV AX, DI+1234H 寄存器間接尋寄存器間接尋址的物理地址址的物理地址單元是單元是548ACH(4 4) 基址變址尋址基址變址尋址 操作數(shù)的
31、有效地址是一個基址寄存器的內(nèi)容加上操作數(shù)的有效地址是一個基址寄存器的內(nèi)容加上一個變址寄存器的內(nèi)容一個變址寄存器的內(nèi)容有效地址有效地址EA=+BXBPSIDI語句執(zhí)行后語句執(zhí)行后17000H和和17001H)AX例:例: MOV AX,BX+SI假設(shè)假設(shè)DS)=1000H,(,(BX)=5000H,(,(SI)=2000H那么:有效地址為:(那么:有效地址為:(BX)+(SI)= 7000H 物理地址為:物理地址為:10000H+7000H=17000HMOV AX, BX SI (5 5) 相對基址變址尋址相對基址變址尋址有效地址有效地址EA=+帶位移量的基址變址尋址帶位移量的基址變址尋址+B
32、XBPSIDI8位位移量位位移量16位位移量位位移量語句執(zhí)行后語句執(zhí)行后17002H和和17003H)AX例:例: MOV AX,BX+SI+2假設(shè)假設(shè)DS)=1000H,(,(BX)=5000H,(,(SI)=2000H那么:有效地址為:(那么:有效地址為:(BX)+(SI)+2 =7002H 物理地址為:物理地址為:10000H+7002H=17002HMOV AX,2BXSI綜合練習(xí)綜合練習(xí)假設(shè):假設(shè):BX=0158H,DI=10A5H,位移量,位移量=1B57H,DS=2100H 指令沒有使用前綴。指令沒有使用前綴。 直接尋址:有效地址直接尋址:有效地址= 物理地址物理地址=1B57H
33、21000H+1B57H=22B57H 寄存器間接尋址寄存器為寄存器間接尋址寄存器為BX):): 有效地址有效地址= 物理地址物理地址=0158H21000H+0158H=21158H BX寄存器相對間接尋址:寄存器相對間接尋址: 有效地址有效地址= 物理地址物理地址=0158H+1B57H=1CAFH21000H+1CAFH=22CAFH綜合練習(xí)綜合練習(xí)假設(shè):假設(shè):BX=0158H,DI=10A5H,位移量,位移量=1B57H, DS=2100H 指令沒有使用前綴。指令沒有使用前綴。 變址尋址寄存器為變址尋址寄存器為DI) :10A5H21000H+10A5H=220A5H10A5H+1B5
34、7H=2BFCH21000H+2BFCH=23BFCH有效地址有效地址= 物理地址物理地址= DI寄存器相對變址尋址:寄存器相對變址尋址:有效地址有效地址= 物理地址物理地址=綜合練習(xí)綜合練習(xí) 基址變址尋址基址變址尋址BX為基址寄存器,為基址寄存器,DI為變址寄存器)為變址寄存器) 有效地址有效地址= 物理地址物理地址=0158H+10A5H=11FDH21000H+11FDH=221FDH 相對的基址變址尋址相對的基址變址尋址BX為基址寄存器,為基址寄存器,DI為變址寄存器)為變址寄存器) 有效地址有效地址= 物理地址物理地址=0158H+10A5H+1B57H=2D54H21000H+2D
35、54H=23D54H假設(shè):假設(shè):BX=0158H,DI=10A5H,位移量,位移量=1B57H, DS=2100H 指令沒有使用前綴。指令沒有使用前綴。尋址方式總結(jié)尋址方式總結(jié)操作數(shù)尋址操作數(shù)尋址立即數(shù)尋址立即數(shù)尋址寄存器尋址寄存器尋址存儲器尋址存儲器尋址直接尋址直接尋址寄存器間接尋址寄存器間接尋址寄存器相對尋址寄存器相對尋址基址變址尋址基址變址尋址相對基址變址尋址相對基址變址尋址數(shù)據(jù)段基址尋址數(shù)據(jù)段基址尋址堆棧段基址尋址堆棧段基址尋址變址尋址變址尋址作業(yè):作業(yè):1.11 1.15 1.17 1.19 1.20 1.22 1.24第2章 8086的指令系統(tǒng)2.1 數(shù)據(jù)傳送類指令2.2 算術(shù)運算
36、類指令2.3 位操作類指令2.4 控制轉(zhuǎn)移類指令2.5 串操作類指令2.6 處理機控制類指令2.1 2.1 數(shù)據(jù)傳送類指令數(shù)據(jù)傳送類指令指令系統(tǒng)指令系統(tǒng)數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令算術(shù)指令算術(shù)指令邏輯指令邏輯指令串處理指令串處理指令控制轉(zhuǎn)移指令控制轉(zhuǎn)移指令處理機控制指令處理機控制指令通用數(shù)據(jù)傳送指令通用數(shù)據(jù)傳送指令堆棧操作指令堆棧操作指令標(biāo)志傳送指令標(biāo)志傳送指令地址傳送指令地址傳送指令輸入輸出指令輸入輸出指令8位或位或16位通用寄存器位通用寄存器AX、BX、CX、DXBP、SP、SI、DI段寄存器段寄存器CS、 DS、ES、SS存儲器存儲器立即數(shù)立即數(shù)MOV指令數(shù)據(jù)傳送方向示意圖指令數(shù)據(jù)傳送方向示
37、意圖CS不能做目不能做目的操作數(shù)的操作數(shù)1. 傳送指令傳送指令格式:格式: MOV DST,SRC目的目的源源功能:把一個字節(jié)或一個字從源操作數(shù)功能:把一個字節(jié)或一個字從源操作數(shù)SCR送至送至 目的操作數(shù)目的操作數(shù)DST,源操作數(shù)不改變。,源操作數(shù)不改變。留意:源和目的操作數(shù)的類型要一致,即同時為字節(jié)或同時為字留意:源和目的操作數(shù)的類型要一致,即同時為字節(jié)或同時為字段寄存器段寄存器CS、 DS、ES、SS立即數(shù)立即數(shù)存儲器存儲器8位獲位獲16位通用寄存器位通用寄存器AX、BX、CX、DXBP、SP、SI、DIIPMOV指令不影指令不影響標(biāo)志位響標(biāo)志位2.1 .1 2.1 .1 通用數(shù)據(jù)傳送指令
38、通用數(shù)據(jù)傳送指令例:例:MOV AX,1000HMOV AL,EMOV AX,2BPSI;立即數(shù)送到;立即數(shù)送到AX;立即數(shù)送到;立即數(shù)送到AL,E的的ASCII碼碼;存儲單元的內(nèi)容送到;存儲單元的內(nèi)容送到AX16(SS)+(BP)+(SI)+2如果如果BP換成換成BX?判斷對錯判斷對錯MOV 5,ALMOV BX,SIMOV DS,1000HMOV CS,AXMOV AX,DXMOV SI,SIMOV SI,AX判斷對錯判斷對錯MOV BX,ALMOV AX,DI+SIMOV DS,ESMOV AL,AHMOV DS,AXMOV SI,DIMOV 2SI,AX2. 交換指令交換指令XCHG格
39、式:格式:XCHG OPRD1,OPRD2功能:操作數(shù)功能:操作數(shù)OPRD1的內(nèi)容與操作數(shù)的內(nèi)容與操作數(shù)OPRD2的的 內(nèi)容交換內(nèi)容交換OPRD1OPRD1和和OPRD2OPRD2可以是通用寄存器和存儲單元可以是通用寄存器和存儲單元(兩個操作數(shù)不能同時為存儲單元可以采用(兩個操作數(shù)不能同時為存儲單元可以采用各種存儲器尋址方式各種存儲器尋址方式留意:不允許使用段寄存器、立即數(shù)留意:不允許使用段寄存器、立即數(shù)例:例:XCHG AL,AH XCHG SI,BX XCHG SI+3,AL XCHG DX,DI+BX+3格式:格式:XLAT功能:完成一個字節(jié)的查表轉(zhuǎn)換。功能:完成一個字節(jié)的查表轉(zhuǎn)換。 把
40、累加器把累加器AL中的值,轉(zhuǎn)換成以中的值,轉(zhuǎn)換成以BX 為表基址的表中值為表基址的表中值+BX AL3. 換碼指令換碼指令XLAT留意:表的長度不能超過留意:表的長度不能超過256個字節(jié)個字節(jié)BXBX+ALAL=XX換碼指令的功能換碼指令的功能TABLE.XX例:用查表法查求例:用查表法查求 3 的平方,假設(shè)數(shù)據(jù)表已的平方,假設(shè)數(shù)據(jù)表已經(jīng)存放在經(jīng)存放在2000H開始的內(nèi)存中。開始的內(nèi)存中。MOV BX,2000HMOV AL,3XLAT執(zhí)行后執(zhí)行后AL=2000H2009H51H40H31H24H19H10H09H04H01H00H.MOV BX,2000HBXXLATBX+AL09H主程序主
41、程序子程序子程序1子程序子程序2CS:IPCS:IP堆棧堆棧2.1 .2 2.1 .2 堆棧操作指令堆棧操作指令00000H50000H52000H堆棧段堆棧段SP假設(shè):假設(shè):SS=5000H,SP=2000H格式:格式: PUSH SRC功能:把源操作數(shù)功能:把源操作數(shù)SRC 的的16位數(shù)據(jù)壓入位數(shù)據(jù)壓入 堆棧堆棧例:例:AX=8A9BH執(zhí)行執(zhí)行 PUSH AX SP自動減自動減2 將源操作數(shù)的內(nèi)容傳送到將源操作數(shù)的內(nèi)容傳送到 SP指向的單元指向的單元8A9B1. 1. 進棧指令進棧指令PUSH PUSH 00000H50000H52000H堆棧段堆棧段SP假設(shè):假設(shè):SS=5000H,SP
42、=1FFEH2. 2. 出棧指令出棧指令POPPOP格式:格式: POP DST功能:從堆棧中彈出功能:從堆棧中彈出16位數(shù)據(jù)到目的操作數(shù)位數(shù)據(jù)到目的操作數(shù)DST , SP自動加自動加2例:例:執(zhí)行執(zhí)行 POP BX將將SP指向單元的內(nèi)容傳送到指向單元的內(nèi)容傳送到 目的操作數(shù)目的操作數(shù)SP自動加自動加28A9B9B8A執(zhí)行后執(zhí)行后 BX=H可以是通用寄存器、段寄存器可以是通用寄存器、段寄存器CS除外和字存儲單元除外和字存儲單元PUSH reg POP regPUSH mem POP memPUSH segreg POP segregPUSH data除除CS的所有的所有段寄存器段寄存器8086
43、以后以后1. 標(biāo)志寄存器傳送標(biāo)志寄存器傳送(1) 標(biāo)志送標(biāo)志送AH指令指令LAHF格式:格式: LAHF功能:標(biāo)志寄存器的低功能:標(biāo)志寄存器的低8位對應(yīng)的傳送到寄存器位對應(yīng)的傳送到寄存器AHFLAG OFDF IF TFSFZF AF PF CFAH150702.1 .3 2.1 .3 標(biāo)志傳送指令標(biāo)志傳送指令格式:格式:SAHF功能:寄存器功能:寄存器AH的內(nèi)容對應(yīng)的送至標(biāo)志寄存的內(nèi)容對應(yīng)的送至標(biāo)志寄存 器的低器的低8位位(2) AH送標(biāo)志指令送標(biāo)志指令SAHFFLAG OFDF IF TFSFZF AF PF CFxxxxxxxAHx70(3) 標(biāo)志進棧指令標(biāo)志進棧指令PUSHF格式:格式
44、:PUSHF功能:功能: SP-2 ,把標(biāo)志寄存器的內(nèi)容,把標(biāo)志寄存器的內(nèi)容16位壓入堆棧位壓入堆棧(4) 標(biāo)志出棧指令標(biāo)志出棧指令POPF格式:格式: POPF功能:把當(dāng)前棧頂?shù)囊粋€字傳送到標(biāo)志寄存器,功能:把當(dāng)前棧頂?shù)囊粋€字傳送到標(biāo)志寄存器,SP+2指令格式指令格式功能功能說明說明CLCSTCCMCCLDSTDCLISTI清除進位標(biāo)志清除進位標(biāo)志置進位標(biāo)志置進位標(biāo)志取反進位標(biāo)志取反進位標(biāo)志清除方向標(biāo)志清除方向標(biāo)志置方向標(biāo)志置方向標(biāo)志清除中斷標(biāo)志清除中斷標(biāo)志置中斷標(biāo)志置中斷標(biāo)志CF=0CF=1CF=CFDF=0DF=1IF=0IF=12. 標(biāo)志位操作標(biāo)志位操作1. 有效地址送指令有效地址送指
45、令LEA格式:格式:LEA REG,SRC16位通用寄存器位通用寄存器功能:把源操作數(shù)的有效地址傳送到目的操功能:把源操作數(shù)的有效地址傳送到目的操 作數(shù)作數(shù)REG寄存器中寄存器中例:例:LEA AX,2728H ;將;將2728單元的有效地址送單元的有效地址送AX, 執(zhí)行后,執(zhí)行后,AX=2728H LEA BX,BP+SI ;指令執(zhí)行后,;指令執(zhí)行后,BX的內(nèi)容為的內(nèi)容為 BP+SI的值的值留意:留意:LEA 和和 MOV 的區(qū)別的區(qū)別2.1 .4 2.1 .4 地址傳送指令地址傳送指令格式:格式: LDS REG,SRC功能:源操作數(shù)功能:源操作數(shù) SRC所指向的存儲單元的內(nèi)容所指向的存儲
46、單元的內(nèi)容 送到目的寄存器送到目的寄存器REG中接下來存儲單元中接下來存儲單元 的內(nèi)容送到數(shù)據(jù)段寄存器的內(nèi)容送到數(shù)據(jù)段寄存器DS。2. 2. 指針?biāo)椭噶钪羔標(biāo)椭噶頛DS、LES例:例:LDS DI ,2130H2130H2133H 56347812 執(zhí)行后執(zhí)行后 DS= DI=LES對應(yīng)的段寄存為對應(yīng)的段寄存為ES存儲器存儲器78563412HH 輸入指令輸入指令I(lǐng)NIN格式:格式:IN 累加器,端口地址累加器,端口地址功能:從一個端口讀取一個字節(jié)或一個字,傳功能:從一個端口讀取一個字節(jié)或一個字,傳 送到送到AL或或AX端口地址可以直接給出端口地址可以直接給出或由或由DX寄存器間接給出寄存器間
47、接給出留意:外部設(shè)備最多可有留意:外部設(shè)備最多可有65536個個I/O端口端口(0000FFFFH),), 只有前只有前256個端口地址可個端口地址可在指令中直接給出在指令中直接給出00FFH)2.1 .5 2.1 .5 輸入輸出指令輸入輸出指令例:例: IN AL,50H ;從;從50H端口讀入端口讀入8位數(shù)據(jù)到位數(shù)據(jù)到ALIN AX,70H ;從;從70H端口讀入端口讀入16位數(shù)據(jù)到位數(shù)據(jù)到AX直接尋址或長格式直接尋址或長格式間接尋址或短格式間接尋址或短格式IN AL,DX ;從;從DX所指的端口中讀取一個字節(jié)所指的端口中讀取一個字節(jié)IN AX,DX ;從;從DX所指的端口讀取一個字所指的
48、端口讀取一個字2. 2. 輸出指令輸出指令OUTOUT格式:格式: OUT 端口地址,累加器端口地址,累加器功能:將功能:將AL中的一個字節(jié)或中的一個字節(jié)或AX中的一個字輸出中的一個字輸出 到指定端口到指定端口例:例: OUT 5,AL ;將;將AL寄存器的內(nèi)容輸出到端口寄存器的內(nèi)容輸出到端口5 OUT DX,AL ;將;將AL的內(nèi)容輸出到的內(nèi)容輸出到DX所指向的端口所指向的端口OUT DX,AX ;將;將AX的內(nèi)容輸出到的內(nèi)容輸出到DX所指向的端口所指向的端口判斷對錯:判斷對錯:OUT 258,ALOUT DX,BLIN AL,1234HIN AL,BHOUT 120,ALOUT DX,AL
49、IN AL,80HIN AL,DX 判斷對錯:判斷對錯:PUSH ALPOP CSXCHG DS,BXXCHG BX,SIPOP BHXCHG AX,1234H2.2 算數(shù)運算類指令1. 加法指令加法指令A(yù)DD格式:格式: ADD DST,SRC功能:兩個操作數(shù)相加,結(jié)果送至目的操作數(shù)功能:兩個操作數(shù)相加,結(jié)果送至目的操作數(shù) DST,源操作數(shù)不變源操作數(shù)不變操作數(shù)可以是字節(jié)、字操作數(shù)可以是字節(jié)、字例:例:ADD AL,50H ;AL的內(nèi)容和的內(nèi)容和50H相加,結(jié)果相加,結(jié)果AL中中;CX的內(nèi)容和的內(nèi)容和1000H相加,結(jié)果放相加,結(jié)果放 在在CX中中ADD CX,1000H;DI和和SI的內(nèi)容
50、相加,結(jié)果放在的內(nèi)容相加,結(jié)果放在DI中中ADD DI,SI;BX+DI 連續(xù)兩個存儲單元的內(nèi)容連續(xù)兩個存儲單元的內(nèi)容 和和AX內(nèi)容相加,結(jié)果放在內(nèi)容相加,結(jié)果放在BX+DI 和和BX+DI+1所指的存儲單元中所指的存儲單元中ADD BX+DI,AX ADD AX,BX+2000H;BX+2000H所指的兩個單元的所指的兩個單元的內(nèi)內(nèi) 容和容和AX的內(nèi)容相加,結(jié)果在的內(nèi)容相加,結(jié)果在AX 中中 加法指令對標(biāo)志位的影響加法指令對標(biāo)志位的影響 ZF 零標(biāo)志零標(biāo)志 結(jié)果為零結(jié)果為零ZF=1,否則,否則ZF=0 SF 符號標(biāo)志符號標(biāo)志 結(jié)果為負結(jié)果為負SF=1,否則,否則SF=0 CF 進位標(biāo)志進位標(biāo)
51、志 結(jié)果最高有效位有進位結(jié)果最高有效位有進位 CF=1,否則,否則CF=0 AF 半進位標(biāo)志半進位標(biāo)志 低低4位向高位向高4位有進位位有進位AF=1,否則否則AF=0 PF 奇偶標(biāo)志奇偶標(biāo)志 低低8位位1的個數(shù)為偶數(shù)的個數(shù)為偶數(shù)PF=1,否,否則則PF=0對對OF SF ZF AF PF CF 六個標(biāo)志產(chǎn)生影響六個標(biāo)志產(chǎn)生影響 1 0 0 1 1 1 0 0+ 1 0 0 0 1 0 1 0 0 0 1 0 0 1 1 0CF=SF=AF=例:例:9CH+8AH=26H101ZF=0PF=0 溢出標(biāo)志溢出標(biāo)志OF溢出:超出數(shù)據(jù)位能表示的范圍溢出:超出數(shù)據(jù)位能表示的范圍8位二進制數(shù)位二進制數(shù) 0
52、2550 28) -128+127(-27+27-1)16位二進制數(shù)位二進制數(shù) 065535( 0 216) -32768+32767(-215215-1) 若兩個操作數(shù)的符號相同,而結(jié)果的若兩個操作數(shù)的符號相同,而結(jié)果的符號與之相反時,符號與之相反時,OF=1,否則,否則OF=0OF標(biāo)志是根據(jù)操作數(shù)的符標(biāo)志是根據(jù)操作數(shù)的符號變化來設(shè)置的號變化來設(shè)置的例:例: 1 0 0 1 1 1 0 0 + 1 0 0 0 0 1 1 0 如果兩個同符號數(shù)相加,結(jié)果符號位發(fā)生了如果兩個同符號數(shù)相加,結(jié)果符號位發(fā)生了變化,則表示溢出變化,則表示溢出0 0 1 0 0 0 1 0OF=1符號位變化了,表示結(jié)符
53、號位變化了,表示結(jié)果超出了果超出了8位二進制數(shù)表位二進制數(shù)表示的數(shù)據(jù)范圍示的數(shù)據(jù)范圍 0 0 0 0 1 0 0 1+ 0 1 1 1 1 1 0 01 0 0 0 0 1 0 1OF=1符號位變符號位變化了化了例例2: 0 0 0 0 1 0 0 1- 1 1 1 1 1 1 0 0例例3:0 0 0 0 1 1 0 1符號位沒符號位沒變變OF=0 1 0 0 0 1 0 0 1- 1 1 1 1 1 1 0 0OF=?2. 2. 帶進位加法指令帶進位加法指令A(yù)DCADC格式:格式: ADC DST,SRC功能:兩個操作數(shù)相加再加上進位標(biāo)志功能:兩個操作數(shù)相加再加上進位標(biāo)志CF,結(jié)果,結(jié)果
54、送至目的操作數(shù)送至目的操作數(shù)DST,源操作數(shù)不變源操作數(shù)不變操作數(shù)可以是字節(jié)、字操作數(shù)可以是字節(jié)、字AX=MOV SI,2000H MOV AX,SI MOV DI,3000H ADD AX,DI MOV SI ,AX MOV AX, SI+2 ADC AX, DI+2 MOV SI+2 ,AX 例:編寫兩個四字節(jié)的無符號數(shù)相加的程序段,兩個數(shù)分別例:編寫兩個四字節(jié)的無符號數(shù)相加的程序段,兩個數(shù)分別 放在放在2000H、3000H開始的單元,要求結(jié)果放在開始的單元,要求結(jié)果放在2000H開始的單元開始的單元 563412F0DEBC9A782000H3000HSIMOV AX,SIHDIADD
55、 AX,DIMOV DI,3000HMOV SI,2000H56783568HCF=1AX=MOV SI,2000H MOV AX,SI MOV DI,3000H ADD AX,DI MOV SI ,AX MOV AX, SI+2 ADC AX, DI+2 MOV SI+2 ,AX 例:編寫兩個四字節(jié)的無符號數(shù)相加的程序段,兩個數(shù)分別例:編寫兩個四字節(jié)的無符號數(shù)相加的程序段,兩個數(shù)分別 放在放在2000H、3000H開始的單元,要求結(jié)果放在開始的單元,要求結(jié)果放在2000H開始的單元開始的單元 563412F0DEBC9A782000H3000HSIMOV AX,SIDIADD AX,DIMO
56、V DI,3000HMOV SI,2000HMOV SI ,AX56783568HCF=13568AX=MOV SI,2000H MOV AX,SI MOV DI,3000H ADD AX,DI MOV SI ,AX MOV AX, SI+2 ADC AX, DI+2 MOV SI+2 ,AX 例:編寫兩個四字節(jié)的無符號數(shù)相加的程序段,兩個數(shù)分別例:編寫兩個四字節(jié)的無符號數(shù)相加的程序段,兩個數(shù)分別 放在放在2000H、3000H開始的單元,要求結(jié)果放在開始的單元,要求結(jié)果放在2000H開始的單元開始的單元 563412F0DEBC9A782000H3000HSIMOV AX,SI1234HDI
57、ADD AX,DIMOV DI,3000HMOV SI,2000HMOV SI ,AXMOV AX, SI+2 3568ADC AX, DI+2 CF=1ACF1H7856AX=MOV SI,2000H MOV AX,SI MOV DI,3000H ADD AX,DI MOV SI ,AX MOV AX, SI+2 ADC AX, DI+2 MOV SI+2 ,AX 例:編寫兩個四字節(jié)的無符號數(shù)相加的程序段,兩個數(shù)分別例:編寫兩個四字節(jié)的無符號數(shù)相加的程序段,兩個數(shù)分別 放在放在2000H、3000H開始的單元,要求結(jié)果放在開始的單元,要求結(jié)果放在2000H開始的單元開始的單元 563412F
58、0DEBC9A782000H3000HSIMOV AX,SI1234HDIADD AX,DIMOV DI,3000HMOV SI,2000HMOV SI ,AXMOV AX, SI+2 ADC AX, DI+2 CF=1ACF1HMOV SI+2 ,AXF1ACCF=03. 增量指令增量指令 INC格式:格式: INC OPR功能:操作數(shù)功能:操作數(shù)OPR的內(nèi)容加的內(nèi)容加1,結(jié)果送回,結(jié)果送回OPR這條指令執(zhí)行的結(jié)果不影響進位標(biāo)志這條指令執(zhí)行的結(jié)果不影響進位標(biāo)志CF,但影響其它的五個狀態(tài)標(biāo)志但影響其它的五個狀態(tài)標(biāo)志例:例: INC AL ;AL的內(nèi)容加的內(nèi)容加1 INC CX ;CX的內(nèi)容加的
59、內(nèi)容加1 操作數(shù)可以是字節(jié)、字操作數(shù)可以是字節(jié)、字1. 減法指令減法指令SUB格式:格式: SUB DST,SRC功能:功能: DST的內(nèi)容減去的內(nèi)容減去SRC的內(nèi)容,結(jié)果送到目的內(nèi)容,結(jié)果送到目 的操作數(shù)的操作數(shù)DST中,源操作數(shù)不變。中,源操作數(shù)不變。2. 帶借位減法指令帶借位減法指令SBB 格式:格式: SBB DST,SRC功能:操作數(shù)功能:操作數(shù)DST的內(nèi)容減去操作數(shù)的內(nèi)容減去操作數(shù)SRC的內(nèi)容,的內(nèi)容, 同時還要減去借位進位標(biāo)志同時還要減去借位進位標(biāo)志CF的值,的值, 結(jié)果送目的操作數(shù),源操作數(shù)不變。結(jié)果送目的操作數(shù),源操作數(shù)不變。執(zhí)行結(jié)果和加法指執(zhí)行結(jié)果和加法指令一樣影響標(biāo)志位令
60、一樣影響標(biāo)志位3. 減量減量 指令指令DEC格式:格式:DEC OPR功能:操作數(shù)功能:操作數(shù)OPR的內(nèi)容減的內(nèi)容減1,并把結(jié)果送回,并把結(jié)果送回OPR執(zhí)行結(jié)果不影響執(zhí)行結(jié)果不影響CF,但影響其它五個狀態(tài)標(biāo)志,但影響其它五個狀態(tài)標(biāo)志4. 求補指令求補指令NEG格式:格式:NEG OPR功能:對操作數(shù)取補碼,將結(jié)果送回操作數(shù)功能:對操作數(shù)取補碼,將結(jié)果送回操作數(shù)OPR中中執(zhí)行結(jié)果影響狀態(tài)標(biāo)志執(zhí)行結(jié)果影響狀態(tài)標(biāo)志實際上是用零實際上是用零減去操作數(shù)減去操作數(shù)(OPR)執(zhí)行的操作執(zhí)行的操作(OPR)5. 比較指令比較指令CMP 格式:格式: CMP OPR1,OPR2功能:功能: 操作數(shù)操作數(shù)OPR1
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育科技在家教中提高學(xué)習(xí)效率的方法探討
- 25《 慢性子裁縫和急性子顧客》(說課稿)2023-2024學(xué)年統(tǒng)編版語文三年級下冊
- 粵教版高中信息技術(shù)選修1說課稿-2.4.3 循環(huán)的嵌套-
- Module3 Unit 1 In the Classroom(說課稿)-2024-2025學(xué)年牛津上海版(試用本)英語一年級上冊
- Unit 3 Bank or Beach Lesson 1(說課稿)-2023-2024學(xué)年粵人版英語四年級下冊
- 2025年度貨車司機雇傭合同樣式下載
- 2025年擔(dān)保與反擔(dān)保合同2篇
- Module 1 wonders of the world unit 2 The Grand Canyon was not just big 英文版說課稿 2024-2025學(xué)年外研版九年級英語上冊
- 2025年建筑項目安全監(jiān)督協(xié)議3篇
- 二零二五年度材料運輸合同及緊急救援服務(wù)協(xié)議3篇
- 大數(shù)據(jù)與人工智能ppt
- 中醫(yī)科特色診療規(guī)范
- 建筑工程一切險條款版
- PEP小學(xué)六年級英語上冊選詞填空專題訓(xùn)練
- 古建筑修繕項目施工規(guī)程(試行)
- GA 844-2018防砸透明材料
- 化學(xué)元素周期表記憶與讀音 元素周期表口訣順口溜
- 非人力資源經(jīng)理的人力資源管理培訓(xùn)(新版)課件
- 鉬氧化物還原過程中的物相轉(zhuǎn)變規(guī)律及其動力學(xué)機理研究
- (完整word)2019注冊消防工程師繼續(xù)教育三科試習(xí)題及答案
- 《調(diào)試件現(xiàn)場管理制度》
評論
0/150
提交評論