微機(jī)接口第二章_第1頁
微機(jī)接口第二章_第2頁
微機(jī)接口第二章_第3頁
微機(jī)接口第二章_第4頁
微機(jī)接口第二章_第5頁
已閱讀5頁,還剩164頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、2.1 2.1 微處理器的內(nèi)部結(jié)構(gòu)微處理器的內(nèi)部結(jié)構(gòu)2.2 8088/80862.2 8088/8086的尋址方式的尋址方式2.3 8088/80862.3 8088/8086指令系統(tǒng)指令系統(tǒng)2.4 2.4 系統(tǒng)功能調(diào)用系統(tǒng)功能調(diào)用2.1.1 微處理器的基本結(jié)構(gòu)微處理器的基本結(jié)構(gòu)1)1)算術(shù)邏輯單元算術(shù)邏輯單元( (運(yùn)算器運(yùn)算器) )ALU:2)2)寄存器組:包括通用寄存器,地址寄存寄存器組:包括通用寄存器,地址寄存 器,標(biāo)志寄存器。器,標(biāo)志寄存器。3)3)指令處理單元指令處理單元( (控制器控制器) ):包括指令寄存器,:包括指令寄存器, 指令譯碼邏輯,時(shí)序和控制邏輯。指令譯碼邏輯,時(shí)序和控

2、制邏輯。 AH ALBH BLCH CLDH DLSPBPDISI數(shù)據(jù)寄存器數(shù)據(jù)寄存器 地址寄存器地址寄存器AXBXCXDXALU數(shù)據(jù)總線(數(shù)據(jù)總線(16位)位)運(yùn)算寄存器運(yùn)算寄存器ALU標(biāo)志寄存器標(biāo)志寄存器EU 控控制系統(tǒng)制系統(tǒng)執(zhí)行單元執(zhí)行單元EUCSDSSSESIP內(nèi)部暫存器內(nèi)部暫存器1 2 3 4 5 6數(shù)據(jù)總線數(shù)據(jù)總線 8088:8位位 8086:16位位總線控總線控制邏輯制邏輯地址總線地址總線 20位位指令隊(duì)列指令隊(duì)列80888086Q總線總線 (8位)位)指令指針指令指針段寄存器段寄存器外部外部 總線總線總線接口總線接口 單元單元BIUBus Interface UnitExecu

3、tion Unit2.1.2 8088/8086的功能結(jié)構(gòu)的功能結(jié)構(gòu)2.2.總線接口單元總線接口單元( (BIU) ):由指令隊(duì)列、指令指:由指令隊(duì)列、指令指 針寄存器、段寄存器和總線控制邏輯等組針寄存器、段寄存器和總線控制邏輯等組 成,負(fù)責(zé)成,負(fù)責(zé)CPU對(duì)存儲(chǔ)器和外設(shè)進(jìn)行訪問。對(duì)存儲(chǔ)器和外設(shè)進(jìn)行訪問。1. 1. 執(zhí)行單元執(zhí)行單元( (EU) ):由:由ALUALU、數(shù)據(jù)寄存器、地、數(shù)據(jù)寄存器、地 址寄存器、標(biāo)志寄存器和指令譯碼邏輯等址寄存器、標(biāo)志寄存器和指令譯碼邏輯等 組成,負(fù)責(zé)指令的譯碼、執(zhí)行和數(shù)據(jù)的運(yùn)組成,負(fù)責(zé)指令的譯碼、執(zhí)行和數(shù)據(jù)的運(yùn) 算。算。8088/80868088/8086中可供

4、編程使用的有中可供編程使用的有1414個(gè)個(gè)1616位位寄存器,按其用途可分為:寄存器,按其用途可分為: 數(shù)據(jù)寄存器數(shù)據(jù)寄存器 (4 4個(gè))個(gè)) 地址寄存器地址寄存器 (4 4個(gè))個(gè)) 段寄存器段寄存器 (4 4個(gè))個(gè)) 指令指針寄存器指令指針寄存器 (1 1個(gè))個(gè)) 標(biāo)志寄存器。標(biāo)志寄存器。 (1 1個(gè))個(gè))2.1.3 8088/8086的寄存器結(jié)構(gòu)的寄存器結(jié)構(gòu)累加器累加器AHALBHBLCLDHDLCHSPSIDIIPFLAGSCSDSSSESBP基址寄存器基址寄存器計(jì)數(shù)寄存器計(jì)數(shù)寄存器數(shù)據(jù)寄存器數(shù)據(jù)寄存器堆棧指針寄存器堆棧指針寄存器基址指針寄存器基址指針寄存器源變址寄存器源變址寄存器目的變

5、址寄存器目的變址寄存器指令指針寄存器指令指針寄存器標(biāo)志寄存器標(biāo)志寄存器代碼段寄存器代碼段寄存器段寄存器段寄存器附加段寄存器附加段寄存器堆棧段寄存器堆棧段寄存器數(shù)據(jù)寄存器數(shù)據(jù)寄存器地址指針和地址指針和變址寄存器變址寄存器控制寄存器控制寄存器通用寄存器通用寄存器數(shù)據(jù)段寄存器數(shù)據(jù)段寄存器內(nèi)部寄存器主要用途內(nèi)部寄存器主要用途 寄存器寄存器用用 途途AX字乘法,字除法,字字乘法,字除法,字I/OI/OAL字節(jié)乘除,字節(jié)字節(jié)乘除,字節(jié)I/OI/O,十進(jìn)制算術(shù)運(yùn)算,十進(jìn)制算術(shù)運(yùn)算AH字節(jié)乘,字節(jié)除字節(jié)乘,字節(jié)除( (操作數(shù)的高半部分操作數(shù)的高半部分) )BX轉(zhuǎn)移轉(zhuǎn)移CX串操作,循環(huán)次數(shù)串操作,循環(huán)次數(shù)CL變

6、量移位,循環(huán)控制變量移位,循環(huán)控制DX字乘或字除字乘或字除( (操作數(shù)的高半部分操作數(shù)的高半部分) ),間接,間接I/OI/O標(biāo)志寄存器標(biāo)志寄存器(FLAGS)(FLAGS)150 OF DF IF TF SF ZF AF PF CF進(jìn)進(jìn)借借位位標(biāo)標(biāo)志志奇奇偶偶標(biāo)標(biāo)志志半半進(jìn)進(jìn)借借位位標(biāo)標(biāo)志志零零標(biāo)標(biāo)志志符符號(hào)號(hào)標(biāo)標(biāo)志志單單步步中中斷斷中中斷斷允允許許方方向向標(biāo)標(biāo)志志溢溢出出標(biāo)標(biāo)志志1-有進(jìn)、借位有進(jìn)、借位0-無進(jìn)、借位無進(jìn)、借位1-低低8位有偶數(shù)個(gè)位有偶數(shù)個(gè)10-低低8位有奇數(shù)個(gè)位有奇數(shù)個(gè)11-低低4或低或低8位向高位向高4或高或高8位有進(jìn)、借位位有進(jìn)、借位0-低低4或低或低8位向高位向高4

