計算機(jī)指令系統(tǒng)_第1頁
計算機(jī)指令系統(tǒng)_第2頁
計算機(jī)指令系統(tǒng)_第3頁
計算機(jī)指令系統(tǒng)_第4頁
計算機(jī)指令系統(tǒng)_第5頁
已閱讀5頁,還剩129頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第第4 4章章 指令系統(tǒng)指令系統(tǒng) 計算機(jī)指令系統(tǒng)計算機(jī)指令系統(tǒng) 本章主要教學(xué)內(nèi)容本章主要教學(xué)內(nèi)容 1、8086指令的基本格式指令的基本格式 2、8086指令系統(tǒng)的尋址方式指令系統(tǒng)的尋址方式 3、8086指令的應(yīng)用指令的應(yīng)用 本章教學(xué)目的本章教學(xué)目的 使學(xué)生掌握指令的尋址方式過程,掌握指令的使學(xué)生掌握指令的尋址方式過程,掌握指令的 應(yīng)用。應(yīng)用。 教學(xué)重點(diǎn):教學(xué)重點(diǎn):指令系統(tǒng)的尋址方式和指令的應(yīng)用指令系統(tǒng)的尋址方式和指令的應(yīng)用 教學(xué)難點(diǎn):教學(xué)難點(diǎn):指令的尋址方式指令的尋址方式 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 第第4章章 8086指令系統(tǒng)指令系統(tǒng) 4.1 指令的基本概念和基本格指令的基本概念和基本

2、格 式式 4.2 指令指令的尋址方式的尋址方式 4.3 8086指令系統(tǒng)指令系統(tǒng) 4.4 中中斷調(diào)用類指令斷調(diào)用類指令 開開 始始 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 4.1 指令的基本概念和指令格式指令的基本概念和指令格式 機(jī)器指令:指揮計算機(jī)完成某種操作機(jī)器指令:指揮計算機(jī)完成某種操作 的命令。的命令。 從計算機(jī)組成的層次結(jié)構(gòu)來說,計算從計算機(jī)組成的層次結(jié)構(gòu)來說,計算 機(jī)指令有機(jī)器指令、偽指令和宏指令之分。機(jī)指令有機(jī)器指令、偽指令和宏指令之分。 指令格式如下:指令格式如下: 操作符 OPD, OPS OPD:目的操作數(shù) OPS:源操作數(shù) 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 4.2 指令尋址方式

3、指令尋址方式 4.2.1 尋尋址方式的基本概念址方式的基本概念 4.2.2 與數(shù)據(jù)有關(guān)的尋址與數(shù)據(jù)有關(guān)的尋址方式方式 4.2.3 I/O端口尋址端口尋址方式方式 返回本章首頁返回本章首頁 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 4.2.1 4.2.1 尋址、尋址方式的概念尋址、尋址方式的概念 指令中操作數(shù)字段實質(zhì)上是指出操作數(shù)存放指令中操作數(shù)字段實質(zhì)上是指出操作數(shù)存放 于何處。一般來說,操作數(shù)可以跟隨在指令操作于何處。一般來說,操作數(shù)可以跟隨在指令操作 碼之后,稱為立即數(shù);操作數(shù)也可以存放在碼之后,稱為立即數(shù);操作數(shù)也可以存放在CPU 內(nèi)部的寄存器中,稱為寄存器操作數(shù)。絕大多數(shù)內(nèi)部的寄存器中,稱為寄

4、存器操作數(shù)。絕大多數(shù) 的操作數(shù)存放在內(nèi)存儲器中,稱為存儲器操作數(shù)。的操作數(shù)存放在內(nèi)存儲器中,稱為存儲器操作數(shù)。 指令指定操作數(shù)的位置,即給出地址信息,在執(zhí)指令指定操作數(shù)的位置,即給出地址信息,在執(zhí) 行時需要根據(jù)這個地址信息找到需要的操作數(shù)。行時需要根據(jù)這個地址信息找到需要的操作數(shù)。 這種尋找操作數(shù)的過程稱為尋址,而尋找操作數(shù)這種尋找操作數(shù)的過程稱為尋址,而尋找操作數(shù) 的方法稱為尋址方式。的方法稱為尋址方式。 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 4.2.2 4.2.2 與數(shù)據(jù)有關(guān)的尋址方式與數(shù)據(jù)有關(guān)的尋址方式 1. 立即尋址立即尋址 立即尋址方式中,指令操作碼和操作數(shù)都在存立即尋址方式中,指令操作