7、或高或高8位無進(jìn)、借位位無進(jìn)、借位1-結(jié)果為結(jié)果為00-結(jié)果不為結(jié)果不為0TF陷阱標(biāo)志位陷阱標(biāo)志位( (單步標(biāo)志位、跟蹤標(biāo)志單步標(biāo)志位、跟蹤標(biāo)志) )。 當(dāng)該位置當(dāng)該位置1 1時(shí),將使時(shí),將使8086/80888086/8088進(jìn)入單進(jìn)入單 步工作方式,通常用于程序的調(diào)試。步工作方式,通常用于程序的調(diào)試。IF中斷允許標(biāo)志位,若該位置中斷允許標(biāo)志位,若該位置1 1,則處理,則處理 器可以響應(yīng)可屏蔽中斷,否則就不能器可以響應(yīng)可屏蔽中斷,否則就不能 響應(yīng)可屏蔽中斷。響應(yīng)可屏蔽中斷。DF方向標(biāo)志位,若該位置方向標(biāo)志位,若該位置1 1,則串操作,則串操作 指令的地址修改為自動(dòng)減量方向,反指令的地址修改為

8、自動(dòng)減量方向,反 之,為自動(dòng)增量方向。之,為自動(dòng)增量方向。 8088/8086芯片引腳結(jié)構(gòu)芯片引腳結(jié)構(gòu)( (略略) )2.1.4 8088/80862.1.4 8088/8086的存儲(chǔ)器結(jié)構(gòu)的存儲(chǔ)器結(jié)構(gòu) 存儲(chǔ)器以字節(jié)存儲(chǔ)器以字節(jié)BYTE為單位存儲(chǔ)信息為單位存儲(chǔ)信息 每個(gè)存儲(chǔ)器單元每個(gè)存儲(chǔ)器單元( (字節(jié)單元字節(jié)單元) )都有一個(gè)地址都有一個(gè)地址如:如:00002H00002H34H34H 字或雙字信息在存儲(chǔ)器中占相鄰的字或雙字信息在存儲(chǔ)器中占相鄰的2 2個(gè)或個(gè)或 4 4個(gè)存儲(chǔ)單元,按個(gè)存儲(chǔ)單元,按“小端方式小端方式”存儲(chǔ),即存儲(chǔ),即 “ “低字節(jié)對(duì)低地址、高字節(jié)對(duì)高地址低字節(jié)對(duì)低地址、高字節(jié)對(duì)

9、高地址”。一、存儲(chǔ)器的分段管理一、存儲(chǔ)器的分段管理1 1. 8088/8086CPU有有20根地址線,最大可尋址根地址線,最大可尋址 的存儲(chǔ)器單元數(shù)為的存儲(chǔ)器單元數(shù)為2201MB,其物理地址,其物理地址 范圍為范圍為00000HFFFFFH。2.2.8088/8086CPU將將1MB1MB存儲(chǔ)器空間分成邏輯存儲(chǔ)器空間分成邏輯 段來管理。每個(gè)段最大限制為段來管理。每個(gè)段最大限制為64KB。采用。采用 邏輯地址邏輯地址( (段地址:偏移地址段地址:偏移地址) )的形式來表達(dá)的形式來表達(dá) 每個(gè)存儲(chǔ)器單元的物理地址。每個(gè)存儲(chǔ)器單元的物理地址。3. 3. 段地址說明邏輯段在主存中的起始位置,采段地址說明

10、邏輯段在主存中的起始位置,采 用用1616位二進(jìn)制數(shù)據(jù)表示,保存在位二進(jìn)制數(shù)據(jù)表示,保存在1616位的段寄位的段寄 存器存器( (CS,DS,ES,SS) )中。中。4.4.偏移地址說明主存單元距離段起始位置的偏偏移地址說明主存單元距離段起始位置的偏 移量,也采用移量,也采用1616位二進(jìn)制數(shù)據(jù)表示位二進(jìn)制數(shù)據(jù)表示, ,又稱有效又稱有效 地址地址( (EAEA) )。5. 5. 物理地址物理地址 段地址段地址10H + + 偏移地址偏移地址16位位偏移量偏移量段寄存器值段寄存器值+物理地址物理地址20位位16位位4位位6. 6. 物理地址是唯一的,邏輯地址不是唯一的。物理地址是唯一的,邏輯地址

11、不是唯一的。 CS 0000 IP代碼段代碼段 DS或或ES 0000 SI、DI或或BX SS 0000 SP或或BP數(shù)據(jù)段數(shù)據(jù)段堆棧段堆棧段二、段寄存器和偏移地址寄存器的組合二、段寄存器和偏移地址寄存器的組合 指令大致由操作碼和操作數(shù)兩部分組成。指令大致由操作碼和操作數(shù)兩部分組成。 如:如:MOV AH,0B9H 操作碼說明計(jì)算機(jī)要執(zhí)行何種操作,是指操作碼說明計(jì)算機(jī)要執(zhí)行何種操作,是指 令中不可缺少的部分。令中不可缺少的部分。 操作數(shù)是指令執(zhí)行的參與者,也就是各種操作數(shù)是指令執(zhí)行的參與者,也就是各種 操作的對(duì)象。操作的對(duì)象。 尋找操作數(shù)的方式叫做操作數(shù)的尋址方式,尋找操作數(shù)的方式叫做操作數(shù)

12、的尋址方式, 共有七種。共有七種。2.2 8088/80862.2 8088/8086的尋址方式的尋址方式2.2.1 立即數(shù)尋址方式立即數(shù)尋址方式 立即數(shù)操作數(shù)直接出現(xiàn)在立即數(shù)操作數(shù)直接出現(xiàn)在程序程序中,緊跟在中,緊跟在操作碼之后。它可以是操作碼之后。它可以是8 8位數(shù)值位數(shù)值(00HFFH)(00HFFH),也可以是也可以是1616位數(shù)值位數(shù)值(0000H FFFFH)(0000H FFFFH)。例:例: MOV AX,1234H;表示:操作數(shù)表示:操作數(shù)1234H1234H使用立即數(shù)尋址方式。指使用立即數(shù)尋址方式。指 令執(zhí)行后令執(zhí)行后AX=1234HAX=1234H,其中,其中AH=12H

13、AH=12H, AL=34HAL=34H。2.2.2 寄存器尋址方式寄存器尋址方式 操作數(shù)存放于操作數(shù)存放于CPU的內(nèi)部的內(nèi)部寄存器寄存器中。它中。它可以是可以是8 8位寄存器位寄存器(AH/AL/BH/BL/CH/CL/DH/DL),或是,或是1616位寄存器位寄存器(AX/BX/CX/DX/SI/DI/BP/SP)。例:例:MOV AX, BX表示:操作數(shù)表示:操作數(shù)AX、BX均使用寄存器尋址方均使用寄存器尋址方 式,指令執(zhí)行后式,指令執(zhí)行后AX中的值與中的值與BX中的中的 值相同,值相同,BX中的值不變。中的值不變。2.2.3 存儲(chǔ)器尋址方式存儲(chǔ)器尋址方式 操作數(shù)存放于操作數(shù)存放于存儲(chǔ)器

14、存儲(chǔ)器單元中。指令中給單元中。指令中給出的是操作數(shù)所在的存儲(chǔ)器單元的邏輯地址。出的是操作數(shù)所在的存儲(chǔ)器單元的邏輯地址。因段地址在段寄存器中,故只要給出偏移地因段地址在段寄存器中,故只要給出偏移地址址( (也稱有效地址,也稱有效地址,EA)EA)即可。即可。存儲(chǔ)器尋址方式又分為:直接尋址方式、寄存存儲(chǔ)器尋址方式又分為:直接尋址方式、寄存 器間接尋址、寄存器相對(duì)尋址、基器間接尋址、寄存器相對(duì)尋址、基 址變址尋址和相對(duì)基址變址尋址。址變址尋址和相對(duì)基址變址尋址。一、直接尋址方式一、直接尋址方式 指令中直接給出操作數(shù)的指令中直接給出操作數(shù)的有效地址有效地址。段段地址默認(rèn)在數(shù)據(jù)段寄存器地址默認(rèn)在數(shù)據(jù)段寄

15、存器DS中,可以使用段中,可以使用段超越前綴來改變。超越前綴來改變。例:設(shè)例:設(shè) DS=1492H,ES=1492H, 16920H=12H,16921H=34H則有:則有:MOV AH,2000H ;AH=12H MOV AX,ES:2000H ;AX=3412H;AH=34H;AL=12H二、寄存器間接尋址二、寄存器間接尋址 操作數(shù)的有效地址存放于基址寄存器操作數(shù)的有效地址存放于基址寄存器BX、BP或變址寄存器或變址寄存器SI、DI中。中。 當(dāng)使用寄存器當(dāng)使用寄存器BX/SI/DI尋址時(shí),默認(rèn)的段尋址時(shí),默認(rèn)的段寄存器為寄存器為DS;當(dāng)使用寄存器;當(dāng)使用寄存器BP尋址時(shí),默認(rèn)尋址時(shí),默認(rèn)的

16、段寄存器為的段寄存器為SS。均可以使用段超越前綴改。均可以使用段超越前綴改變。變。例:設(shè)例:設(shè) DS=1492H,ES=2492H, BX=2000H,16920H=12H 26920H=11H則有:則有:MOV AL,BX;AL=12H MOV DH,ES:BX;DH=11H三、寄存器相對(duì)尋址三、寄存器相對(duì)尋址 操作數(shù)的有效地址是寄存器操作數(shù)的有效地址是寄存器(BX/BP/SI/DI)的內(nèi)容與有符號(hào)的內(nèi)容與有符號(hào)8 8位或位或1616位位移量之和。位位移量之和。 當(dāng)使用寄存器當(dāng)使用寄存器BX/SI/DI尋址時(shí),默認(rèn)的段尋址時(shí),默認(rèn)的段寄存器為寄存器為DS;當(dāng)使用寄存器;當(dāng)使用寄存器BP尋址時(shí)

17、,默認(rèn)尋址時(shí),默認(rèn)的段寄存器為的段寄存器為SS。均可以使用段超越前綴改。均可以使用段超越前綴改變。變。例:例: 設(shè)設(shè) DS=1492H,ES=2492H, SI=2000H,16926H=12H 26926H=11H則有:則有: MOV AL,SI06H ;AL=12H MOV DH,ES:SI+06H ;DH=11H四:基址變址尋址四:基址變址尋址 操作數(shù)的有效地址是一個(gè)基址寄存器操作數(shù)的有效地址是一個(gè)基址寄存器(BX(BX或或BP)BP)的內(nèi)容與一個(gè)變址寄存器的內(nèi)容與一個(gè)變址寄存器(SI(SI或或DI)DI)的內(nèi)的內(nèi)容之和。容之和。 當(dāng)使用基址寄存器當(dāng)使用基址寄存器BXBX時(shí),默認(rèn)的段寄存

18、時(shí),默認(rèn)的段寄存器為器為DSDS;當(dāng)使用基址寄存器;當(dāng)使用基址寄存器BPBP時(shí),默認(rèn)的段時(shí),默認(rèn)的段寄存器為寄存器為SSSS。均可以使用段超越前綴改變。均可以使用段超越前綴改變。例:設(shè)例:設(shè) DS=1492H,ES=2492H, BX=2000H, 16926H=2012H SI=06H, , 26926H=3011H則有:則有:MOV AL,BXSI;AL=12H MOV DH,ES:BX+SI;DH=11H MOV AX,BXSI; AX=2012H五、基址變址相對(duì)尋址五、基址變址相對(duì)尋址 當(dāng)使用基址寄存器當(dāng)使用基址寄存器BXBX時(shí),默認(rèn)的段寄存時(shí),默認(rèn)的段寄存器為器為DSDS;當(dāng)使用基址

19、寄存器;當(dāng)使用基址寄存器BPBP時(shí),默認(rèn)的段時(shí),默認(rèn)的段寄存器為寄存器為SSSS。均可以使用段超越前綴改變。均可以使用段超越前綴改變。 操作數(shù)的有效地址是一個(gè)基址寄存器操作數(shù)的有效地址是一個(gè)基址寄存器(BX(BX或或BP)BP)的內(nèi)容,一個(gè)變址寄存器的內(nèi)容,一個(gè)變址寄存器(SI(SI或或DI)DI)的內(nèi)的內(nèi)容與有符號(hào)容與有符號(hào)8 8位或位或1616位位移量之和。位位移量之和。例:設(shè)例:設(shè) DS=1492H,BX=2000H, DI=04H,16926H=2012H則有:則有: MOV AL,BXDI+02H ;AL=12H MOV AX,BX+DI+02 ;AX=2012H 8088/8086

20、 8088/8086 指令系統(tǒng)按功能可分為指令系統(tǒng)按功能可分為6 6類類9292種指令。有:種指令。有: 數(shù)據(jù)傳送類指令、算術(shù)運(yùn)算類指令、數(shù)據(jù)傳送類指令、算術(shù)運(yùn)算類指令、 邏輯操作類指令、邏輯操作類指令、 串操作類指令、串操作類指令、 控制轉(zhuǎn)移類指令、處理器控制類指令??刂妻D(zhuǎn)移類指令、處理器控制類指令。2.3 8088/8086 2.3 8088/8086 指令系統(tǒng)指令系統(tǒng)要求:掌握指令的要求:掌握指令的格式格式、功能功能、所支持的、所支持的 尋址方式尋址方式、對(duì)、對(duì)標(biāo)志寄存器的影響標(biāo)志寄存器的影響及及 其它隱含的用法等其它隱含的用法等約定的操作數(shù)的表示符號(hào)約定的操作數(shù)的表示符號(hào) i8i88

21、8位立即數(shù),位立即數(shù),i16i161616位立即數(shù)位立即數(shù)immimm代表代表i8i8或或i16i16 r8r88 8位通用寄存器,位通用寄存器,r16r161616位寄存器位寄存器regreg代表代表r8r8或或r16r16 segseg段寄存器段寄存器CSCS、DSDS、ESES、SSSS m8m88 8位存儲(chǔ)器操作數(shù),位存儲(chǔ)器操作數(shù),m16m161616位存儲(chǔ)位存儲(chǔ)器操作數(shù),器操作數(shù),memmem代表代表m8m8或或m16m16 destdest目的操作數(shù)目的操作數(shù)srcsrc源操作數(shù)源操作數(shù)大小寫通用大小寫通用2.3.1 數(shù)據(jù)傳送類指令數(shù)據(jù)傳送類指令數(shù)據(jù)傳送指令共有數(shù)據(jù)傳送指令共有10