5、碼和操作數(shù)都在存 儲器代碼段中。儲器代碼段中。 匯編格式:匯編格式:n n(n n為立即操作數(shù),是用為立即操作數(shù),是用8 8位或位或1616位二位二 進(jìn)制補(bǔ)碼表示的有符號數(shù))進(jìn)制補(bǔ)碼表示的有符號數(shù)) 功能:操作數(shù)存放在功能:操作數(shù)存放在 存儲器,指令下一單元的存儲器,指令下一單元的 內(nèi)容為立即操作數(shù)內(nèi)容為立即操作數(shù)n n。 圖形表示如右:圖形表示如右: 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 【例【例4.14.1】 【例【例2.5】MOV AX, 10 執(zhí)行后(執(zhí)行后(AX)=? 該例中源操作數(shù)為立即尋址方式,立即數(shù)為該例中源操作數(shù)為立即尋址方式,立即數(shù)為10,存,存 放在指令的下一單元。放在指令的

6、下一單元。 圖形表示:圖形表示: 執(zhí)行:執(zhí)行:10AX 執(zhí)行后:執(zhí)行后:(AX)=000AH 返回本節(jié)返回本節(jié) 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 2. 寄存器尋址寄存器尋址 寄存器尋址方式的操作數(shù)在指令指明的寄寄存器尋址方式的操作數(shù)在指令指明的寄 存器中。存器中。 匯編格式:匯編格式:R 其中其中R表示寄存器名。表示寄存器名。 功能:操作數(shù)直接存放在寄存器功能:操作數(shù)直接存放在寄存器R中。中。 圖形表示:圖形表示: R 指令指令操作數(shù)操作數(shù) 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 【例【例4.24.2】 下列程序執(zhí)行后,下列程序執(zhí)行后,(AX)=?,(?,(BX)=? MOV AX,1234H MO

7、V BX,5678H ADD AX,BX 該程序中該程序中MOV指令為數(shù)據(jù)傳送指令操作符,指令為數(shù)據(jù)傳送指令操作符,ADD指令指令 為加法指令操作符,三條指令皆為雙操作數(shù)指令。第一、二為加法指令操作符,三條指令皆為雙操作數(shù)指令。第一、二 條指令條指令A(yù)X、BX皆為目的操作數(shù)地址,為寄存器尋址方式。皆為目的操作數(shù)地址,為寄存器尋址方式。 第三條指令中,第三條指令中,AX為目的操作數(shù)地址,為目的操作數(shù)地址,BX為源操作數(shù)地址。為源操作數(shù)地址。 源地址和目的地址皆為寄存器尋址方式。源地址和目的地址皆為寄存器尋址方式。 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 圖形表示:圖形表示: 執(zhí)行:執(zhí)行:1234HAX

8、 5678HBX (AX)+(BX)AX 執(zhí)行后:(執(zhí)行后:(AX)=68ACH,(,(BX)=5678H 返回本節(jié)返回本節(jié) 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 3. 3. 存儲器尋址存儲器尋址 如果操作碼所需操作數(shù)存放在內(nèi)存儲器中,則指令中如果操作碼所需操作數(shù)存放在內(nèi)存儲器中,則指令中 需要給出操作數(shù)的地址信息。為了提高程序的靈活性,需要給出操作數(shù)的地址信息。為了提高程序的靈活性, 8086指令系統(tǒng)提供了多種存儲器尋址方式指令系統(tǒng)提供了多種存儲器尋址方式 (1)直接尋址 (2)寄存器間接尋址 (3)寄存器相對尋址 (4)基址變址尋址 (5)關(guān)于段跨躍前綴 第第4 4章章 指令系統(tǒng)指令系統(tǒng) (1

9、) 直接尋址直接尋址 匯編格式:含有變量的地址表達(dá)式。匯編格式:含有變量的地址表達(dá)式。 段寄存器名:段寄存器名:EA 。 功能:指令下一字單元的內(nèi)容是操作數(shù)的偏移地功能:指令下一字單元的內(nèi)容是操作數(shù)的偏移地 址址EA。 圖形表示:圖形表示: 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 【例【例4.34.3】 【例【例4.3】寄存器和存儲器內(nèi)容為:(】寄存器和存儲器內(nèi)容為:(AX)=1212H, BUF為數(shù)據(jù)段定義的變量,其偏移地址是為數(shù)據(jù)段定義的變量,其偏移地址是2000H,(,(DS) =3000H,(,(32000H)=4545H。 執(zhí)行指令:執(zhí)行指令:MOV AX ,BUF 執(zhí)行后:(執(zhí)行后:(A

10、X)=? 圖形表示:圖形表示: 執(zhí)行:(執(zhí)行:(32000H)AX 執(zhí)行后:(執(zhí)行后:(AX)=4545H返回本節(jié)返回本節(jié) 第第4 4章章 指令系統(tǒng)指令系統(tǒng) (2) 寄存器間接尋址寄存器間接尋址 寄存器間接尋址方式中,寄存器的內(nèi)容為寄存器間接尋址方式中,寄存器的內(nèi)容為 操作數(shù)的偏移地址操作數(shù)的偏移地址EAEA,操作數(shù)在存儲器中。操作數(shù)在存儲器中。 匯編格式:匯編格式: RR 功能:操作數(shù)存放在存儲器,寄存器功能:操作數(shù)存放在存儲器,寄存器R R存放存放 操作數(shù)的偏移地址操作數(shù)的偏移地址EAEA。 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 寄存器間接尋址示意圖:寄存器間接尋址示意圖: 例如:例如:MOV

11、 AX,BX 若(若(DS)2000H,(,(BX)1000H,物理地址物理地址20000H 1000H21000H。指令執(zhí)行前,(指令執(zhí)行前,(AX)2030H,(,(21000H) 0A0H,(,(21001H)50H,指令執(zhí)行后,(指令執(zhí)行后,(AX)50A0H, (21000H)0A0H,(,(21001H)50H。指令執(zhí)行情況如下:指令執(zhí)行情況如下: AX AH AL 數(shù)據(jù)段 物理地址 A0H 21000H 50H 20001H 56H 20002H 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 偏移地址偏移地址EA計算方法如下:計算方法如下: EA= SISI作間址寄存器。 DIDI作間址寄存

12、器。 BX BX作間址寄存器。 BP BP作間址寄存器。 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 執(zhí)行指令:執(zhí)行指令:MOV AX MOV AX ,BP BP 執(zhí)行后:(執(zhí)行后:(AXAX)=?=?,(,(BPBP)=?=?,(,(SSSS)=?=?, (20030H20030H)=?=? 圖形表示如下:圖形表示如下: 【例【例4.44.4】寄存器和存儲器內(nèi)容分別為:】寄存器和存儲器內(nèi)容分別為: (AXAX)=0=0,(,(BPBP)=0030H=0030H,(,(SSSS)=2000H=2000H, (20030H20030H)=1234H=1234H 返回本節(jié)返回本節(jié) 第第4 4章章 指令系統(tǒng)指

13、令系統(tǒng) (3) 寄存器相對尋址寄存器相對尋址 寄存器相對尋址方式是在指令中給定一個基址寄存寄存器相對尋址方式是在指令中給定一個基址寄存 器(或變址寄存器)名和一個器(或變址寄存器)名和一個8 8位或位或1616位的相對偏移量,位的相對偏移量, 兩者之和作為操作數(shù)的有效地址。對兩者之和作為操作數(shù)的有效地址。對BXBX、SISI、DIDI這三個這三個 間址寄存器,指示的是數(shù)據(jù)段中的數(shù)據(jù),而用間址寄存器,指示的是數(shù)據(jù)段中的數(shù)據(jù),而用BPBP作間址作間址 寄存器,則指示的是堆棧段中的數(shù)據(jù)。寄存器,則指示的是堆棧段中的數(shù)據(jù)。 匯編格式:匯編格式:XRXR(X X表示位移量,是表示位移量,是8 8位或位或

14、1616位二進(jìn)位二進(jìn) 制補(bǔ)碼表示的有符號數(shù))。制補(bǔ)碼表示的有符號數(shù))。 功能:操作數(shù)存放在存儲器,寄存器功能:操作數(shù)存放在存儲器,寄存器R R的內(nèi)容加位移量的內(nèi)容加位移量X X 為操作數(shù)的偏移地址為操作數(shù)的偏移地址EAEA。 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 偏移地址偏移地址EA計算方法如下計算方法如下: 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 【例【例4.54.5】 設(shè)執(zhí)行前:設(shè)執(zhí)行前: (AX)=0040H,(,(BX)=0030H, (DS)=2000H,(,(20036H)=0050H 執(zhí)行指執(zhí)行指令:令:ADD 6BX,AX 執(zhí)行后:執(zhí)行后:(AX)=?,(,(BX)=?,(,(DS)=?

15、, (20036H)=? 圖形表示如下:圖形表示如下: 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 執(zhí)行:(執(zhí)行:(20036H)+(AX) 20036H 執(zhí)行后:(執(zhí)行后:(AX)=0040H,(,(BX)=0030H,(,(DS) =2000H,(,(20036H)=0090H。 返回本節(jié)返回本節(jié) 第第4 4章章 指令系統(tǒng)指令系統(tǒng) (4) 基址變址尋址基址變址尋址 基址變址尋址方式是在指令中給出一個基址寄存器名基址變址尋址方式是在指令中給出一個基址寄存器名 和一個變址寄存器名,兩者內(nèi)容之和作為操作數(shù)的有效地和一個變址寄存器名,兩者內(nèi)容之和作為操作數(shù)的有效地 址?;芳拇嫫鳛橹??;芳拇嫫鳛锽XBX或

16、或BPBP,變址寄存器為變址寄存器為SISI或或DIDI,但指令但指令 中不能同時出現(xiàn)兩個基址寄存器或兩個變址寄存器。如果中不能同時出現(xiàn)兩個基址寄存器或兩個變址寄存器。如果 基址寄存器為基址寄存器為BXBX,則段寄存器使用則段寄存器使用DSDS;如果基址寄存器用如果基址寄存器用 BPBP,則段寄存器用則段寄存器用SSSS。 匯編格式:匯編格式: BR+IR BR+IR 功能:操作數(shù)存放在存儲器,功能:操作數(shù)存放在存儲器,BRBR的內(nèi)容加的內(nèi)容加IRIR的內(nèi)容加的內(nèi)容加 位移量位移量X X是操作數(shù)的偏移地址是操作數(shù)的偏移地址EAEA。 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 操作數(shù)偏移地址操作數(shù)偏移地

17、址EA計算方法如下計算方法如下 返回本節(jié)返回本節(jié) 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 【例【例4.64.6】 例如例如 MOV AL,BXSI(MOV AL,BXSI) 若指令執(zhí)行前,(若指令執(zhí)行前,(DS)1000H,(,(BX) 0010H,(,(SI)0002H,(,(10012H)45H 則則EA(BX)()(SI)0012H,PA(DS) 10HEA10012H 指令執(zhí)行后(指令執(zhí)行后(AL)45H。 返回本節(jié)返回本節(jié) 第第4 4章章 指令系統(tǒng)指令系統(tǒng) (5) 跨段問題跨段問題 按前述規(guī)定:若選用按前述規(guī)定:若選用BPBP作間址基址寄存器、變址寄存器作間址基址寄存器、變址寄存器 或基址

18、寄存器,則操作數(shù)在堆棧段,操作數(shù)的物理地址或基址寄存器,則操作數(shù)在堆棧段,操作數(shù)的物理地址PAPA由由 堆棧段寄存器堆棧段寄存器SSSS的內(nèi)容左移的內(nèi)容左移4 4位與偏移地址位與偏移地址EAEA相加后形成;否相加后形成;否 則,操作數(shù)在數(shù)據(jù)段,操作數(shù)的物理地址則,操作數(shù)在數(shù)據(jù)段,操作數(shù)的物理地址PAPA由數(shù)據(jù)段寄存器由數(shù)據(jù)段寄存器 DSDS的內(nèi)容左移的內(nèi)容左移4 4位與偏移位與偏移EAEA相加后形成。該規(guī)定為系統(tǒng)默認(rèn)狀相加后形成。該規(guī)定為系統(tǒng)默認(rèn)狀 態(tài)。當(dāng)要否定默認(rèn)狀態(tài),到非約定段尋找操作數(shù)時,必須用態(tài)。當(dāng)要否定默認(rèn)狀態(tài),到非約定段尋找操作數(shù)時,必須用 跨段前綴指明操作數(shù)的段寄存器名??缍吻熬Y

19、指明操作數(shù)的段寄存器名。 匯編格式:段寄存器名:操作數(shù)地址。匯編格式:段寄存器名:操作數(shù)地址。 功能:段寄存器名指明操作數(shù)屬哪個段。功能:段寄存器名指明操作數(shù)屬哪個段。 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 【例【例4.74.7】跨段前綴示例。】跨段前綴示例。 MOVMOVAXAX,DSDS:BP BP MOVMOVCXCX,SSSS:SI SI 該例中,該例中,DSDS:,:,SSSS:均為跨段前綴,此時默認(rèn)均為跨段前綴,此時默認(rèn) 狀態(tài)無效,操作數(shù)的物理地址狀態(tài)無效,操作數(shù)的物理地址PAPA由段寄存器內(nèi)由段寄存器內(nèi) 容左移容左移4 4位加偏移位加偏移EAEA形成。上述形成。上述2 2條指令的源操

20、條指令的源操 作數(shù)物理地址分別為:作數(shù)物理地址分別為: PA1 =PA1 =(DSDS)左移左移4 4位位+BPBP PA2 =PA2 =(SSSS)左移左移4 4位位+SISI 返回本節(jié)返回本節(jié) 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 4.2.3 4.2.3 I/OI/O端口尋址方式端口尋址方式 8086CPU采用獨(dú)立編址的采用獨(dú)立編址的I/O端口,可以最多訪問端口,可以最多訪問64K個字節(jié)端口個字節(jié)端口 或或32K個字端口,用專門的個字端口,用專門的IN指令和指令和OUT指令訪問。指令訪問。I/O端口尋址只用端口尋址只用 于這兩種指令中。尋址方式有如下兩種。于這兩種指令中。尋址方式有如下兩種。

21、1. 直接端口尋址直接端口尋址 在指令中直接給出端口地址,端口地址一般采用在指令中直接給出端口地址,端口地址一般采用2位十六進(jìn)制數(shù),位十六進(jìn)制數(shù), 也可以用符號表示,這種尋址方式為直接端口尋址。因此,直接端口也可以用符號表示,這種尋址方式為直接端口尋址。因此,直接端口 尋址可訪問的端口數(shù)為尋址可訪問的端口數(shù)為0255個。個。 例如:例如:IN AL,25H 2. 寄存器間接端口尋址寄存器間接端口尋址 如果訪問的端口地址值大于如果訪問的端口地址值大于255,則必須用,則必須用I/O端口的間接尋址方式。端口的間接尋址方式。 所謂間接尋址,是指把所謂間接尋址,是指把I/O端口的地址先送到端口的地址先

22、送到DX中,用中,用DX作間接尋址作間接尋址 寄存器,而且只能用寄存器,而且只能用DX寄存器。寄存器。 例如:例如:MOV DX,378H OUT DX,AL 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 4.3 80864.3 8086指令系統(tǒng)指令系統(tǒng) 包括數(shù)據(jù)傳送類指令、算術(shù)運(yùn)算類指令、包括數(shù)據(jù)傳送類指令、算術(shù)運(yùn)算類指令、 位位操作操作類指令、串操作類指令、控制轉(zhuǎn)移類類指令、串操作類指令、控制轉(zhuǎn)移類 指令、處理機(jī)控制類指令。后幾節(jié)將分別介指令、處理機(jī)控制類指令。后幾節(jié)將分別介 紹這些指令的語句格式和功能。紹這些指令的語句格式和功能。 4.3.1 數(shù)據(jù)傳送類指令 4.3.2 算術(shù)運(yùn)算類指令 4.3.3

23、邏輯運(yùn)算與移位類指令 4.3.4 串操作類指令 4.3.5 控制轉(zhuǎn)移類指令 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 4.3.1 數(shù)據(jù)傳送類指令數(shù)據(jù)傳送類指令 1 通用數(shù)據(jù)傳送指令通用數(shù)據(jù)傳送指令 2 累加器專用傳送指令累加器專用傳送指令 3 地址傳送指令地址傳送指令 4 標(biāo)志寄存器傳送指令標(biāo)志寄存器傳送指令 返回本章首頁返回本章首頁 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 1 1 通用數(shù)據(jù)傳送指令通用數(shù)據(jù)傳送指令 (1)傳送指令傳送指令MOV (2)堆棧指令堆棧指令PUSHPOP (3)數(shù)據(jù)交換指令數(shù)據(jù)交換指令XCHG 第第4 4章章 指令系統(tǒng)指令系統(tǒng) (1 1)傳送指令)傳送指令MOVMOV 語句格式:

24、語句格式:MOV OPDMOV OPD,OPSOPS 功能:將源操作數(shù)傳送入目的地址,源功能:將源操作數(shù)傳送入目的地址,源 地址內(nèi)容不變。即(地址內(nèi)容不變。即(OPSOPS)OPDOPD。 下圖下圖4.14.1描述了描述了MOVMOV指令在傳送數(shù)據(jù)時允指令在傳送數(shù)據(jù)時允 許傳送的路徑及類型。許傳送的路徑及類型。 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 圖圖4.1 MOV指令所允許的數(shù)據(jù)傳送路徑及類型指令所允許的數(shù)據(jù)傳送路徑及類型 第第4 4章章 指令系統(tǒng)指令系統(tǒng) MOVMOV指令的形式有如下幾種:指令的形式有如下幾種: 1)從通用寄存器到通用寄存器)從通用寄存器到通用寄存器 MOV reg1,reg

25、2 2)立即數(shù)傳送到通用寄存器)立即數(shù)傳送到通用寄存器 MOV reg ,data 3)通用寄存器和存儲單元之間)通用寄存器和存儲單元之間 MOV mem (reg),reg (mem) 4)立即數(shù)傳送到存儲單元立即數(shù)傳送到存儲單元 MOV mem, data 5)段寄存器與通用寄存器間的數(shù)據(jù)傳送段寄存器與通用寄存器間的數(shù)據(jù)傳送 MOV seg,reg 或或 MOV reg, seg 6)段寄存器與存儲單元間的數(shù)據(jù)傳送段寄存器與存儲單元間的數(shù)據(jù)傳送 MOV seg,mem 或或 MOV mem, seg 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 【例【例4.84.8】存儲器與寄存器間數(shù)據(jù)傳送。存儲器與

26、寄存器間數(shù)據(jù)傳送。 MOV AX,BUF ;BUF是變量,源操作數(shù)為直接尋址是變量,源操作數(shù)為直接尋址 MOV BH,DI ;源操作數(shù)為寄存器間接尋址源操作數(shù)為寄存器間接尋址 MOV DI,ES:3SI ;源操作數(shù)為變址尋址,使用跨段前綴源操作數(shù)為變址尋址,使用跨段前綴 MOV BP,3BX+SI;源操作數(shù)為基址加變址尋址源操作數(shù)為基址加變址尋址 MOV BUFA,DL;BUFA是一字節(jié)變量是一字節(jié)變量 MOV BP,AX;使用使用SS段寄存器段寄存器 MOV DS:BP,DL;使用跨段前綴使用跨段前綴 MOV BUF,DS;BUF是個字變量是個字變量 MOV ES ,BUF 第第4 4章章

27、指令系統(tǒng)指令系統(tǒng) 2 2數(shù)據(jù)交換指令數(shù)據(jù)交換指令XCHGXCHG 語句格式:語句格式:XCHG OPD,OPS 功能:將源地址與目的地址中的內(nèi)容互換。即(功能:將源地址與目的地址中的內(nèi)容互換。即(OPD)OPS, (OPS)OPD。 【例例4.9】寄存器與存儲器之間數(shù)據(jù)交換寄存器與存儲器之間數(shù)據(jù)交換。 MOVAX,5678H;(;(AX)=5678H MOVBX,0FFFFH;(;(BX)=0FFFFH XCHG AX,BX;(;(AX)=0FFFFH ,(,( BX)=5678H 第第4 4章章 指令系統(tǒng)指令系統(tǒng) (2 2) 堆棧操作指令堆棧操作指令 1)進(jìn)棧指令進(jìn)棧指令PUSH 2)出棧指

28、令出棧指令POP 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 1 1)進(jìn)棧指令)進(jìn)棧指令PUSHPUSH 語句格式:語句格式: PUSH OPSPUSH OPS 功能:將寄存器、段寄存器或存儲器中的一功能:將寄存器、段寄存器或存儲器中的一 個字?jǐn)?shù)據(jù)壓入堆棧,堆棧指針減個字?jǐn)?shù)據(jù)壓入堆棧,堆棧指針減2 2。 即:(即:(SPSP)SPSP(OPSOPS)158SP158SP (SPSP)SPSP(OPSOPS)70SP70SP 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 2 2)出棧指令)出棧指令POPPOP 語句格式:語句格式: POP OPDPOP OPD 功能:功能: 將棧頂元素彈出送至某一寄存器、段寄存器將棧

29、頂元素彈出送至某一寄存器、段寄存器 (除(除CSCS外)或存儲器,堆棧指針加外)或存儲器,堆棧指針加2 2。 從從POPPOP指令功能可看出,該指令為指令功能可看出,該指令為PUSHPUSH指令的逆過程。指令的逆過程。 即:(即:( SPSP)(OPDOPD)7070(SPSP)+ +SP SP (SPSP)(OPDOPD)158158 (SPSP)+ +SPSP 返回本節(jié)返回本節(jié) 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 2.2.累加器專用傳送指令累加器專用傳送指令 (1)輸入)輸入/輸出指令輸出指令 (2)XLAT查表指令查表指令 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 1 1)輸入指令)輸入指令I(lǐng)NI

30、N 輸入指令用來從指定的外設(shè)寄存器取信息送入輸入指令用來從指定的外設(shè)寄存器取信息送入 累加器。它有四種形式:累加器。它有四種形式: 語句格式:語句格式:ININALAL,PORT PORT 功能:(功能:(PORTPORT)ALAL 語句格式:語句格式:ININAXAX,PORTPORT 功能:(功能:(PORTPORT)AXAX 語句格式:語句格式:ININALAL,DXDX 功能:(功能:( DXDX)ALAL 語句格式:語句格式:ININAXAX,DXDX 功能:(功能:( DXDX)ALAL 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 2 2)輸出指令)輸出指令OUTOUT 輸出指令用來把累加器

31、的內(nèi)容送往指定的外設(shè)輸出指令用來把累加器的內(nèi)容送往指定的外設(shè) 存儲器,它有四種形式:存儲器,它有四種形式: 語句格式:語句格式:OUTPORT,AL 功能:(功能:(AL)PORT 語句格式:語句格式:OUTPORT,AX 功能:(功能:(AX)PORT 語句格式:語句格式:OUTDX,AL 功能:(功能:(AL)DX 語句格式:語句格式:OUTDX,AX 功能:(功能:(AX)DX 返回本節(jié)返回本節(jié) 第第4 4章章 指令系統(tǒng)指令系統(tǒng) (2 2)查表轉(zhuǎn)換指令)查表轉(zhuǎn)換指令 XLATXLAT 語句格式:語句格式:XLAT OPSXLAT OPS或或XLATXLAT 功能:將(功能:將(BXBX)

32、為首址(為首址(ALAL)為位移量為位移量 的字節(jié)存儲單元中的數(shù)據(jù)送的字節(jié)存儲單元中的數(shù)據(jù)送ALAL寄存器。寄存器。 即(即( BX+ALBX+AL)ALAL。 返回本節(jié)返回本節(jié) 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 3 3 地址傳送指令地址傳送指令 (1 1)傳送有效地址指令)傳送有效地址指令 LEALEA (2 2)傳送有效地址及數(shù)據(jù)段首址指令)傳送有效地址及數(shù)據(jù)段首址指令LDSLDS (3 3)傳送有效地址及附加數(shù)據(jù)段指令)傳送有效地址及附加數(shù)據(jù)段指令LESLES 第第4 4章章 指令系統(tǒng)指令系統(tǒng) (1 1)傳送有效地址指令)傳送有效地址指令 LEALEA 語句格式:語句格式: LEA OP

33、DLEA OPD,OPSOPS 功能:主存按源地址的尋址方式計算偏移地址,功能:主存按源地址的尋址方式計算偏移地址, 將偏移地址送入指定寄存器。將偏移地址送入指定寄存器。 【例【例4.104.10】主存偏移地址的獲取。主存偏移地址的獲取。 MOV BXMOV BX,0100H0100H ;(;(BXBX)=0100H=0100H MOV SIMOV SI, 0210H 0210H;(;(SISI) =0210H =0210H LEA BXLEA BX,1234BX+SI1234BX+SI; (BXBX)=1544H=1544H 第第4 4章章 指令系統(tǒng)指令系統(tǒng) (2 2)傳送有效地址及數(shù)據(jù)段首

34、址指令)傳送有效地址及數(shù)據(jù)段首址指令LDSLDS 語句格式:語句格式:LDS OPDLDS OPD,OPSOPS 功能:將主存中指定字單元數(shù)據(jù)送入指功能:將主存中指定字單元數(shù)據(jù)送入指 定存儲器,下一字單元數(shù)據(jù)送定存儲器,下一字單元數(shù)據(jù)送DSDS寄存器。寄存器。 第第4 4章章 指令系統(tǒng)指令系統(tǒng) (3 3)傳送有效地址及附加數(shù)據(jù)段指令)傳送有效地址及附加數(shù)據(jù)段指令LESLES 語句格式:語句格式:LES OPDLES OPD,OPSOPS 功能:將主存某字單元內(nèi)容送指定寄存器。功能:將主存某字單元內(nèi)容送指定寄存器。 即(即(OPSOPS)OPDOPD,(,(OPS+2OPS+2)ESES。 返回

35、本節(jié)返回本節(jié) 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 4 4 標(biāo)志寄存器傳送指令標(biāo)志寄存器傳送指令 (1 1)標(biāo)志送)標(biāo)志送AHAH指令指令LAHFLAHF (2 2)AHAH送標(biāo)志指令送標(biāo)志指令SAHFSAHF (3 3)標(biāo)志寄存器進(jìn)棧指令)標(biāo)志寄存器進(jìn)棧指令PUSHFPUSHF (4 4)標(biāo)志寄存器出棧指令標(biāo)志寄存器出棧指令POPFPOPF 第第4 4章章 指令系統(tǒng)指令系統(tǒng) (1 1)標(biāo)志送)標(biāo)志送AHAH指令指令LAHFLAHF 語句格式:語句格式:LAHFLAHF 功能:將標(biāo)志寄存器的低功能:將標(biāo)志寄存器的低8 8位送入位送入AHAH寄存器。寄存器。 即(即(FLAGSFLAGS)7-0AH

36、7-0AH。該指令的執(zhí)行對標(biāo)志該指令的執(zhí)行對標(biāo)志 位無影響。位無影響。 【例【例4.114.11】標(biāo)志寄存器傳送?!繕?biāo)志寄存器傳送。 執(zhí)行前:(執(zhí)行前:(FLAGSFLAGS)=0485H=0485H,(,(AXAX)=0FFFFH=0FFFFH 執(zhí)行指令:執(zhí)行指令:LAHFLAHF 第第4 4章章 指令系統(tǒng)指令系統(tǒng) (2 2)AHAH送標(biāo)志指令送標(biāo)志指令SAHFSAHF 語句格式:語句格式:SAHFSAHF 功能:將功能:將AHAH的內(nèi)容送入標(biāo)志寄存器的低的內(nèi)容送入標(biāo)志寄存器的低8 8位,高位,高 8 8位不變。位不變。即(即(AHAH) FLAGS7-0. FLAGS7-0.。 從該指令功

37、能可看出,從該指令功能可看出,SAHFSAHF為為LAHFLAHF的逆過程。的逆過程。 第第4 4章章 指令系統(tǒng)指令系統(tǒng) (3 3)標(biāo)志寄存器進(jìn)棧指令)標(biāo)志寄存器進(jìn)棧指令PUSHFPUSHF 語句格式:語句格式:PUSHF 功能:將標(biāo)志寄存器的內(nèi)容壓入堆棧。功能:將標(biāo)志寄存器的內(nèi)容壓入堆棧。 即即(FLAGS)(SP)。)。 第第4 4章章 指令系統(tǒng)指令系統(tǒng) (4 4)標(biāo)志寄存器出棧指令)標(biāo)志寄存器出棧指令POPFPOPF 功能:功能: 將棧頂內(nèi)容彈出送入標(biāo)志寄存器中。即將棧頂內(nèi)容彈出送入標(biāo)志寄存器中。即(SPSP) FLAGSFLAGS。 POPFPOPF指令與指令與PUSHFPUSHF指令

38、互為逆過程。指令互為逆過程。 【例【例4.124.12】將標(biāo)志寄存器的單步標(biāo)志】將標(biāo)志寄存器的單步標(biāo)志TFTF置位。置位。 PUSHFPUSHF ;(;(FLSGSFLSGS)(SPSP) POP AXPOP AX;(;(SPSP)AXAX OR AXOR AX, 0100H 0100H;設(shè)置設(shè)置D8=TF=1D8=TF=1 PUSH AXPUSH AX;(;(AXAX)(SPSP) POPFPOPF;(;(SPSP)FLAGSFLAGS,即(即(AXAX)FLAGSFLAGS 返回本節(jié)返回本節(jié) 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 4.3.2 算術(shù)運(yùn)算類指令算術(shù)運(yùn)算類指令 1 加法類指令加法類指

39、令 2 減運(yùn)算指令減運(yùn)算指令 3 乘運(yùn)算指令乘運(yùn)算指令 4 除運(yùn)算指令除運(yùn)算指令 5 BCD碼調(diào)整指令碼調(diào)整指令 返回本章首頁返回本章首頁 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 1 加法指令加法指令 (1)不帶進(jìn)位)不帶進(jìn)位加加法法指令指令A(yù)DD (2)帶進(jìn)位加指令帶進(jìn)位加指令A(yù)DC (3)加加1指令指令I(lǐng)NC 第第4 4章章 指令系統(tǒng)指令系統(tǒng) (1 1)不帶進(jìn)位加指令)不帶進(jìn)位加指令A(yù)DDADD 語句格式:語句格式:ADD OPDADD OPD, OPS OPS 功能:將目的操作數(shù)與源操作數(shù)相加,結(jié)果存功能:將目的操作數(shù)與源操作數(shù)相加,結(jié)果存 入目的地址中,源地址的內(nèi)容不改變。入目的地址中,源地

40、址的內(nèi)容不改變。 即(即(OPDOPD)+ +(OPSOPS)OPDOPD。 第第4 4章章 指令系統(tǒng)指令系統(tǒng) (2 2)帶進(jìn)位加法指令)帶進(jìn)位加法指令A(yù)DCADC 語句格式:語句格式:ADC OPDADC OPD,OPSOPS 功能:將目的操作數(shù)加源操作數(shù)再加低位進(jìn)位,功能:將目的操作數(shù)加源操作數(shù)再加低位進(jìn)位, 結(jié)果送目的地址。結(jié)果送目的地址。 即(即(OPDOPD)+ +(OPSOPS)+CF OPD+CF OPD。 【例【例4.134.13】無符號雙字加法運(yùn)算?!繜o符號雙字加法運(yùn)算。 MOVMOVAXAX,4652H4652H;(;(AXAX)=4652H=4652H ADDADDAXA

41、X,0F0F0H0F0F0H;(;(AXAX)=3742H=3742H,CF=1CF=1 MOVMOVDXDX,0234H0234H;(;(DXDX)=0234H=0234H ADCADCDXDX,0F0F0H0F0F0H;(;(DXDX)=0F325H=0F325H,CF=0CF=0 返回本節(jié)返回本節(jié) 第第4 4章章 指令系統(tǒng)指令系統(tǒng) (3 3)加)加1 1指令指令 INCINC 語句格式:語句格式:INC OPDINC OPD 功能:將目的操作數(shù)加功能:將目的操作數(shù)加1 1,結(jié)果送目的地址。即,結(jié)果送目的地址。即 (OPDOPD)+1OPD+1OPD。 INCINC指令是一個單操作數(shù)指令,

42、操作數(shù)可以是寄指令是一個單操作數(shù)指令,操作數(shù)可以是寄 存器或存儲器操作數(shù)。存器或存儲器操作數(shù)。 如:如:INC BXINC BX,即(即(BXBX)+1BX+1BX。 加加1 1指令可用于對計數(shù)器和地址指針進(jìn)行調(diào)整。指令可用于對計數(shù)器和地址指針進(jìn)行調(diào)整。 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 2 減運(yùn)算指令減運(yùn)算指令 (1)不帶借位減法指令不帶借位減法指令SUB (2)帶借位減指令帶借位減指令 SBB (3)減減1指令指令DEC (4)求補(bǔ)指令求補(bǔ)指令NEG (5)比較指令比較指令 CMP 第第4 4章章 指令系統(tǒng)指令系統(tǒng) (1 1)不帶借位減法指令)不帶借位減法指令SUBSUB 語句格式:語句格

43、式:SUB OPDSUB OPD,OPSOPS 功能:目的操作數(shù)減源操作數(shù),結(jié)果存于目的地址,功能:目的操作數(shù)減源操作數(shù),結(jié)果存于目的地址, 源地址內(nèi)容不變。源地址內(nèi)容不變。 即(即(OPDOPD)()(OPSOPS)OPDOPD 【例例4.144.14】減法運(yùn)算。】減法運(yùn)算。 MOVMOVAX AX ,5678H5678H;(;(AXAX)=5678H=5678H SUBSUBAX AX ,1234H1234H;(;(AXAX)=4444H=4444H MOVMOVBX BX ,3354H3354H;(;(BXBX)=3354H=3354H SUBSUBBX BX ,3340H3340H;(

44、;(BXBX)=0014H=0014H 第第4 4章章 指令系統(tǒng)指令系統(tǒng) (2 2)帶借位減指令)帶借位減指令 SBBSBB 語句格式:語句格式:SBB OPD SBB OPD ,OPSOPS 功能:目的操作數(shù)減源操作數(shù)再減低位借功能:目的操作數(shù)減源操作數(shù)再減低位借 位位CFCF,結(jié)果送目的地址。結(jié)果送目的地址。 即(即(OPDOPD)(OPSOPS)CF OPDCF OPD 第第4 4章章 指令系統(tǒng)指令系統(tǒng) (3 3)減)減1 1指令指令DECDEC 語句格式:語句格式:DEC OPD DEC OPD 功能:將目的操作數(shù)減功能:將目的操作數(shù)減1 1,結(jié)果送目的地址。即,結(jié)果送目的地址。即 (

45、OPDOPD)1OPD1OPD。 DECDEC指令是一個單操作數(shù)指令,操作數(shù)可以是寄指令是一個單操作數(shù)指令,操作數(shù)可以是寄 存器或存儲器操作數(shù)。存器或存儲器操作數(shù)。 如:如:DEC CXDEC CX。即(即(CXCX)1CX1CX。 減減1 1指令指令DECDEC也一般用于對計數(shù)器和地址指針的調(diào)也一般用于對計數(shù)器和地址指針的調(diào) 整。整。 第第4 4章章 指令系統(tǒng)指令系統(tǒng) (4 4)求補(bǔ)指令)求補(bǔ)指令NEGNEG 語句格式:語句格式:NEG OPDNEG OPD 功能:將目的操作數(shù)的每一位求反(包括符號位)后加功能:將目的操作數(shù)的每一位求反(包括符號位)后加1 1, 結(jié)果送目的地址。結(jié)果送目的地

46、址。 即(即(OPDOPD)+1OPD+1OPD。 【例例4.154.15】求補(bǔ)運(yùn)算?!壳笱a(bǔ)運(yùn)算。 MOVMOVAXAX,0FF64H0FF64H NEGNEGALAL;(;(AXAX)=0FF9CH=0FF9CH SUBSUBALAL,9DH9DH;(;(AXAX)=0FFFFH=0FFFFH NEGNEGAXAX;(;(AXAX)=0001H=0001H DECDECALAL;(;(AXAX)=0000H=0000H NEGNEGAXAX;(;(AXAX)=0000H=0000H 第第4 4章章 指令系統(tǒng)指令系統(tǒng) (5 5)比較指令)比較指令 CMPCMP 語句格式:語句格式:CMP OP

47、DCMP OPD,OPSOPS 功能:目的操作數(shù)減源操作數(shù),結(jié)果只影響標(biāo)志位,不送入功能:目的操作數(shù)減源操作數(shù),結(jié)果只影響標(biāo)志位,不送入 目的地址。目的地址。 即(即(OPDOPD)()(OPSOPS)。)。 【例【例4.164.16】比較】比較ALAL的內(nèi)容數(shù)值大小。的內(nèi)容數(shù)值大小。 CMPCMPALAL,5050;(;(ALAL)5050 JBJBBELOWBELOW ;(;(ALAL)50=50=50,(,( AL AL)50AL50AL INCINCAHAH;(;(AHAH)+1AH+1AH BELOWBELOW: 返回本節(jié)返回本節(jié) 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 3 乘法運(yùn)算指令乘

48、法運(yùn)算指令 (1)無符號數(shù)乘法指令無符號數(shù)乘法指令MUL (2)有符號乘指令)有符號乘指令I(lǐng)MUL 第第4 4章章 指令系統(tǒng)指令系統(tǒng) (1 1)無符號數(shù)乘法指令)無符號數(shù)乘法指令MULMUL 語句格式:語句格式: MUL OPSMUL OPS 功能:功能: 若是字節(jié)數(shù)據(jù)相乘,(若是字節(jié)數(shù)據(jù)相乘,(ALAL)與與OPSOPS相乘得到相乘得到 字?jǐn)?shù)據(jù)存入字?jǐn)?shù)據(jù)存入AXAX中;若是字?jǐn)?shù)據(jù)相乘,則(中;若是字?jǐn)?shù)據(jù)相乘,則(AXAX)與與 OPSOPS相乘得到雙字?jǐn)?shù)據(jù),高字存入相乘得到雙字?jǐn)?shù)據(jù),高字存入DXDX、低字存入低字存入AXAX 中。中。 即字節(jié)乘法:(即字節(jié)乘法:(ALAL)* * (OPSO

49、PS) AX AX,字乘法:字乘法: (AXAX) * * (OPSOPS) DX DX,AX AX 【例【例2.252.25】無符號數(shù)】無符號數(shù)0 0A3HA3H與與1111H H相乘相乘。 MOVMOVALAL,0A3H0A3H;(;(ALAL)=0A3H=0A3H MOVMOVBLBL, 11H 11H;(;(BLBL)=11H=11H MULMULBLBL ;(;(AXAX)=0AD3H=0AD3H 第第4 4章章 指令系統(tǒng)指令系統(tǒng) (2 2)有符號乘指令)有符號乘指令I(lǐng)MULIMUL 語句格式:語句格式:IMUL OPSIMUL OPS 功能:字節(jié)乘法:(功能:字節(jié)乘法:(ALAL)

50、* *(OPSOPS)AXAX,字乘法:(字乘法:(AXAX)* * (OPSOPS)DXDX、AXAX。 IMULIMUL指令除計算對象是帶符號二進(jìn)制數(shù)外,其他都與指令除計算對象是帶符號二進(jìn)制數(shù)外,其他都與MULMUL一樣,一樣, 但計算結(jié)果不同。但計算結(jié)果不同。 【例【例4.174.17】有符號數(shù)】有符號數(shù)0 0B4HB4H與與1111H H相乘。相乘。 MOVMOVALAL,0B4H0B4H;(;(ALAL)=B4H=B4H MOVMOVBLBL,11H11H;(;(BLBL)=11H=11H IMULIMULBLBL ;(;(AXAX)=0FAF4H=0FAF4H 返回本節(jié)返回本節(jié) 第

51、第4 4章章 指令系統(tǒng)指令系統(tǒng) 4 除運(yùn)算指令除運(yùn)算指令 (1)無符號除指令無符號除指令DIV (2 2)有符號)有符號除指令除指令I(lǐng)DIV (3)符號擴(kuò)展指令符號擴(kuò)展指令 第第4 4章章 指令系統(tǒng)指令系統(tǒng) (1 1)無符號除指令)無符號除指令DIVDIV 語句格式:語句格式:DIV OPSDIV OPS 功能:功能: 字節(jié)除法(字節(jié)除法(AXAX)/ /(OPSOPS) AL AL(商)、商)、AHAH(余數(shù))余數(shù)) 字除法(字除法(DXDX、AXAX)/ /(OPSOPS) AX AX(商)、商)、DXDX(余數(shù))余數(shù)) 【例【例4.184.18】寫出實現(xiàn)無符號數(shù)】寫出實現(xiàn)無符號數(shù)0400

52、0400H / 0B4HH / 0B4H運(yùn)算的程運(yùn)算的程 序段。序段。 MOVMOVAXAX,0400H0400H ;(;(AXAX)=0400H=0400H MOVMOVBLBL,0B4H0B4H;(;(BLBL)=0B4H=0B4H DIVDIVBLBL ;商(商(ALAL)=05H=05H,余數(shù)(余數(shù)(AHAH)=7CH =7CH 第第4 4章章 指令系統(tǒng)指令系統(tǒng) (2 2)有符號有符號除指令除指令I(lǐng)DIVIDIV 語句格式:語句格式:IDIV OPSIDIV OPS 功能:功能: 字節(jié)除法:(字節(jié)除法:(AXAX)/ /(OPSOPS) AL AL(商)、商)、AHAH(余數(shù))余數(shù))

53、字除法:(字除法:(DXDX,AXAX)/ /(OPSOPS) AX AX (商)、商)、DXDX(余數(shù))余數(shù)) 除法指令除法指令DIVDIV和和IDIVIDIV雖然對標(biāo)志的影響未定義,但可產(chǎn)生溢出。雖然對標(biāo)志的影響未定義,但可產(chǎn)生溢出。 【例【例4.194.19】寫出實現(xiàn)有符號數(shù)】寫出實現(xiàn)有符號數(shù)04000400H /0B4HH /0B4H運(yùn)算的程序段。運(yùn)算的程序段。 MOVMOVAXAX,0400H0400H;(;(AXAX)=0400H=0400H MOVMOVBXBX,0B4H0B4H;(;(BXBX)=0B4H=0B4H IDIVIDIVBXBX ;(;(ALAL)=0F3H=0F3

54、H,(,(AHAH)=24H=24H 返回本節(jié)返回本節(jié) 第第4 4章章 指令系統(tǒng)指令系統(tǒng) (3) 符號擴(kuò)展指令符號擴(kuò)展指令 1)字節(jié)轉(zhuǎn)換成字指令字節(jié)轉(zhuǎn)換成字指令CBW 2)將字轉(zhuǎn)換成雙字指令將字轉(zhuǎn)換成雙字指令CWD 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 1 1)字節(jié)轉(zhuǎn)換成字指令)字節(jié)轉(zhuǎn)換成字指令CBWCBW 語句格式:語句格式:CBWCBW 功能:將功能:將ALAL中的符號位數(shù)據(jù)擴(kuò)展至中的符號位數(shù)據(jù)擴(kuò)展至AHAH。 【例例4.204.20】將字節(jié)數(shù)據(jù)擴(kuò)展成字?jǐn)?shù)據(jù)?!繉⒆止?jié)數(shù)據(jù)擴(kuò)展成字?jǐn)?shù)據(jù)。 MOVMOVALAL,0A5H0A5H;(;(ALAL)=0A5H=0A5H CBWCBW ;(;(AXAX

55、)=0FFA5H=0FFA5H ADDADDALAL,70H70H;(;(ALAL)=25H=25H CBWCBW ;(;(AXAX)=0025H=0025H 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 2 2)將字轉(zhuǎn)換成雙字指令)將字轉(zhuǎn)換成雙字指令CWDCWD 語句格式:語句格式:CWDCWD 功能:將功能:將AXAX中的符號位數(shù)據(jù)擴(kuò)展至中的符號位數(shù)據(jù)擴(kuò)展至DX DX 。 【例例4.214.21】將字?jǐn)?shù)據(jù)擴(kuò)展成雙字?jǐn)?shù)據(jù)?!繉⒆?jǐn)?shù)據(jù)擴(kuò)展成雙字?jǐn)?shù)據(jù)。 MOVMOVDXDX, 0 0;(;(DXDX)=0=0 MOVMOVAXAX, 0FFABH 0FFABH;(;(AXAX)=0FFABH=0FFABH

56、CWDCWD;(;(DXDX)=0FFFFH =0FFFFH (AXAX)=0FFABH=0FFABH 返回本節(jié)返回本節(jié) 第第4 4章章 指令系統(tǒng)指令系統(tǒng) 5 十進(jìn)制調(diào)整指令十進(jìn)制調(diào)整指令 (1)加法的十進(jìn)制調(diào)整指令加法的十進(jìn)制調(diào)整指令DAA DAA (2)減法的十進(jìn)制調(diào)整指令減法的十進(jìn)制調(diào)整指令DASDAS (3)加法的非壓縮)加法的非壓縮BCD碼調(diào)整指令碼調(diào)整指令A(yù)AA (4)減)減法的非壓縮法的非壓縮BCD碼調(diào)整指令碼調(diào)整指令A(yù)AS 第第4 4章章 指令系統(tǒng)指令系統(tǒng) (1 1)加法的十進(jìn)制調(diào)整指令)加法的十進(jìn)制調(diào)整指令DAA DAA 語句格式:語句格式:DAADAA 功能:如果功能:如果

57、ALAL寄存器中低寄存器中低4 4位大于位大于9 9或輔助進(jìn)位(或輔助進(jìn)位(AFAF) =1=1,則(則(ALAL)= =(ALAL)+6+6且(且(AFAF)=1=1;如果(如果(ALAL) =0A0H=0A0H或(或(CFCF)=1=1,則(則(ALAL)= =(ALAL)+60H+60H且(且(CFCF) =1=1。同時,同時,SFSF、ZFZF、PFPF均有影響。均有影響。 【例【例2.312.31】壓縮】壓縮BCDBCD碼的加法運(yùn)算。碼的加法運(yùn)算。 MOV ALMOV AL,68H68H ;(;(ALAL)=68H=68H,表示壓縮表示壓縮BCDBCD碼碼6868 MOV BLMOV

58、 BL,28H28H ;(;(BLBL)=28H=28H,表示壓縮表示壓縮BCDBCD碼碼2828 ADD ALADD AL,BLBL;二進(jìn)制加法:(二進(jìn)制加法:(ALAL)=68H+28H=90H=68H+28H=90H DAADAA ;十進(jìn)制調(diào)整:(十進(jìn)制調(diào)整:(ALAL)=96H=96H ;實現(xiàn)壓縮實現(xiàn)壓縮BCDBCD碼加法:碼加法:68+28=9668+28=96 第第4 4章章 指令系統(tǒng)指令系統(tǒng) (2 2)減法的十進(jìn)制調(diào)整指令)減法的十進(jìn)制調(diào)整指令DASDAS 語句格式:語句格式:DASDAS 功能:如果(功能:如果(AFAF)=1=1或或ALAL寄存器中低寄存器中低4 4位大于位大

59、于9 9,則(,則(ALAL)= = (ALAL)6 6且(且(AFAF)=1=1;如果(如果(ALAL)=0A0H=0A0H或(或(CFCF)=1=1,則則 (ALAL)= =(ALAL)60H60H且(且(CFCF)=1=1。同時同時SFSF、ZFZF、PFPF均受影響。均受影響。 【例【例4.204.20】壓縮】壓縮BCDBCD碼的減法運(yùn)算。碼的減法運(yùn)算。 MOVMOVALAL,68H 68H ;(;(ALAL)=68H=68H,表示壓縮表示壓縮BCDBCD碼碼6868 MOVMOVBLBL,28H 28H ;(;(BLBL)=28H=28H,表示壓縮表示壓縮BCDBCD碼碼2828 S

60、UBSUBALAL,BLBL ;二進(jìn)制減法:(二進(jìn)制減法:(ALAL)=68H=68H 28H=40H28H=40H DASDAS ;十進(jìn)制調(diào)整:(十進(jìn)制調(diào)整:(ALAL)=40H=40H ;實現(xiàn)壓縮實現(xiàn)壓縮BCDBCD碼減法:碼減法:686828=4028=40 第第4 4章章 指令系統(tǒng)指令系統(tǒng) (3)加法的非壓縮)加法的非壓縮BCD碼調(diào)整指令碼調(diào)整指令A(yù)AA 語句格式:語句格式:AAA 功能:如果功能:如果AL的低的低4位大于位大于9或(或(AF)=1,則:則: (AL)=(AL)+6 (AH)=(AH)+1 (AF)=(CF)=1 且且AL高高4位清零。位清零。 否則:(否則:(CF)=

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論