22、10條:條:MOV PUSHPOP XCHGXLAT LEALDS LESIN OUT指令匯編格式指令匯編格式: : MOV dest,src 操作操作: : 將一個(gè)源操作數(shù)將一個(gè)源操作數(shù)( (字節(jié)或字字節(jié)或字) ) 傳送到目傳送到目 標(biāo)操作數(shù)中。標(biāo)操作數(shù)中。 dest(src)受影響的狀態(tài)標(biāo)志位受影響的狀態(tài)標(biāo)志位: : 沒有沒有說明說明: : 指令中指令中destdest和和srcsrc不不能同時(shí)為存儲(chǔ)器操能同時(shí)為存儲(chǔ)器操 作數(shù);作數(shù);CSCS不不能做為目標(biāo)操作數(shù)使用;能做為目標(biāo)操作數(shù)使用; 段寄存器之間段寄存器之間不不能互相傳送;立即數(shù)能互相傳送;立即數(shù) 不不能送入段寄存器。能送入段寄存器

23、。1. MOV(move)1. MOV(move)傳送傳送MOV指令的進(jìn)一步說明指令的進(jìn)一步說明包括包括MOV在內(nèi)的絕大多數(shù)雙操在內(nèi)的絕大多數(shù)雙操 作數(shù)指令,目的操作數(shù)與源操作數(shù)指令,目的操作數(shù)與源操 作數(shù)必須類型一致,或者同為作數(shù)必須類型一致,或者同為 字,或者同為字節(jié)。字,或者同為字節(jié)。例:例:MOV AX,BH;非法指令;非法指令MOV指令的進(jìn)一步說明指令的進(jìn)一步說明將立即數(shù)將立即數(shù)MOV至主存時(shí),應(yīng)明確至主存時(shí),應(yīng)明確 指出是字節(jié)傳送還是字傳送。指出是字節(jié)傳送還是字傳送。 MOV BYTE PTR DI,0AH ;DS:DI=0AH MOV WORD PTR DI,0AH ;DS:DI

24、=0AH,DS:DI+1=00HMOV指令的進(jìn)一步說明指令的進(jìn)一步說明除串操作指令外,不允許兩個(gè)操除串操作指令外,不允許兩個(gè)操 作數(shù)都是存儲(chǔ)器操作數(shù)。作數(shù)都是存儲(chǔ)器操作數(shù)。MOV WVAR1,WVAR2;非法指令非法指令不允許段寄存器之間使用不允許段寄存器之間使用MOV; MOV DS,ES;非法指令;非法指令MOV指令的進(jìn)一步說明指令的進(jìn)一步說明不允許立即數(shù)不允許立即數(shù)MOV送到段寄存送到段寄存 器中;器中; MOV DS,0100H;不允許手工修改不允許手工修改CSCS的值。的值。 MOV CS,AX;非法指令非法指令2.PUSH 2.PUSH 進(jìn)棧進(jìn)棧指令匯編格式指令匯編格式: : PU

25、SH src操作操作: :使堆棧指針使堆棧指針SPSP的值減的值減2 2,即:,即: SPSP-2 將給定的操作數(shù)存放到由將給定的操作數(shù)存放到由SPSP指出的棧頂指出的棧頂 中,即:中,即: (SP+1,SP)(src)受影響的狀態(tài)標(biāo)志位受影響的狀態(tài)標(biāo)志位: : 沒有沒有說明說明: : PUSH PUSH指令的目標(biāo)地址一定在當(dāng)前堆棧中。指令的目標(biāo)地址一定在當(dāng)前堆棧中。 SSSS內(nèi)容為段基址內(nèi)容為段基址, ,偏移量由堆棧指針偏移量由堆棧指針SPSP指指 出。操作數(shù)一定是出。操作數(shù)一定是1616位的寄存器或存儲(chǔ)位的寄存器或存儲(chǔ) 器操作數(shù)。器操作數(shù)。3. POP 3. POP 出棧出棧指令匯編格式指

26、令匯編格式: : POP dest操作操作:(1):(1)將堆棧棧頂中存放的字傳送到目的將堆棧棧頂中存放的字傳送到目的 操作數(shù)中。即:操作數(shù)中。即:dest(SP+1,SP) (2)(2)使堆棧指針寄存器使堆棧指針寄存器SPSP的值加的值加2 2, 即:即:SPSP+2受影響的狀態(tài)標(biāo)志位受影響的狀態(tài)標(biāo)志位: : 沒有沒有說明說明: :目標(biāo)操作數(shù)只能是目標(biāo)操作數(shù)只能是1616位的存儲(chǔ)器或寄存位的存儲(chǔ)器或寄存 器操作數(shù)器操作數(shù)( (CSCS除外除外)。)。4. XCHG 4. XCHG 交換交換指令匯編格式指令匯編格式: : XCHG dest,src 操作操作: dest: dest的內(nèi)容與的內(nèi)

27、容與srcsrc的內(nèi)容互換。的內(nèi)容互換。 即:即: (dest)(src)受影響的狀態(tài)標(biāo)志位受影響的狀態(tài)標(biāo)志位: : 沒有沒有說明說明: dest: dest和和srcsrc不不能同時(shí)為存儲(chǔ)器操作數(shù);即能同時(shí)為存儲(chǔ)器操作數(shù);即 不不能在存儲(chǔ)器與存儲(chǔ)器之間交換據(jù)數(shù);能在存儲(chǔ)器與存儲(chǔ)器之間交換據(jù)數(shù); 段寄存器、立即數(shù)段寄存器、立即數(shù)都都不不能用作操作數(shù)。能用作操作數(shù)。5. XLAT (translate) 5. XLAT (translate) 轉(zhuǎn)換表轉(zhuǎn)換表指令匯編格式指令匯編格式: : XLAT操作操作: :BXBX和和ALAL內(nèi)容之和指出的內(nèi)存字節(jié)單元的內(nèi)容之和指出的內(nèi)存字節(jié)單元的 內(nèi)容內(nèi)容送

28、到送到ALAL中。即:中。即:AL(BX+AL)受影響的狀態(tài)標(biāo)志位受影響的狀態(tài)標(biāo)志位: : 沒有沒有說明說明: XLAT: XLAT指令用于查表。表的開始地址即表指令用于查表。表的開始地址即表 頭地址由頭地址由BXBX寄存器給出。寄存器給出。ALAL中的原始值中的原始值 是要尋址的表中元素地址的位移量是要尋址的表中元素地址的位移量, ,規(guī)規(guī) 定表中第一個(gè)字節(jié)的位移量為定表中第一個(gè)字節(jié)的位移量為0 0。6. LEA6. LEA取有效地址取有效地址(load effective address)(load effective address)指令匯編格式指令匯編格式: : LEA dest,src

29、( (存儲(chǔ)器操作數(shù)存儲(chǔ)器操作數(shù)) )操作操作: : 將指令中給出的有效的存儲(chǔ)器操作數(shù)將指令中給出的有效的存儲(chǔ)器操作數(shù)地地 址址( (即地址的偏移量即地址的偏移量) )送到指定的寄存器送到指定的寄存器 中。中。 即:即:destEA受影響的狀態(tài)標(biāo)志位受影響的狀態(tài)標(biāo)志位: : 沒有沒有例:例: LEA BX,VALUE 與與 MOV BX,OFFSET VALUE 等效等效說明說明: : LEA LEA指令是將源操作數(shù)地址的偏移量指令是將源操作數(shù)地址的偏移量, , 即有效地址傳送到目標(biāo)操作數(shù)中。即有效地址傳送到目標(biāo)操作數(shù)中。源源 操作數(shù)必須是一個(gè)存儲(chǔ)器操作數(shù)操作數(shù)必須是一個(gè)存儲(chǔ)器操作數(shù), ,目標(biāo)目

30、標(biāo) 操作數(shù)可以是任一操作數(shù)可以是任一1616位通用寄存器、位通用寄存器、 指針寄存器或變址寄存器。指針寄存器或變址寄存器。6. LEA6. LEA取有效地址取有效地址(load effective address)(load effective address)7.LDS7.LDS加載數(shù)據(jù)段寄存器加載數(shù)據(jù)段寄存器(load data segment register)(load data segment register)指令匯編格式指令匯編格式: : LDS dest,src操作操作:(1):(1)將雙字長(zhǎng)存儲(chǔ)器操作數(shù)中的低地址將雙字長(zhǎng)存儲(chǔ)器操作數(shù)中的低地址 字的內(nèi)容傳送到指定的寄存器中。字

31、的內(nèi)容傳送到指定的寄存器中。 即:即:dest(EA) (2) (2)將雙字長(zhǎng)存儲(chǔ)器操作數(shù)中的高地址將雙字長(zhǎng)存儲(chǔ)器操作數(shù)中的高地址 字內(nèi)容傳送到字內(nèi)容傳送到DSDS寄存器中寄存器中. .DS(EA+2)受影響的狀態(tài)標(biāo)志位受影響的狀態(tài)標(biāo)志位: : 沒有沒有說明說明: : LDS是將是將srcsrc指出的連續(xù)兩個(gè)指出的連續(xù)兩個(gè)字字的內(nèi)容的內(nèi)容, ,即即 一個(gè)一個(gè)3232位的指針變量傳送到一對(duì)位的指針變量傳送到一對(duì)1616位的位的 目標(biāo)寄存器中。高位字目標(biāo)寄存器中。高位字內(nèi)容內(nèi)容為段基地址為段基地址, , LDS LDS指令將其傳送到數(shù)據(jù)段寄存器指令將其傳送到數(shù)據(jù)段寄存器DSDS中中, , 低位字低

32、位字內(nèi)容內(nèi)容為偏移量為偏移量, ,傳送到由傳送到由destdest指出指出 的一個(gè)通用寄存器的一個(gè)通用寄存器, ,指針寄存器或變址寄指針寄存器或變址寄 存器中存器中, ,但不能是段寄存器。但不能是段寄存器。7.LDS7.LDS加載數(shù)據(jù)段寄存器加載數(shù)據(jù)段寄存器(load data segment register)(load data segment register)8.LES8.LES加載附加段寄存器加載附加段寄存器(load data segment egister)(load data segment egister)指令匯編格式指令匯編格式: : LES dest,srcLES des

33、t,src操作操作:(1):(1)將雙字長(zhǎng)存儲(chǔ)器操作數(shù)中的低地址將雙字長(zhǎng)存儲(chǔ)器操作數(shù)中的低地址 字傳送到指定的寄存器中。字傳送到指定的寄存器中。 即:即: dest(EA)dest(EA) (2) (2)將雙字長(zhǎng)存儲(chǔ)器操作數(shù)中的高地址將雙字長(zhǎng)存儲(chǔ)器操作數(shù)中的高地址 字傳送到字傳送到ESES寄存器中。寄存器中。ES(EA+2)ES(EA+2)受影響的狀態(tài)標(biāo)志位受影響的狀態(tài)標(biāo)志位: : 沒有沒有8.LES8.LES加載附加段寄存器加載附加段寄存器(load data segment egister)(load data segment egister)說明說明: LES: LES是將是將srcsr

34、c指出的連續(xù)兩個(gè)指出的連續(xù)兩個(gè)字字的的內(nèi)容內(nèi)容, ,即即 一個(gè)一個(gè)3232位的指針變量傳送到一對(duì)位的指針變量傳送到一對(duì)1616位的位的 目標(biāo)寄存器中。高位字內(nèi)容為段基地址目標(biāo)寄存器中。高位字內(nèi)容為段基地址, , LES LES指令將其傳送到附加段寄存器指令將其傳送到附加段寄存器ESES中中, , 低位字為偏移量低位字為偏移量, ,傳送到由傳送到由destdest指出的一指出的一 個(gè)通用寄存器個(gè)通用寄存器, ,指針寄存器或變址寄存器指針寄存器或變址寄存器 中中, ,但不能是段寄存器。但不能是段寄存器。9 輸入輸出指令輸入輸出指令(1) (1) IN 輸入指令輸入指令 指令匯編格式:指令匯編格式:

35、IN acc,port acc,port 操作:操作:acc(port)acc(port),即將指定端口的,即將指定端口的內(nèi)內(nèi)容容 ( (字或字節(jié)字或字節(jié)) )傳送到累加器傳送到累加器AX或或AL中。中。受影響的標(biāo)志位:受影響的標(biāo)志位:無無說明:說明: accacc為累加器為累加器AX或或AL L,取決于所訪問,取決于所訪問 端口的類型,若端口為端口的類型,若端口為1616位長(zhǎng),則累位長(zhǎng),則累 加器為加器為AX;若端口為;若端口為8 8位長(zhǎng),則累加位長(zhǎng),則累加 器為器為ALAL。 9 輸入輸出指令輸入輸出指令注意:注意:portport為所訪問的端口地址,其尋址方式有為所訪問的端口地址,其尋址

36、方式有 兩種:兩種:直接尋址和間接尋址直接尋址和間接尋址。 若其值在若其值在0255之間,則既可以使用直接之間,則既可以使用直接 尋址,也可以使用間接尋址;尋址,也可以使用間接尋址; 若其值若其值大于大于255,則必須使用,則必須使用間接間接尋址。尋址。直接尋址直接尋址:將端口地址直接在指令中給出;:將端口地址直接在指令中給出;間接尋址間接尋址:事先必須將端口地址存入:事先必須將端口地址存入DX寄存寄存 器,指令中不可直接出現(xiàn)地址值。器,指令中不可直接出現(xiàn)地址值。9 輸入輸出指令輸入輸出指令(2) (2) OUT 輸出指令輸出指令 指令匯編格式:指令匯編格式:OUT port ,acc 操作:

37、操作: port acc ,即將累加器即將累加器AX或或AL 的內(nèi)容傳送到指定端口的內(nèi)容傳送到指定端口port。 受影響的標(biāo)志位:無受影響的標(biāo)志位:無注:注:端口端口portport的規(guī)定同的規(guī)定同IN指令。指令。例:判斷下列各條語句的對(duì)錯(cuò):例:判斷下列各條語句的對(duì)錯(cuò):IN AX,20H ; IN AL,DX ; IN AX,200H ;OUT AX,DX ;OUT 21H,AL ;OUT DL,AL ;OUT DX,AL ; OUT 2000H,AX ; 2.3.2 2.3.2 算術(shù)運(yùn)算指令算術(shù)運(yùn)算指令1 1 加法運(yùn)算指令加法運(yùn)算指令2 2 減法運(yùn)算指令減法運(yùn)算指令3 3 乘法運(yùn)算指令乘法運(yùn)

38、算指令4 4 除法運(yùn)算指令除法運(yùn)算指令1 加法運(yùn)算指令加法運(yùn)算指令(1) ADD (addition)加法加法(2) ADC(addition with carry)帶進(jìn)位加帶進(jìn)位加(3) INC(increment by 1)增增1(1) ADD (addition) (1) ADD (addition) 加法加法指令匯編格式指令匯編格式: : ADD dest,srcADD dest,src操作操作: : 兩個(gè)操作數(shù)求和兩個(gè)操作數(shù)求和, ,結(jié)果存目標(biāo)操作數(shù)中。結(jié)果存目標(biāo)操作數(shù)中。 dest(dest)+(src) dest(dest)+(src)受影響的狀態(tài)標(biāo)志位受影響的狀態(tài)標(biāo)志位: OF

39、,SF,ZF,AF,PF,CF: OF,SF,ZF,AF,PF,CF說明說明: dest: dest和和srcsrc不能同時(shí)為存儲(chǔ)器操作數(shù)和不能同時(shí)為存儲(chǔ)器操作數(shù)和 段寄存器。段寄存器。(2) ADC(2) ADC帶進(jìn)位加法帶進(jìn)位加法(addition with carry)(addition with carry)指令匯編格式指令匯編格式: : ADC dest,srcADC dest,src操作操作: : 兩個(gè)操作數(shù)相加的同時(shí)兩個(gè)操作數(shù)相加的同時(shí), ,再加上再加上CFCF。結(jié)。結(jié) 果存入目標(biāo)操作數(shù)中。果存入目標(biāo)操作數(shù)中。 dest(dest)+(src)+CFdest(dest)+(src

40、)+CF受影響的狀態(tài)標(biāo)志位受影響的狀態(tài)標(biāo)志位: OF,SF,ZF,AF,PF,CF: OF,SF,ZF,AF,PF,CF說明說明:ADC:ADC指令主要用于多精度數(shù)據(jù)相加。指令主要用于多精度數(shù)據(jù)相加。指令匯編格式指令匯編格式: : INC destINC dest操作操作: :將指定的操作數(shù)加將指定的操作數(shù)加1,1,并將結(jié)果回送到目并將結(jié)果回送到目 標(biāo)操作數(shù)中。標(biāo)操作數(shù)中。 dest(dest)+1dest(dest)+1受影響的狀態(tài)標(biāo)志位受影響的狀態(tài)標(biāo)志位: OF,SF,ZF,AF,PF: OF,SF,ZF,AF,PF說明說明: :INC INC 指令不影響指令不影響CFCF。例例: : I

41、NC AL INC BX INC DATA1 INC BX(3)INC(increment by one)增增12 減法運(yùn)算指令減法運(yùn)算指令(1) SUB (subtract)減法減法(2) SBB(subtract with borrow)帶借位減帶借位減(3) DEC(decrement by 1)減減1(4) NEG(negate)取補(bǔ)取補(bǔ)(5) CMP(compare)比較比較(1) SUB (subtract) (1) SUB (subtract) 減法減法指令匯編格式指令匯編格式: : SUB dest,srcSUB dest,src操作操作: : 從目標(biāo)操作數(shù)減去源操作數(shù)從目標(biāo)操

42、作數(shù)減去源操作數(shù), ,結(jié)果存結(jié)果存 入目標(biāo)操作數(shù)中。入目標(biāo)操作數(shù)中。 dest(dest)-(src)dest(dest)-(src)受影響的狀態(tài)標(biāo)志位受影響的狀態(tài)標(biāo)志位: OF,SF,ZF,AF,PF,CF: OF,SF,ZF,AF,PF,CF例例: SUB AL,10H: SUB AL,10H SUB AL,BX+10H SUB AL,BX+10H SUB AL,AL SUB AL,AL指令匯編格式指令匯編格式: SBB : SBB dest,srcdest,src操作操作: :從目標(biāo)操作數(shù)中減去源操作數(shù)和從目標(biāo)操作數(shù)中減去源操作數(shù)和CF,CF,結(jié)果結(jié)果 存入目標(biāo)操作數(shù)中。存入目標(biāo)操作數(shù)中

43、。 dest(dest)-(src)-CF受影響的狀態(tài)標(biāo)志位受影響的狀態(tài)標(biāo)志位:OF,SF,ZF,AF,PF,CF:OF,SF,ZF,AF,PF,CF說明說明: SBB : SBB 指令主要用于多精度數(shù)據(jù)減法。指令主要用于多精度數(shù)據(jù)減法。例例: : SBB AL,0 SBB DL,CL(2) SBB帶借位減法帶借位減法(subtract with borrow)(3) DEC(decrement by one) (3) DEC(decrement by one) 減減1 1指令匯編格式指令匯編格式: : DEC dest操作操作: :將指定的操作數(shù)減將指定的操作數(shù)減1,1,并將結(jié)果送回到目并將

44、結(jié)果送回到目 標(biāo)操作數(shù)中。標(biāo)操作數(shù)中。dest(dest)-1受影響的狀態(tài)標(biāo)志位受影響的狀態(tài)標(biāo)志位:OF,SF,ZF,AF,PF:OF,SF,ZF,AF,PF說明說明: : DECDEC指令不影響指令不影響CFCF。例例: : DEC BX DEC BYTE PTR BX+SI+1000H DEC SP(4) NEG (negate) (4) NEG (negate) 取補(bǔ)取補(bǔ)( (取負(fù)取負(fù)) )指令匯編格式指令匯編格式: : NEG dest操作操作: :從從0 0中減去指令中給定的操作數(shù)中減去指令中給定的操作數(shù), ,最后將最后將 結(jié)果送回到給定的操作數(shù)中。結(jié)果送回到給定的操作數(shù)中。 des

45、t0-(dest)受影響的狀態(tài)標(biāo)志位受影響的狀態(tài)標(biāo)志位: : OF,SF,ZF,AF,PF,CF說明說明: NEG : NEG 指令對(duì)于帶符號(hào)的數(shù)來說是取負(fù)指令對(duì)于帶符號(hào)的數(shù)來說是取負(fù), , 即改變操作數(shù)的符號(hào)即改變操作數(shù)的符號(hào). .例例: : NEG AX NEG BYTE PTR BX+10(5) CMP(compare) (5) CMP(compare) 比較比較指令匯編格式指令匯編格式: : CMP dest,src操作操作: : 從目標(biāo)操作數(shù)中減去源操作數(shù),不保從目標(biāo)操作數(shù)中減去源操作數(shù),不保 存結(jié)果。存結(jié)果。 (dest)-(src)受影響的狀態(tài)標(biāo)志位受影響的狀態(tài)標(biāo)志位: :OF,

46、SF,ZF,AF,PF,CF說明說明: CMP : CMP 將兩個(gè)操作數(shù)相減將兩個(gè)操作數(shù)相減, ,兩個(gè)操作數(shù)保兩個(gè)操作數(shù)保 持原值不變持原值不變, ,但與但與SUBSUB指令一樣影響標(biāo)志。指令一樣影響標(biāo)志。例例: : CMP AL,BL CMP DL,10H 3 乘法運(yùn)算指令乘法運(yùn)算指令 乘法指令共有兩條乘法指令共有兩條, ,分別對(duì)應(yīng)無符號(hào)整分別對(duì)應(yīng)無符號(hào)整數(shù)的乘法和帶符號(hào)整數(shù)的乘法數(shù)的乘法和帶符號(hào)整數(shù)的乘法. .1. MUL (multiply unsigned) 無符號(hào)乘法無符號(hào)乘法2. IMUL (integer multiply signed) 帶符號(hào)乘法帶符號(hào)乘法(1) MUL (1

47、) MUL 無符號(hào)乘法無符號(hào)乘法指令匯編格式指令匯編格式: : MUL src操作操作: : 源操作數(shù)與累加器源操作數(shù)與累加器accacc的內(nèi)容相乘。的內(nèi)容相乘。 如果源操作數(shù)是字節(jié)數(shù)據(jù)如果源操作數(shù)是字節(jié)數(shù)據(jù), ,就與就與AL中的中的 數(shù)據(jù)相乘數(shù)據(jù)相乘, ,乘積為字乘積為字, ,存放在存放在AX中。中。 如果源操作數(shù)是字?jǐn)?shù)據(jù)如果源操作數(shù)是字?jǐn)?shù)據(jù), ,就與就與AX中的數(shù)中的數(shù) 相乘相乘, ,乘積為雙字乘積為雙字, ,存放在存放在DX和和AX中。中。 (1) MUL (1) MUL 無符號(hào)乘法無符號(hào)乘法兩個(gè)字節(jié)數(shù)相乘兩個(gè)字節(jié)數(shù)相乘: : AXAL*(src)兩個(gè)字?jǐn)?shù)據(jù)相乘兩個(gè)字?jǐn)?shù)據(jù)相乘: : DX

48、,AXAX*(src)受影響的狀態(tài)標(biāo)志位受影響的狀態(tài)標(biāo)志位: : OF,CF說明說明: : 源操作數(shù)源操作數(shù)srcsrc不能是立即數(shù)不能是立即數(shù)。 如果乘積的高半部不為零時(shí)如果乘積的高半部不為零時(shí),CF,CF和和OFOF 被置位被置位, ,否則將被清除。否則將被清除。指令具體功能指令具體功能:MUL src(2) IMUL (2) IMUL 帶符號(hào)乘法帶符號(hào)乘法指令匯編格式指令匯編格式: : IMUL src操作操作: : 將源操作數(shù)與累加器的內(nèi)容相乘。將源操作數(shù)與累加器的內(nèi)容相乘。 如果源操作數(shù)是字節(jié)數(shù)據(jù)如果源操作數(shù)是字節(jié)數(shù)據(jù), ,就與就與AL中的中的 數(shù)相乘數(shù)相乘, ,乘積為字乘積為字,

49、,存放在存放在AX中。中。 如果源操作數(shù)是字?jǐn)?shù)據(jù)如果源操作數(shù)是字?jǐn)?shù)據(jù), ,那么就與那么就與AX數(shù)數(shù) 相乘相乘, ,乘積為雙字乘積為雙字, ,存放在存放在DX和和AX中。中。(2) IMUL (2) IMUL 帶符號(hào)乘法帶符號(hào)乘法兩個(gè)字節(jié)數(shù)相乘兩個(gè)字節(jié)數(shù)相乘: : AXAL*(src)兩個(gè)字?jǐn)?shù)據(jù)相乘兩個(gè)字?jǐn)?shù)據(jù)相乘: : (DX,AX)AX*(src)受影響的狀態(tài)標(biāo)志位受影響的狀態(tài)標(biāo)志位: OF,CF: OF,CF。說明說明: : srcsrc不能是立即數(shù)不能是立即數(shù)。 IMUL IMUL指令視操作數(shù)為帶符號(hào)的數(shù)。指令視操作數(shù)為帶符號(hào)的數(shù)。 如果乘積的高半部不是符號(hào)位的擴(kuò)如果乘積的高半部不是符號(hào)位

50、的擴(kuò) 展時(shí)展時(shí), ,CFCF和和OFOF被置位被置位, ,否則將被清除否則將被清除。4. 4. 除法運(yùn)算指令除法運(yùn)算指令1. DIV (division unsigned) 無符號(hào)除法無符號(hào)除法2. IDIV (division signed) 帶符號(hào)除法帶符號(hào)除法3. CBW (convert byte to word) 將字節(jié)轉(zhuǎn)換為字將字節(jié)轉(zhuǎn)換為字4. CWD (convert word to double word)將字轉(zhuǎn)換為雙字將字轉(zhuǎn)換為雙字除法運(yùn)算要求:被除數(shù)的字長(zhǎng)必須是除法運(yùn)算要求:被除數(shù)的字長(zhǎng)必須是 除數(shù)的字長(zhǎng)的除數(shù)的字長(zhǎng)的2 2倍倍(1) DIV (division,unsig

51、ned) (1) DIV (division,unsigned) 無符號(hào)除法無符號(hào)除法指令匯編格式指令匯編格式: : DIV src操作操作: : AX( (或或DX,AX) )的內(nèi)容除以的內(nèi)容除以srcsrc的內(nèi)容的內(nèi)容, , 商存放在商存放在AL( (字節(jié)時(shí)字節(jié)時(shí)) )或或AX( (字時(shí)字時(shí)) )中中, , 并將余數(shù)存放在并將余數(shù)存放在AH( (字節(jié)時(shí)字節(jié)時(shí)) )或或DX( (字字 時(shí)時(shí)) ) 中。中。字除以字節(jié)字除以字節(jié): : AX/(src);AL商商, ,AH余數(shù)余數(shù)雙字除以字雙字除以字: : DX,AX/(src);AX商商, ,DX余數(shù)余數(shù)(1) DIV (division,un

52、signed) (1) DIV (division,unsigned) 無符號(hào)除法無符號(hào)除法受影響的狀態(tài)標(biāo)志位受影響的狀態(tài)標(biāo)志位: : 不產(chǎn)生有效的狀態(tài)標(biāo)志不產(chǎn)生有效的狀態(tài)標(biāo)志。說明說明: : srcsrc不能是立即數(shù)不能是立即數(shù); ; 如果商數(shù)超過了允許的最大值如果商數(shù)超過了允許的最大值( (字節(jié)時(shí)字節(jié)時(shí) 為為0FFH,0FFH,字時(shí)為字時(shí)為0FFFFH) 0FFFFH) 時(shí)就產(chǎn)生一個(gè)時(shí)就產(chǎn)生一個(gè) 方式方式0 0 的中斷的中斷, ,并且商和余數(shù)都不確定并且商和余數(shù)都不確定。(2) IDIV(2) IDIV帶符號(hào)除法帶符號(hào)除法( division,signed)( division,signe

53、d)指令匯編格式指令匯編格式: : IDIV src操作操作: AX(: AX(或或DX,AX)DX,AX)的內(nèi)容除以的內(nèi)容除以srcsrc的內(nèi)容。的內(nèi)容。 商存放在商存放在AL( AL( 字節(jié)時(shí)字節(jié)時(shí)) ) 或或AX (AX (字時(shí)字時(shí)) )中中, , 并將余數(shù)存放在并將余數(shù)存放在AH (AH (字節(jié)時(shí)字節(jié)時(shí)) ) 或或DX DX ( (字時(shí)字時(shí)) ) 中。中。字除以字節(jié)字除以字節(jié): : AX/(src) ;AL商商, ,AH余數(shù)余數(shù)雙字除以字雙字除以字: : DX,AX/(src);AX商商, ,DX余數(shù)余數(shù)(2) IDIV(2) IDIV帶符號(hào)除法帶符號(hào)除法( division,sign

54、ed)( division,signed)受影響的狀態(tài)標(biāo)志位受影響的狀態(tài)標(biāo)志位: : 不產(chǎn)生有效的狀態(tài)標(biāo)志不產(chǎn)生有效的狀態(tài)標(biāo)志。說明說明: : srcsrc不能是立即數(shù)不能是立即數(shù); ; 如果商數(shù)超過了允許的最大值如果商數(shù)超過了允許的最大值( (字節(jié)時(shí)字節(jié)時(shí) 為為-128127, ,字時(shí)為字時(shí)為-3276832767) ) 時(shí)就產(chǎn)生一個(gè)方式時(shí)就產(chǎn)生一個(gè)方式0 0的中斷的中斷, ,并且商和并且商和 余數(shù)都不確定。余數(shù)都不確定。余數(shù)始終與被除數(shù)同號(hào),商向余數(shù)始終與被除數(shù)同號(hào),商向0 0靠攏??繑n。(3) CBW(3) CBW字節(jié)轉(zhuǎn)換為字字節(jié)轉(zhuǎn)換為字(convert byte to word)(co

55、nvert byte to word)指令匯編格式指令匯編格式: : CBWCBW操作操作: :將將ALAL中第中第7 7位的值擴(kuò)展到整個(gè)位的值擴(kuò)展到整個(gè)AHAH中。中。 如果如果ALAL為正為正, ,那么那么AH00HAH00H 否則否則 AH0FFH AH0FFH受影響的狀態(tài)標(biāo)志位受影響的狀態(tài)標(biāo)志位: : 沒有。沒有。說明說明: CBW : CBW 是將是將ALAL寄存器中數(shù)的符號(hào)位擴(kuò)寄存器中數(shù)的符號(hào)位擴(kuò) 展到整個(gè)展到整個(gè)AHAH寄存器中。寄存器中。(4)CWD(4)CWD字轉(zhuǎn)換為雙字字轉(zhuǎn)換為雙字(convert word to double word)(convert word to d

56、ouble word)指令匯編格式指令匯編格式: : CWDCWD操作操作: : 將將AXAX中的最高位擴(kuò)展到整個(gè)中的最高位擴(kuò)展到整個(gè)DXDX中。中。 如果如果 AX AX 為正為正, ,那么那么 DX 0000H DX 0000H 否則否則 DX 0FFFFH DX 0FFFFH受影響的狀態(tài)標(biāo)志位受影響的狀態(tài)標(biāo)志位: : 沒有沒有說明說明: CWD: CWD將寄存器將寄存器AXAX的符號(hào)位擴(kuò)展到整個(gè)的符號(hào)位擴(kuò)展到整個(gè) 寄存器寄存器DXDX中。中。DATA1 DW 45HDATA2 DW 3CH無無符號(hào)數(shù):符號(hào)數(shù):MOV AX,DATA1 MUL DATA2帶帶符號(hào)數(shù):符號(hào)數(shù):MOV AX,D

57、ATA1 IMUL DATA2乘法應(yīng)用舉例乘法應(yīng)用舉例DATA1 DB 45HDATA2 DB 3CH無無符號(hào)數(shù):符號(hào)數(shù):MOV AL,DATA1 MOV AH,0 DIV DATA2帶帶符號(hào)數(shù):符號(hào)數(shù):MOV AL,DATA1 CBW IDIV DATA2除法應(yīng)用舉例除法應(yīng)用舉例DATA1 DW 45HDATA2 DB 3CH無無符號(hào)數(shù):符號(hào)數(shù):MOV AX,DATA1 DIV DATA2帶帶符號(hào)數(shù):符號(hào)數(shù):MOV AX,DATA1 IDIV DATA2除法應(yīng)用舉例除法應(yīng)用舉例2.3.3 2.3.3 邏輯運(yùn)算指令邏輯運(yùn)算指令1. NOT (not) 取反取反2. AND (and) 邏輯與邏

58、輯與3. OR (or)邏輯或邏輯或4. XOR (exclusive or) 異或異或5. TEST (test) 測(cè)試測(cè)試1. NOT 1. NOT 取反取反指令匯編格式指令匯編格式: : NOT destNOT dest操作操作: : 將操作數(shù)的每一位求反將操作數(shù)的每一位求反, ,然后將結(jié)然后將結(jié) 果回送到對(duì)應(yīng)位中。果回送到對(duì)應(yīng)位中。 destdestdestdest 受影響的狀態(tài)標(biāo)志位受影響的狀態(tài)標(biāo)志位: : 沒有沒有例:例: NOT AX NOT AX 2. AND 2. AND 邏輯與邏輯與指令匯編格式指令匯編格式: : AND dest,srcAND dest,src操作操作:

59、: 兩個(gè)操作數(shù)進(jìn)行邏輯兩個(gè)操作數(shù)進(jìn)行邏輯 “ “與與”, ,如果兩個(gè)如果兩個(gè)操操 作數(shù)的對(duì)應(yīng)位都為作數(shù)的對(duì)應(yīng)位都為1 1時(shí)時(shí), ,結(jié)果的對(duì)應(yīng)位才結(jié)果的對(duì)應(yīng)位才 為為1, 1, 否則結(jié)果的對(duì)應(yīng)位為否則結(jié)果的對(duì)應(yīng)位為0 0。 dest(dest)(src), CF0,OF0受影響的狀態(tài)標(biāo)志位受影響的狀態(tài)標(biāo)志位: OF,SF,ZF,AF,PF,CF: OF,SF,ZF,AF,PF,CF2. AND 2. AND 邏輯與邏輯與說明說明: AND: AND指令可借助某個(gè)給定的操作數(shù)將另指令可借助某個(gè)給定的操作數(shù)將另 一個(gè)操作數(shù)中的某些位清除一個(gè)操作數(shù)中的某些位清除( (這種操作也這種操作也 稱設(shè)置稱設(shè)置

60、屏蔽屏蔽),),使某些位保持不變使某些位保持不變, ,這個(gè)數(shù)這個(gè)數(shù) 通常稱為掩碼。通常稱為掩碼。例:例:AND AL,0FHAND AL,0FH; ALAL中的低中的低4 4位保持不位保持不 變,而高變,而高4 4位被清為位被清為0 03. OR 3. OR 邏輯或邏輯或指令匯編格式指令匯編格式: : OR dest,src操作操作: : 兩個(gè)操作數(shù)進(jìn)行邏輯兩個(gè)操作數(shù)進(jìn)行邏輯“或或”操作操作, ,即當(dāng)即當(dāng)兩兩 個(gè)操作數(shù)的對(duì)應(yīng)位都為個(gè)操作數(shù)的對(duì)應(yīng)位都為0 0時(shí)結(jié)果的對(duì)應(yīng)時(shí)結(jié)果的對(duì)應(yīng) 位為位為0,0,否則結(jié)果的對(duì)應(yīng)位為否則結(jié)果的對(duì)應(yīng)位為1,1,結(jié)果存結(jié)果存入入 目標(biāo)操作數(shù)中目標(biāo)操作數(shù)中, ,CFC

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論