版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、IBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院第第3章章 80 x86指令系統(tǒng)和尋址方式指令系統(tǒng)和尋址方式教學(xué)要求:教學(xué)要求:1. 掌握指令系統(tǒng)的根本概念:指令格式、尋址方掌握指令系統(tǒng)的根本概念:指令格式、尋址方式、指令類型;掌握式、指令類型;掌握8086/8088指令系統(tǒng)中,各指指令系統(tǒng)中,各指令的格式、功能和本卷須知。令的格式、功能和本卷須知。2. 了解其他的尋址方式和指令類型。了解其他的尋址方式和指令類型。 IBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院 相關(guān)概念相關(guān)概念一、什么是指令系統(tǒng)?一、什么是指令系統(tǒng)
2、? 計(jì)算機(jī)的指令系統(tǒng)就是指該計(jì)算機(jī)可以執(zhí)行的計(jì)算機(jī)的指令系統(tǒng)就是指該計(jì)算機(jī)可以執(zhí)行的全部指令的集合。全部指令的集合。 每種計(jì)算機(jī)都有它支持的指令集合。每種計(jì)算機(jī)都有它支持的指令集合。 16位位8086指令系統(tǒng)是整個(gè)指令系統(tǒng)是整個(gè)Intel 80 x86 系列微處系列微處置器指令系統(tǒng)的根底。置器指令系統(tǒng)的根底。IBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院操作碼操作碼操作數(shù)操作數(shù) 操作數(shù)操作數(shù)IBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院三、學(xué)習(xí)指令的本卷須知三、學(xué)習(xí)指令的本卷須知 指令的功能指令的功能該指令可以實(shí)現(xiàn)
3、何種操作。通常指令助記該指令可以實(shí)現(xiàn)何種操作。通常指令助記符就是指令功能的英文單詞或其縮寫方式。符就是指令功能的英文單詞或其縮寫方式。 指令支持的尋址方式指令支持的尋址方式該指令中的操作數(shù)可以采用何種該指令中的操作數(shù)可以采用何種尋址方式。尋址方式。 指令對(duì)標(biāo)志的影響指令對(duì)標(biāo)志的影響該指令執(zhí)行后能否對(duì)各個(gè)標(biāo)志位有該指令執(zhí)行后能否對(duì)各個(gè)標(biāo)志位有影響,以及如何影響。影響,以及如何影響。 其他方面其他方面該指令其他需求特別留意的地方,如指令執(zhí)該指令其他需求特別留意的地方,如指令執(zhí)行時(shí)的商定設(shè)置、必需預(yù)置的參數(shù)、隱含運(yùn)用的存放器等。行時(shí)的商定設(shè)置、必需預(yù)置的參數(shù)、隱含運(yùn)用的存放器等。IBM-PC匯編語言
4、程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院3.1 80 x86尋址方式尋址方式尋址、尋址方式的概念尋址、尋址方式的概念 指令中操作數(shù)字段本質(zhì)上是指出操作數(shù)存放于何處。普指令中操作數(shù)字段本質(zhì)上是指出操作數(shù)存放于何處。普通來說,操作數(shù)可以跟隨在指令操作碼之后,稱為立刻數(shù);通來說,操作數(shù)可以跟隨在指令操作碼之后,稱為立刻數(shù);操作數(shù)也可以存放在操作數(shù)也可以存放在CPU內(nèi)部的存放器中,稱為存放器操作內(nèi)部的存放器中,稱為存放器操作數(shù)。絕大多數(shù)的操作數(shù)存放在內(nèi)存儲(chǔ)器中,稱為存儲(chǔ)器操作數(shù)。絕大多數(shù)的操作數(shù)存放在內(nèi)存儲(chǔ)器中,稱為存儲(chǔ)器操作數(shù)。指令指定操作數(shù)的位置,即給出地址信息,在執(zhí)行時(shí)
5、需數(shù)。指令指定操作數(shù)的位置,即給出地址信息,在執(zhí)行時(shí)需求根據(jù)這個(gè)地址信息找到需求的操作數(shù)。這種尋覓操作數(shù)的求根據(jù)這個(gè)地址信息找到需求的操作數(shù)。這種尋覓操作數(shù)的過程稱為尋址,而尋覓操作數(shù)的方法稱為尋址方式。過程稱為尋址,而尋覓操作數(shù)的方法稱為尋址方式。IBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院指令的助記符格式:指令的助記符格式: 指令助憶符指令助憶符 操作數(shù)操作數(shù)1 , 操作數(shù)操作數(shù)2 , 操作數(shù)操作數(shù)3 ;注釋注釋 指令助憶符表達(dá)該指令的功能,它對(duì)應(yīng)一條二進(jìn)制編碼的機(jī)器指令助憶符表達(dá)該指令的功能,它對(duì)應(yīng)一條二進(jìn)制編碼的機(jī)器指令。指令的操作數(shù)個(gè)數(shù)由該指
6、令確定,可以沒有操作數(shù),也可以指令。指令的操作數(shù)個(gè)數(shù)由該指令確定,可以沒有操作數(shù),也可以有一個(gè)、二個(gè)或三個(gè)操作數(shù)。絕大多數(shù)指令的操作數(shù)要顯式的寫出有一個(gè)、二個(gè)或三個(gè)操作數(shù)。絕大多數(shù)指令的操作數(shù)要顯式的寫出來,但也有指令的操作數(shù)是隱含的,不需求在指令中寫出。來,但也有指令的操作數(shù)是隱含的,不需求在指令中寫出。注:當(dāng)指令含有操作數(shù),那么在書寫時(shí)必需遵守:注:當(dāng)指令含有操作數(shù),那么在書寫時(shí)必需遵守: 指令助記符和操作數(shù)之間要有分隔符,分隔符可以是假設(shè)干個(gè)空格指令助記符和操作數(shù)之間要有分隔符,分隔符可以是假設(shè)干個(gè)空格或或TAB鍵;鍵; 假設(shè)指令含有多個(gè)操作數(shù),那么,操作數(shù)之間要用逗號(hào)假設(shè)指令含有多個(gè)操
7、作數(shù),那么,操作數(shù)之間要用逗號(hào),分開分開。 指令后面還可以書寫注釋內(nèi)容,不過,要在注釋之前書寫分號(hào)指令后面還可以書寫注釋內(nèi)容,不過,要在注釋之前書寫分號(hào)“;。 IBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院3.1.1 與數(shù)據(jù)有關(guān)的尋址方式與數(shù)據(jù)有關(guān)的尋址方式以以 MOV 指令為例:指令為例:立刻尋址立刻尋址 MOV AX , 3069H存放器尋址存放器尋址 MOV AL , BH直接尋址直接尋址 MOV AX , 2000H 存放器間接尋址存放器間接尋址 MOV AX , BX 存放器相對(duì)尋址存放器相對(duì)尋址 MOV AX , COUNT SI 基址變址尋
8、址基址變址尋址 MOV AX , BP DI 相對(duì)基址變址尋址相對(duì)基址變址尋址 MOV AX , MASK BX SI IBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院1. 立刻尋址方式立刻尋址方式 定義:操作數(shù)作為指令的一部分而直接寫在指令中,這種操作定義:操作數(shù)作為指令的一部分而直接寫在指令中,這種操作數(shù)稱為立刻數(shù),這種尋址方式也就稱為立刻數(shù)尋址方式。數(shù)稱為立刻數(shù),這種尋址方式也就稱為立刻數(shù)尋址方式。 匯編格式:匯編格式:nn為立刻操作數(shù),是用為立刻操作數(shù),是用8位或位或16位二進(jìn)制補(bǔ)碼表示位二進(jìn)制補(bǔ)碼表示的有符號(hào)數(shù)的有符號(hào)數(shù)功能:操作數(shù)存放在存儲(chǔ)器,
9、指令下一單元的內(nèi)容為立刻操作數(shù)功能:操作數(shù)存放在存儲(chǔ)器,指令下一單元的內(nèi)容為立刻操作數(shù)n。圖形表示:圖形表示:操作數(shù)操作數(shù) n指令指令I(lǐng)BM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院【例【例3.1】MOV AX, 4576H 執(zhí)行后執(zhí)行后AX=? 該例中源操作數(shù)為立刻尋址方式,立刻數(shù)為該例中源操作數(shù)為立刻尋址方式,立刻數(shù)為4576H,存放,存放在指令的下一單元。在指令的下一單元。 執(zhí)行:執(zhí)行:4576HAX 執(zhí)行后:執(zhí)行后:AX=4576H 76HOP45H DSMOV AX,4576H指令的存儲(chǔ)方式指令的存儲(chǔ)方式45 76 AXIBM-PC匯編語言程序設(shè)
10、計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院2. 存放器尋址方式存放器尋址方式定義:指令所要的操作數(shù)已存儲(chǔ)在某存放器中,或把目的定義:指令所要的操作數(shù)已存儲(chǔ)在某存放器中,或把目的操作數(shù)存入存放器。把在指令中指出所運(yùn)用存放器即:操作數(shù)存入存放器。把在指令中指出所運(yùn)用存放器即:存放器的助記符的尋址方式稱為存放器尋址方式。存放器的助記符的尋址方式稱為存放器尋址方式。 匯編格式:匯編格式:R 其中其中R表示存放器名。表示存放器名。功能:操作數(shù)直接存放在存放器功能:操作數(shù)直接存放在存放器R中。中。圖形表示:圖形表示:存放器存放器 R指令指令操作數(shù)操作數(shù)存放器存放器IBM-PC匯編語言程序
11、設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院指令中可以援用的存放器及其符號(hào)稱號(hào)如下:指令中可以援用的存放器及其符號(hào)稱號(hào)如下: 8位存放器有:位存放器有:AH、AL、BH、BL、CH、CL、DH和和DL等;等; 16位存放器:位存放器:AX、BX、CX、DX、SI、DI、SP、BP和段和段存放器等;存放器等; 源操作數(shù)是存放器尋址方式源操作數(shù)是存放器尋址方式 如:如:ADD VARW, AXMOV VARB, BH等。等。 其中:其中:VARW和和VARB是字和字節(jié)類型的內(nèi)存變量。是字和字節(jié)類型的內(nèi)存變量。目的操作數(shù)是存放器尋址方式目的操作數(shù)是存放器尋址方式 如:如:ADD B
12、H, 78hADD AX, 1234h源和目的操作數(shù)都是存放器尋址方式源和目的操作數(shù)都是存放器尋址方式 如:如: MOV AX, BX MOV DH, BL等。等。IBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院注:由于指令所需的操作數(shù)已存儲(chǔ)在存放器中,或注:由于指令所需的操作數(shù)已存儲(chǔ)在存放器中,或操作的結(jié)果存入存放器,這樣,在指令執(zhí)行過程中,操作的結(jié)果存入存放器,這樣,在指令執(zhí)行過程中,會(huì)減少讀會(huì)減少讀/寫存儲(chǔ)器單元的次數(shù),所以,運(yùn)用存放器寫存儲(chǔ)器單元的次數(shù),所以,運(yùn)用存放器尋址方式的指令具有較快的執(zhí)行速度。通常情況下,尋址方式的指令具有較快的執(zhí)行速度。
13、通常情況下,提倡在編寫匯編言語程序時(shí),應(yīng)盡能夠地運(yùn)用存放提倡在編寫匯編言語程序時(shí),應(yīng)盡能夠地運(yùn)用存放器尋址方式,但也不要把它絕對(duì)化。器尋址方式,但也不要把它絕對(duì)化。IBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院【例【例3.2】以下程序執(zhí)行后,】以下程序執(zhí)行后,AX=?,?,BX=? MOV AX,1234H MOV BX,5678H ADD AX,BX解釋:該程序中解釋:該程序中MOV指令為數(shù)據(jù)傳送指令操作符,指令為數(shù)據(jù)傳送指令操作符,ADD指指令為加法指令操作符,三條指令皆為雙操作數(shù)指令。第一、令為加法指令操作符,三條指令皆為雙操作數(shù)指令。第一、二條指
14、令二條指令A(yù)X、BX皆為目的操作數(shù)地址,為存放器尋址方式皆為目的操作數(shù)地址,為存放器尋址方式。第三條指令中,。第三條指令中,AX為目的操作數(shù)地址,為目的操作數(shù)地址,BX為源操作數(shù)地為源操作數(shù)地址。源地址和目的地址皆為存放器尋址方式。址。源地址和目的地址皆為存放器尋址方式。執(zhí)行:執(zhí)行:1234HAX 5678HBX AX+BXAX執(zhí)行后:執(zhí)行后:AX=68ACH,BX=5678HIBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院3. 直接尋址方式直接尋址方式定義:指令所要的操作數(shù)存放在內(nèi)存中,在指令中直接給定義:指令所要的操作數(shù)存放在內(nèi)存中,在指令中直接給出該
15、操作數(shù)的有效地址,這種尋址方式為直接尋址方式。出該操作數(shù)的有效地址,這種尋址方式為直接尋址方式。 匯編格式:含有變量的地址表達(dá)式。匯編格式:含有變量的地址表達(dá)式。功能:指令下一字單元的內(nèi)容是操作數(shù)的偏移地址功能:指令下一字單元的內(nèi)容是操作數(shù)的偏移地址EAEA。圖形表示:圖形表示:EA指令指令操作數(shù)操作數(shù)存儲(chǔ)器存儲(chǔ)器段基地址段基地址IBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院【例【例3.3】執(zhí)行指令:】執(zhí)行指令:MOV BX ,1234H 設(shè)設(shè)DS=2000H。執(zhí)行后:執(zhí)行后:AX=?圖示:圖示:執(zhí)行:執(zhí)行:21234HBX執(zhí)行后:執(zhí)行后:BX=5312
16、HIBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院 在通常情況下,操作數(shù)存放在數(shù)據(jù)段中,所以,其物理地址將由數(shù)據(jù)段在通常情況下,操作數(shù)存放在數(shù)據(jù)段中,所以,其物理地址將由數(shù)據(jù)段存放器存放器DSDS和指令中給出的有效地址直接構(gòu)成,但假設(shè)運(yùn)用段超越前綴,那么和指令中給出的有效地址直接構(gòu)成,但假設(shè)運(yùn)用段超越前綴,那么,操作數(shù)可存放在其它段。,操作數(shù)可存放在其它段。 例如:例如:MOVMOVES:1000HES:1000H, AX AX 留意:立刻尋址方式和直接尋址方式的書寫格式不同,直接尋址的地址要寫留意:立刻尋址方式和直接尋址方式的書寫格式不同,直接尋址的地址
17、要寫在括號(hào)在括號(hào)“ ,“ 內(nèi)。在程序中,直接地址通常用內(nèi)存變量名來表示,如:內(nèi)。在程序中,直接地址通常用內(nèi)存變量名來表示,如:MOV BX, VARWMOV BX, VARW,其中,其中,VARWVARW是內(nèi)存字變量。是內(nèi)存字變量。 試比較以下指令中源操作數(shù)的尋址方式試比較以下指令中源操作數(shù)的尋址方式VARWVARW是內(nèi)存字變量:是內(nèi)存字變量: MOVAX, 1234H MOVAX, 1234H 前者是立刻尋址,后者是直接尋址前者是立刻尋址,后者是直接尋址 MOVAX, VARW MOVAX, VARW 兩者是等效的,均為直接尋址兩者是等效的,均為直接尋址 IBM-PC匯編語言程序設(shè)計(jì)匯編語言
18、程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院4. 存放器間接尋址方式存放器間接尋址方式定定 義:操作數(shù)在存儲(chǔ)器中,操作數(shù)的有效地址用義:操作數(shù)在存儲(chǔ)器中,操作數(shù)的有效地址用SISI、DIDI、BXBX和和BPBP等四個(gè)存放器之一來指定,稱這種尋址方式為存放器等四個(gè)存放器之一來指定,稱這種尋址方式為存放器間接尋址方式。間接尋址方式。 匯編格式:匯編格式:RR功功 能:操作數(shù)存放在存儲(chǔ)器,存放器能:操作數(shù)存放在存儲(chǔ)器,存放器R R存放操作數(shù)的偏存放操作數(shù)的偏移地址移地址EAEA。圖形表示:圖形表示:EA存放器存放器操作數(shù)操作數(shù)存儲(chǔ)器存儲(chǔ)器段基地址段基地址基址或變址存放器基址或變址存放器指令指
19、令I(lǐng)BM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院【例【例3.4】假設(shè)有指令:】假設(shè)有指令:MOV BX, DI,在執(zhí)行時(shí),在執(zhí)行時(shí),DS=1000H,DI=2345H,存儲(chǔ)單元,存儲(chǔ)單元12345H的內(nèi)容是的內(nèi)容是4354H。問。問執(zhí)行指令后,執(zhí)行指令后,BX的值是什么?的值是什么?解:存放器解:存放器DI的值不是操作數(shù),而是操作數(shù)的地址。的值不是操作數(shù),而是操作數(shù)的地址。該操作數(shù)的物理地址應(yīng)由該操作數(shù)的物理地址應(yīng)由DS和和DI的值構(gòu)成,即:的值構(gòu)成,即: PA=DS*16+DI=1000H*16+2345H=12345H。所以,該指令的執(zhí)行效果是:所以
20、,該指令的執(zhí)行效果是:把從物理地址為把從物理地址為12345H開場的開場的一個(gè)字的值傳送給一個(gè)字的值傳送給BX。 OP CS DS54H43H 10000H 12345H DS:1000HDI:2345H 12345H43 54 BXIBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院在不運(yùn)用段超越前綴的情況下,有以下規(guī)定:在不運(yùn)用段超越前綴的情況下,有以下規(guī)定: 假設(shè)有效地址用假設(shè)有效地址用SI、DI和和BX等之一來指定,那么其缺省的段存等之一來指定,那么其缺省的段存放器為放器為DS;假設(shè)有效地址用假設(shè)有效地址用BP來指定,那么其缺省的段存放器為來指定,那么
21、其缺省的段存放器為SS即:即:堆棧段。堆棧段。該尋址方式物理地址的計(jì)算方法如下:該尋址方式物理地址的計(jì)算方法如下: BX 物理地址物理地址PA=16DS + SI DI或或 物理地址物理地址PA=16SS+ BPIBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院5. 存放器相對(duì)尋址方式存放器相對(duì)尋址方式定定 義:操作數(shù)在存儲(chǔ)器中,其有效地址是一個(gè)基址存放器義:操作數(shù)在存儲(chǔ)器中,其有效地址是一個(gè)基址存放器BXBX、BPBP或變址存放器或變址存放器SISI、DIDI的內(nèi)容和指令中的的內(nèi)容和指令中的8 8位位/16/16位位偏移量之和。偏移量之和。 匯編格式:匯編
22、格式:XRXRX X表示位移量,是表示位移量,是8 8位或位或1616位二進(jìn)制補(bǔ)碼表示的位二進(jìn)制補(bǔ)碼表示的有符號(hào)數(shù)有符號(hào)數(shù)功功 能:操作數(shù)存放在存儲(chǔ)器,存放器能:操作數(shù)存放在存儲(chǔ)器,存放器R R的內(nèi)容加位移量的內(nèi)容加位移量X X為操為操作數(shù)的偏移地址作數(shù)的偏移地址EAEA。圖形表示如下:圖形表示如下:地址地址存放器存放器操作數(shù)操作數(shù)存儲(chǔ)器存儲(chǔ)器段基地址段基地址基址或變址存放器基址或變址存放器 位移量位移量指令指令EAIBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院【例【例3.5】假設(shè)指令:】假設(shè)指令:MOV BX, SI+100H,在執(zhí)行它時(shí),在執(zhí)行它時(shí),
23、DS=1000H,SI=2345H,內(nèi)存單元,內(nèi)存單元12445H的內(nèi)容為的內(nèi)容為2715H,問該指,問該指令執(zhí)行后,令執(zhí)行后,BX的值是什么?的值是什么?解:解:EA=SI+100H=2345H+100H=2445H PA=DS*16+EA=1000H*16+2445H=12445H。所以,該指令的執(zhí)行效果是:所以,該指令的執(zhí)行效果是:把從物理地址為把從物理地址為12445H開場開場的一個(gè)字的值傳送給的一個(gè)字的值傳送給BX。OP CS DS15H27H 10000H 12445H SI:2345H 100H EA:2445H DS:1000H 12445H27 15 BXIBM-PC匯編語言
24、程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院6. 基址變址尋址方式基址變址尋址方式定定 義:操作數(shù)在存儲(chǔ)器中,其有效地址是一個(gè)基址存放器義:操作數(shù)在存儲(chǔ)器中,其有效地址是一個(gè)基址存放器BXBX、BPBP和一個(gè)變址存放器和一個(gè)變址存放器SISI、DIDI的內(nèi)容之和。的內(nèi)容之和。 匯編格式:匯編格式: BR+IRBR+IR功功 能:操作數(shù)存放在存儲(chǔ)器,能:操作數(shù)存放在存儲(chǔ)器,BRBR的內(nèi)容加的內(nèi)容加IRIR的內(nèi)容是操作數(shù)的偏移地的內(nèi)容是操作數(shù)的偏移地址址EAEA。圖形表示:圖形表示:操作數(shù)操作數(shù) 存儲(chǔ)器存儲(chǔ)器段基地址段基地址基址存放器基址存放器 變址存放器變址存放器指令指令基
25、址值基址值基址存放器基址存放器變址值變址值變址存放器變址存放器EAIBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院【例【例3.6】假設(shè)指令:】假設(shè)指令:MOV BX, BX+SI,在執(zhí)行時(shí),在執(zhí)行時(shí),DS=1000H,BX=2100H,SI=0011H,內(nèi)存單元,內(nèi)存單元12111H的內(nèi)容為的內(nèi)容為1234H。問。問該指令執(zhí)行后,該指令執(zhí)行后,BX的值是什么?的值是什么? 解:操作數(shù)的物理地址解:操作數(shù)的物理地址PA為:為: PA=DS*16+ BX+SI =1000H*16+ 2100H+0011H =12111H所以,該指令的執(zhí)行效果是:所以,該指令的
26、執(zhí)行效果是:把從物理地址為把從物理地址為12111H開場開場的一個(gè)字的值傳送給的一個(gè)字的值傳送給BX。 OP CS DS34H12H 10000H 12111H BX:2100H SI:0011H EA:2111H DS:1000H 12111H12 34 BXIBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院7. 相對(duì)基址變址尋址方式相對(duì)基址變址尋址方式定定 義:操作數(shù)在存儲(chǔ)器中,其有效地址是一個(gè)基址存放器義:操作數(shù)在存儲(chǔ)器中,其有效地址是一個(gè)基址存放器BXBX、BPBP的值、的值、一個(gè)變址存放器一個(gè)變址存放器SISI、DIDI的值和指令中的的值和指令中的
27、8 8位位/16/16位偏移量之和。位偏移量之和。 匯編格式:匯編格式:X BR+IRX BR+IR功功 能:操作數(shù)存放在存儲(chǔ)器,能:操作數(shù)存放在存儲(chǔ)器,BRBR內(nèi)容加內(nèi)容加IRIR內(nèi)容加位移量內(nèi)容加位移量X X是操作數(shù)的偏移是操作數(shù)的偏移地址地址EAEA。圖形表示:圖形表示:存儲(chǔ)器存儲(chǔ)器基址值基址值基址存放器基址存放器操作數(shù)操作數(shù)段基地址段基地址基址存放器基址存放器 變址存放器變址存放器 位移量位移量指令指令變址值變址值變址存放器變址存放器EAIBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院【例【例3.7】假設(shè)指令:】假設(shè)指令:MOV AX, BX+SI
28、+200H,在執(zhí)行時(shí),在執(zhí)行時(shí),DS=1000H,BX=2100H,SI=0010H,內(nèi)存單元,內(nèi)存單元12310H的內(nèi)容的內(nèi)容為為1234H。問該指令執(zhí)行后,。問該指令執(zhí)行后,AX的值是什么?的值是什么? 解:該操作數(shù)的物理地址應(yīng)由解:該操作數(shù)的物理地址應(yīng)由DS和和EA的值構(gòu)成,即:的值構(gòu)成,即:PA=12310H所以,該指令的執(zhí)行效果是:所以,該指令的執(zhí)行效果是:把從物理地址為把從物理地址為12310H開場開場的一個(gè)字的值傳送給的一個(gè)字的值傳送給AX。 OP CS DS34H12H 10000H 12310H BX:2100H SI:0010H 0200H EA:2310H DS:1000
29、H 12310H12 34 AXIBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院v跨段越問題跨段越問題 凡是運(yùn)用存放器為凡是運(yùn)用存放器為BX、SI、DI時(shí),其默許段為時(shí),其默許段為DS,運(yùn)用,運(yùn)用BP時(shí),默許段時(shí),默許段為為SS。該規(guī)定為系統(tǒng)默許形狀。當(dāng)要否認(rèn)默許形狀,到非商定段尋覓操作數(shù)。該規(guī)定為系統(tǒng)默許形狀。當(dāng)要否認(rèn)默許形狀,到非商定段尋覓操作數(shù)時(shí),必需用跨段前綴指明操作數(shù)的段存放器名。時(shí),必需用跨段前綴指明操作數(shù)的段存放器名。匯編格式:段存放器名:操作數(shù)地址。匯編格式:段存放器名:操作數(shù)地址。功能:冒號(hào)功能:冒號(hào)“:之前的段存放器名指明操作數(shù)所在的段
30、。:之前的段存放器名指明操作數(shù)所在的段。【例【例3.8】 MOV AX,DS:BP MOV CX,SS:SI 該例中,該例中,DS:,:,SS:均為跨段前綴,此時(shí)默許形狀無效,操作數(shù)的物:均為跨段前綴,此時(shí)默許形狀無效,操作數(shù)的物理地址理地址PA由段存放器內(nèi)容左移由段存放器內(nèi)容左移4位加偏移位加偏移EA構(gòu)成。上述構(gòu)成。上述2條指令的源操作數(shù)條指令的源操作數(shù)物理地址分別為:物理地址分別為: PA1 =DS左移左移4位位+BP PA2 =SS左移左移4位位+ SIIBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院3.1.2 與轉(zhuǎn)移地址有關(guān)的尋址方式與轉(zhuǎn)移地址有關(guān)
31、的尋址方式 用來確定轉(zhuǎn)移指令及轉(zhuǎn)子用來確定轉(zhuǎn)移指令及轉(zhuǎn)子call指令的轉(zhuǎn)向地址。轉(zhuǎn)移指令的轉(zhuǎn)向地址。轉(zhuǎn)移地址是由各種尋址方式得到的有效地址和段地址相加而成的,地址是由各種尋址方式得到的有效地址和段地址相加而成的,有效地址存入有效地址存入IP存放器中,段地址指定為存放器中,段地址指定為CS段存放器內(nèi)容。段存放器內(nèi)容。 段內(nèi)尋址段內(nèi)尋址 段內(nèi)直接尋址段內(nèi)直接尋址 JMP NEAR PTR NEXT 段內(nèi)間接尋址段內(nèi)間接尋址 JMP TABLE BX 段間尋址段間尋址 段間直接尋址段間直接尋址 JMP FAR PTR NEXT 段間間接尋址段間間接尋址 JMP DWORD PTR BX IBM-PC
32、匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院1 段內(nèi)直接尋址段內(nèi)直接尋址轉(zhuǎn)向的有效地址轉(zhuǎn)向的有效地址 = 當(dāng)前當(dāng)前IP + 位移量位移量8bit/16bit) 位移量位移量IP存放器存放器EAIBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院【例【例3.8】 1JMP SHORT QUEST 其中其中QUEST表示轉(zhuǎn)移的符號(hào)地址,操作符表示轉(zhuǎn)移的符號(hào)地址,操作符SHORT表示是個(gè)表示是個(gè)8位帶符號(hào)數(shù),位帶符號(hào)數(shù),數(shù)的范圍是數(shù)的范圍是80H 7FH,即,即 -128 +127。它只能相對(duì)于當(dāng)前。它只能相對(duì)于當(dāng)前IP轉(zhuǎn)移指令的轉(zhuǎn)移指
33、令的下一條指令的首地址所指的位置作下一條指令的首地址所指的位置作-128 +127范圍內(nèi)跳轉(zhuǎn),所以稱為短跳范圍內(nèi)跳轉(zhuǎn),所以稱為短跳轉(zhuǎn)。轉(zhuǎn)。2JMP NEAR PTR PROGA 其中其中PROGA表示轉(zhuǎn)移的符號(hào)地址,操作符表示轉(zhuǎn)移的符號(hào)地址,操作符NEAR PRT表示是個(gè)表示是個(gè)16位帶符位帶符號(hào)數(shù),數(shù)的范圍是號(hào)數(shù),數(shù)的范圍是8000H 7FFFH,即,即 -32768 +32767。它只能相對(duì)于當(dāng)前。它只能相對(duì)于當(dāng)前IP所指的位置作所指的位置作-32768 +32767范圍內(nèi)跳轉(zhuǎn),所以稱為近跳轉(zhuǎn)。范圍內(nèi)跳轉(zhuǎn),所以稱為近跳轉(zhuǎn)。 IBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院
34、浙江財(cái)經(jīng)學(xué)院信息學(xué)院2 段內(nèi)間接尋址段內(nèi)間接尋址 轉(zhuǎn)向的有效地址是一個(gè)存放器或存儲(chǔ)單元的內(nèi)容??捎棉D(zhuǎn)向的有效地址是一個(gè)存放器或存儲(chǔ)單元的內(nèi)容??捎贸⒖虜?shù)以外的任何一種數(shù)據(jù)尋址方式得到,所得到的轉(zhuǎn)向除立刻數(shù)以外的任何一種數(shù)據(jù)尋址方式得到,所得到的轉(zhuǎn)向的有效地址取代的有效地址取代IP存放器的內(nèi)容。存放器的內(nèi)容。轉(zhuǎn)向的有效地址轉(zhuǎn)向的有效地址指令指令數(shù)據(jù)尋址方式數(shù)據(jù)尋址方式或或根據(jù)數(shù)據(jù)尋址根據(jù)數(shù)據(jù)尋址方式計(jì)算出方式計(jì)算出EA值值轉(zhuǎn)向的有效地址轉(zhuǎn)向的有效地址存儲(chǔ)單元存儲(chǔ)單元IBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院 【例【例3.9】 知知 TABLE=20A
35、2H ,BX=1256H ,SI=528EH,DS=2000H ,232F8H= 3280H ,264E4H=2450H JMP BX ; IP=1256H JMP WORD PTR TABLEBX ; IP=3280H JMP WORD PTR BXSI ; IP=2450HIBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院3 段間直接尋址段間直接尋址用指令中提供的轉(zhuǎn)向段地址和偏移地址取代用指令中提供的轉(zhuǎn)向段地址和偏移地址取代CS 和和 IP。指令指令偏移地址偏移地址IP存放器存放器段地址段地址CS存放器存放器IBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì)
36、浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院【例【例3.9】JMPFAR PTR NEXTROUNT32EA01001010CS=0000H CS0000002000 IPIP=2000H CSCS=1000HNEXTROUNTIP=0132H1013210000新新IP新新CSIBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院4 段間間接尋址段間間接尋址用存儲(chǔ)器中的兩個(gè)相繼字的內(nèi)容取代用存儲(chǔ)器中的兩個(gè)相繼字的內(nèi)容取代CS 和和 IP,存儲(chǔ),存儲(chǔ)單元的地址可用存儲(chǔ)器尋址方式得到。單元的地址可用存儲(chǔ)器尋址方式得到。 指令指令數(shù)據(jù)尋址方式數(shù)據(jù)尋址方式根據(jù)數(shù)據(jù)尋址根據(jù)
37、數(shù)據(jù)尋址方式計(jì)算出方式計(jì)算出EA值值轉(zhuǎn)向的有效地址轉(zhuǎn)向的有效地址轉(zhuǎn)向的有效地址轉(zhuǎn)向的有效地址存儲(chǔ)器中的兩個(gè)相繼字存儲(chǔ)器中的兩個(gè)相繼字IPCSIBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院【例【例3.10】 JMPDWORD PTR INTERS+BX 如如DS=3000H,BX=1200H,INTERS=0020H, 那么存儲(chǔ)單元的物理地址那么存儲(chǔ)單元的物理地址PA=30000+0020+1200=31200H 指令執(zhí)行前,指令執(zhí)行前,CS=0000H,IP=1000H,31220H=40H, 31221=01H,31222H=00H,31223=10H
38、。 指令執(zhí)行后,指令執(zhí)行后,CS=1000H,IP=0140H,31220H=40H, 31221=01H,31222H=00H,31223=10H。IBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院指令存儲(chǔ)和執(zhí)行情況:指令存儲(chǔ)和執(zhí)行情況:JMPDWORDPTRINTERBXCS=0000H CS0000001000 IPIP=1000H CSCS=1000H IPIP=0140H1014010000代碼段代碼段01400010DS=3000H DS3000031220INTER+BX數(shù)據(jù)段數(shù)據(jù)段新新IP新新CS312213122231223IBM-PC匯編
39、語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院3.2 程序占有的空間和執(zhí)行時(shí)間程序占有的空間和執(zhí)行時(shí)間IBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院3. 80 x86的指令系統(tǒng)的指令系統(tǒng)80X86指令系統(tǒng)分為以下指令系統(tǒng)分為以下6組:組: 數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令 串處置指令串處置指令 算術(shù)指令算術(shù)指令 控制轉(zhuǎn)移指令控制轉(zhuǎn)移指令 邏輯指令邏輯指令 處置機(jī)控制與雜項(xiàng)操作指令處置機(jī)控制與雜項(xiàng)操作指令 在學(xué)習(xí)匯編指令時(shí),指令的功能是我們學(xué)習(xí)和掌握的重點(diǎn),但要準(zhǔn)確、有效地在學(xué)習(xí)匯編指令時(shí),指令的功能是我們學(xué)習(xí)和掌握的重點(diǎn),但要準(zhǔn)確、有效地
40、運(yùn)用這些指令,我們還要熟習(xí)系統(tǒng)對(duì)每條指令的一些規(guī)定或約束。因此,對(duì)指令運(yùn)用這些指令,我們還要熟習(xí)系統(tǒng)對(duì)每條指令的一些規(guī)定或約束。因此,對(duì)指令要掌握以下幾個(gè)方面內(nèi)容:要掌握以下幾個(gè)方面內(nèi)容:指令操作數(shù)的尋址方式;指令操作數(shù)的尋址方式;指令對(duì)標(biāo)志位的影響、標(biāo)志位對(duì)指令的影響;指令對(duì)標(biāo)志位的影響、標(biāo)志位對(duì)指令的影響;指令的執(zhí)行時(shí)間,對(duì)可完成同樣功能的指令,要選用執(zhí)行時(shí)間短的指令指令的執(zhí)行時(shí)間,對(duì)可完成同樣功能的指令,要選用執(zhí)行時(shí)間短的指令 。IBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院 數(shù)據(jù)傳送指令擔(dān)任把數(shù)據(jù)、地址或立刻數(shù)傳送到存放器、存儲(chǔ)器或數(shù)據(jù)傳送指令擔(dān)
41、任把數(shù)據(jù)、地址或立刻數(shù)傳送到存放器、存儲(chǔ)器或端口號(hào)存放器。它相對(duì)于高級(jí)言語里的賦值語句。端口號(hào)存放器。它相對(duì)于高級(jí)言語里的賦值語句。 通用數(shù)據(jù)傳送:通用數(shù)據(jù)傳送:MOV PUSH POP 累加器公用傳送輸入輸出:累加器公用傳送輸入輸出: IN OUT XLAT地址傳送:地址傳送: LEA LDS LES標(biāo)志存放器傳送:標(biāo)志存放器傳送: LAHF SAHF PUSHF POPF類型轉(zhuǎn)換指令:類型轉(zhuǎn)換指令:CBW CWDIBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院vMOV 傳送指令傳送指令格格 式:式: MOV Reg/Mem, Reg/Mem/Imm 其
42、中:其中:RegRegister存放器,存放器,MemMemory存儲(chǔ)器,存儲(chǔ)器,ImmImmediate立刻數(shù),它們可以是立刻數(shù),它們可以是8位、位、16位。位。 功功 能:指令的功能是把源操作數(shù)第二操作數(shù)的值傳給目能:指令的功能是把源操作數(shù)第二操作數(shù)的值傳給目的操作數(shù)第一操作數(shù)。指令執(zhí)行后,目的操作數(shù)的值被改動(dòng),的操作數(shù)第一操作數(shù)。指令執(zhí)行后,目的操作數(shù)的值被改動(dòng),而源操作數(shù)的值不變。在存儲(chǔ)單元是該指令的一個(gè)操作數(shù)時(shí),該而源操作數(shù)的值不變。在存儲(chǔ)單元是該指令的一個(gè)操作數(shù)時(shí),該操作數(shù)的尋址方式可以是恣意一種存儲(chǔ)單元尋址方式。操作數(shù)的尋址方式可以是恣意一種存儲(chǔ)單元尋址方式。IBM-PC匯編語言
43、程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院段存放器段存放器CS、DS、SS、ES通用存放器通用存放器8位或者位或者16位位存儲(chǔ)器存儲(chǔ)器立刻數(shù)立刻數(shù)8位或者位或者16位位 在匯編言語中,主要的數(shù)據(jù)傳送方式如以下圖所示。雖然一條在匯編言語中,主要的數(shù)據(jù)傳送方式如以下圖所示。雖然一條MOV指令能實(shí)現(xiàn)其中大多數(shù)的數(shù)據(jù)傳送方式,但也存在指令能實(shí)現(xiàn)其中大多數(shù)的數(shù)據(jù)傳送方式,但也存在MOV指令不能實(shí)指令不能實(shí)現(xiàn)的傳送方式。現(xiàn)的傳送方式。 IBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院 對(duì)對(duì)MOV指令有以下幾條詳細(xì)規(guī)定,其中有些規(guī)定對(duì)其它指令指令
44、有以下幾條詳細(xì)規(guī)定,其中有些規(guī)定對(duì)其它指令也同樣有效。也同樣有效。 1兩個(gè)操作數(shù)的數(shù)據(jù)類型要一樣,要同為兩個(gè)操作數(shù)的數(shù)據(jù)類型要一樣,要同為8位、位、16位,位, 如:如:MOV BL,AX等是不正確的;等是不正確的; 2兩個(gè)操作數(shù)不能同時(shí)為段存放器,如:兩個(gè)操作數(shù)不能同時(shí)為段存放器,如:MOV ES,DS等;等; 3代碼段存放器代碼段存放器CS不能為目的操作數(shù),但可作為源操作數(shù),不能為目的操作數(shù),但可作為源操作數(shù), 如:指令如:指令MOV CS, AX等不正確,但指令等不正確,但指令MOV AX,CS等等是正確的;是正確的; 4立刻數(shù)不能直接傳給段存放器,立刻數(shù)不能直接傳給段存放器, 如:如:
45、MOV DS,100H等;等; 5立刻數(shù)不能作為目的操作數(shù),如:立刻數(shù)不能作為目的操作數(shù),如:MOV 100H,AX等;等; 6指令指針指令指針I(yè)P,不能作為,不能作為MOV指令的操作數(shù);指令的操作數(shù); 7兩個(gè)操作數(shù)不能同時(shí)為存儲(chǔ)單元,兩個(gè)操作數(shù)不能同時(shí)為存儲(chǔ)單元, 如:如:MOV VARA,VARB等,其中等,其中VARA和和VARB是同數(shù)據(jù)是同數(shù)據(jù)類型的內(nèi)存變量。類型的內(nèi)存變量。 IBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院vPUSH進(jìn)棧指令進(jìn)棧指令 堆棧是一個(gè)重要的數(shù)據(jù)構(gòu)造,它具有堆棧是一個(gè)重要的數(shù)據(jù)構(gòu)造,它具有“先進(jìn)后出的特點(diǎn),通常用來保先進(jìn)后
46、出的特點(diǎn),通常用來保管程序的前往地址。它主要有兩大類操作:進(jìn)棧操作和出棧操作。管程序的前往地址。它主要有兩大類操作:進(jìn)棧操作和出棧操作。 指令格式:指令格式:PUSHPUSHReg/MemReg/Mem 一個(gè)字進(jìn)棧,系統(tǒng)自動(dòng)完成兩步操作:一個(gè)字進(jìn)棧,系統(tǒng)自動(dòng)完成兩步操作: SPSP-2 SPSP-2,SPSP操作數(shù);操作數(shù); 功功 能:將存放器、段存放器或存儲(chǔ)器中的一個(gè)字?jǐn)?shù)據(jù)壓能:將存放器、段存放器或存儲(chǔ)器中的一個(gè)字?jǐn)?shù)據(jù)壓入堆棧,堆棧指針減入堆棧,堆棧指針減2 2。IBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院【例】【例】PUSH AX2816A7SS=
47、5000H SS50000堆棧段堆棧段525005250152502SP=2500H SP31 25AX283116A7SS=5000H SS50000堆棧段堆棧段525005250152502SP=24FEH SP2531 25AX525FF525FE1執(zhí)行前執(zhí)行前2執(zhí)行后執(zhí)行后IBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院vPOP進(jìn)棧指令進(jìn)棧指令I(lǐng)BM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院【例】【例】POP BX1執(zhí)行前執(zhí)行前2執(zhí)行后執(zhí)行后486B9A28 SS50000堆棧段堆棧段5100151002510
48、03SP=1000H SP75 C1BX51000486B9A28 SS50000堆棧段堆棧段510015100251003SP=1002H SP48 6BBX51000IBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院vIN輸入指令輸入指令 輸入指令用來從指定的外設(shè)存放器取信息送入累加器。它有幾種方輸入指令用來從指定的外設(shè)存放器取信息送入累加器。它有幾種方式:式: 長格式:長格式: IN AL, PORT 字節(jié)字節(jié) IN AX, PORT 字字 執(zhí)行操作:執(zhí)行操作:AL PORT 字節(jié)字節(jié) AX PORT+1, PORT字字 短格式:短格式: IN AL,
49、 DX 字節(jié)字節(jié) IN AX, DX 字字 執(zhí)行操作:執(zhí)行操作:ALDX 字節(jié)字節(jié) AXDX+1,DX字字IBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院 留意:該指令的作用是從端口中讀入一個(gè)字節(jié)或字,并保管在存留意:該指令的作用是從端口中讀入一個(gè)字節(jié)或字,并保管在存放器放器AL或或AX中。假設(shè)某輸入設(shè)備的端口地址在中。假設(shè)某輸入設(shè)備的端口地址在0255范圍之內(nèi),范圍之內(nèi),那么,可在指令那么,可在指令I(lǐng)N中直接給出,否那么,要把該端口地址先存入中直接給出,否那么,要把該端口地址先存入存放器存放器DX中,然后在指令中由中,然后在指令中由DX來給出其端口地址。
50、來給出其端口地址。 IBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院例如:例如:IN AL, 60H ;從端口;從端口60H讀入一個(gè)字節(jié)到讀入一個(gè)字節(jié)到AL中中IN AX,20H;把端口;把端口20H、21H按按“高高低低組成高高低低組成的的 字讀入字讀入AXMOV DX,2F8HIN AL,DX;從端口;從端口2F8H讀入一個(gè)字節(jié)到讀入一個(gè)字節(jié)到AL中中IN AX,DX;把端口;把端口2F8H、2F9H按按“高高低低組高高低低組成成 的字讀入的字讀入AXIBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院vOUT輸出指令
51、輸出指令 輸出指令用來把累加器的內(nèi)容送往指定的外設(shè)存儲(chǔ)器,它有幾種方式:輸出指令用來把累加器的內(nèi)容送往指定的外設(shè)存儲(chǔ)器,它有幾種方式:長格式:長格式: OUT PORT, AL 字節(jié)字節(jié) OUT PORT, AX 字字 執(zhí)行操作:執(zhí)行操作:PORTAL 字節(jié)字節(jié) PORT+1, PORTAX字字短格式:短格式: OUT DX, AL 字節(jié)字節(jié) OUT DX, AX 字字 執(zhí)行操作:執(zhí)行操作:DXAL 字節(jié)字節(jié) DX+1,DXAX字字IBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院留意:該指令的作用是把存放器留意:該指令的作用是把存放器AL或或AX的內(nèi)容輸出
52、到指定端口。的內(nèi)容輸出到指定端口。假設(shè)某輸出設(shè)備的端口地址在假設(shè)某輸出設(shè)備的端口地址在0255范圍之內(nèi),那么,可在指令范圍之內(nèi),那么,可在指令OUT中直接給出,否那么,要把該端口地址先存入存放器中直接給出,否那么,要把該端口地址先存入存放器DX中,中,然后在指令中由然后在指令中由DX來給出其端口地址。來給出其端口地址。例如:例如:OUT 61H,AL;把;把AL的內(nèi)容輸出到端口的內(nèi)容輸出到端口61H中中OUT 20H,AX;把;把AX的內(nèi)容輸出到端口的內(nèi)容輸出到端口20H、21H中中MOV DX, 3C0HOUT DX,AL;把;把AL的內(nèi)容輸出到端口的內(nèi)容輸出到端口3C0H中中OUT DX,
53、AX;把;把AX的內(nèi)容輸出到端口的內(nèi)容輸出到端口3C0H、3C1H中中IBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院vXLAT 換碼指令換碼指令轉(zhuǎn)換指令有兩個(gè)隱含操作數(shù)轉(zhuǎn)換指令有兩個(gè)隱含操作數(shù)BX和和AL。格格 式:式:XLAT OPR 或或 XLAT執(zhí)行操作:執(zhí)行操作: ALBX+AL功功 能:其功能是把能:其功能是把BX的值作為內(nèi)存字節(jié)數(shù)組的值作為內(nèi)存字節(jié)數(shù)組首地址、下標(biāo)為首地址、下標(biāo)為AL的數(shù)組元素的值傳送給的數(shù)組元素的值傳送給AL。 IBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院n例:例:MOV BX,of
54、fset table ; BX=0040Hn MOV AL,3n XLATn 指令執(zhí)行后指令執(zhí)行后 AL=33H32H31H33HDS=F000H DS數(shù)據(jù)段數(shù)據(jù)段F0040F0041 AL=3table30H BXF0042F0043把把BX的值作為內(nèi)存字的值作為內(nèi)存字節(jié)數(shù)組首地址、下標(biāo)節(jié)數(shù)組首地址、下標(biāo)為為AL的數(shù)組元素的值的數(shù)組元素的值傳送給傳送給AL。 IBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院v地址傳送指令地址傳送指令取有效地址指令取有效地址指令LEA: 指令指令LEA是把一個(gè)內(nèi)存變量的有效地址送給指定的存放器。是把一個(gè)內(nèi)存變量的有效地址送
55、給指定的存放器。其指令格式如下:其指令格式如下: LEAReg,Mem該指令通常用來對(duì)指針或變址存放器該指令通常用來對(duì)指針或變址存放器BX、DI或或SI等置初值之用。等置初值之用。 取段存放器指令:取段存放器指令: 該組指令的功能是把內(nèi)存單元的一個(gè)該組指令的功能是把內(nèi)存單元的一個(gè)“低字傳送給指令中低字傳送給指令中指定的指定的16位存放器,把隨后的一個(gè)位存放器,把隨后的一個(gè)“高字傳給相應(yīng)的段存放器高字傳給相應(yīng)的段存放器DS、ES。其指令格式如下:。其指令格式如下: LDS/LESReg, Mem IBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院例:例:LEA
56、 BX,BX+SI+0F62H LDS SI,10H LES DI,BX40 H00 H00 H30 H TABLE 3000H:1000HIBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院v標(biāo)志存放器傳送指令標(biāo)志存放器傳送指令標(biāo)志送標(biāo)志送AH指令:指令: LAHF 執(zhí)行操作:執(zhí)行操作:AHFLAGS的低字節(jié)的低字節(jié) AH送標(biāo)志存放器指令:送標(biāo)志存放器指令:SAHF執(zhí)行操作:執(zhí)行操作: FLAGS的低字節(jié)的低字節(jié)AH 標(biāo)志進(jìn)棧指令:標(biāo)志進(jìn)棧指令:PUSHF 執(zhí)行操作:執(zhí)行操作: SPSP - 2 SP+1, SPFLAGS標(biāo)志出棧指令:標(biāo)志出棧指令:POPF
57、執(zhí)行操作:執(zhí)行操作: FLAGSSP+1,SP SPSP+ 2IBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院v類型轉(zhuǎn)換指令指令類型轉(zhuǎn)換指令指令 CBW AL AX 執(zhí)行操作:執(zhí)行操作: 假設(shè)假設(shè)AL的最高有效位為的最高有效位為0,那么,那么AH)= 00H 假設(shè)假設(shè)AL的最高有效位為的最高有效位為1,那么,那么AH)= FFHCWD AX DX,AX 執(zhí)行操作:假設(shè)執(zhí)行操作:假設(shè)AX的最高有效位為的最高有效位為0,那么,那么DX)= 0000H 假設(shè)假設(shè)AX的最高有效位為的最高有效位為1,那么,那么DX)= FFFFH 例:例: AX= 0BA45H C
58、BW ; AX=0045H CWD ; DX=0FFFFH AX=0BA45HIBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院3.算術(shù)指令算術(shù)指令 算術(shù)運(yùn)算指令是反映算術(shù)運(yùn)算指令是反映CPU計(jì)算才干的一組指令,也是編程時(shí)常運(yùn)用的一組指計(jì)算才干的一組指令,也是編程時(shí)常運(yùn)用的一組指令。它包括:加、減、乘、除及其相關(guān)的輔助指令。令。它包括:加、減、乘、除及其相關(guān)的輔助指令。 該組指令的操作數(shù)可以是該組指令的操作數(shù)可以是8位、位、16位。當(dāng)存儲(chǔ)單元是該類指令的操作數(shù)時(shí),該位。當(dāng)存儲(chǔ)單元是該類指令的操作數(shù)時(shí),該操作數(shù)的尋址方式可以是恣意一種存儲(chǔ)單元尋址方式。操作數(shù)的
59、尋址方式可以是恣意一種存儲(chǔ)單元尋址方式。 加法指令加法指令 ADD、ADC、INC 減法指令減法指令 SUB、SBB、DEC、NEG、CMP 乘法指令乘法指令 MUL、IMUL 除法指令除法指令 DIV、IDIV 十進(jìn)制調(diào)整指令十進(jìn)制調(diào)整指令 DAA、DAS、 AAA、AAS、AAM、AADIBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)院信息學(xué)院浙江財(cái)經(jīng)學(xué)院信息學(xué)院1.加法指令加法指令 v 加法指令:加法指令: ADD DST,SRCv功能:將目的操作數(shù)與源操作數(shù)相加,結(jié)果存入目的地址中,源地址的內(nèi)容不功能:將目的操作數(shù)與源操作數(shù)相加,結(jié)果存入目的地址中,源地址的內(nèi)容不改動(dòng)。改動(dòng)。v
60、執(zhí)行操作:執(zhí)行操作:DST SRC+DSTv 帶進(jìn)位加法指令:帶進(jìn)位加法指令: ADC DST,SRC v功能:將目的操作數(shù)加源操作數(shù)再加低位進(jìn)位,結(jié)果送目的地址。執(zhí)行操作:功能:將目的操作數(shù)加源操作數(shù)再加低位進(jìn)位,結(jié)果送目的地址。執(zhí)行操作:DST SRC+DST+ CFv 加加1指令:指令: INC OPR v功能:將目的操作數(shù)加功能:將目的操作數(shù)加1,結(jié)果送目的地址。,結(jié)果送目的地址。v執(zhí)行操作:執(zhí)行操作: OPR OPR+ 1v留意留意: 除除INC指令不影響指令不影響CF標(biāo)志外,均對(duì)條件標(biāo)志位有影響。標(biāo)志外,均對(duì)條件標(biāo)志位有影響。IBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì) 浙江財(cái)經(jīng)學(xué)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 感人的結(jié)婚致辭13篇
- 愚人節(jié)的日記(集錦11篇)
- 護(hù)士臨床能力考核總結(jié)
- 智研咨詢發(fā)布:2024年中國廢舊動(dòng)力電池梯次利用行業(yè)競爭格局及發(fā)展前景研究報(bào)告
- 2024年中國三網(wǎng)融合行業(yè)市場集中度、市場規(guī)模及未來前景分析報(bào)告
- 無人機(jī)在火災(zāi)防控中的應(yīng)用培訓(xùn)
- 音樂學(xué)校前臺(tái)工作總結(jié)
- 二零二五年個(gè)人果園果樹種植與農(nóng)產(chǎn)品加工合作協(xié)議4篇
- 現(xiàn)代農(nóng)業(yè)產(chǎn)業(yè)園建設(shè)方案
- 能源供應(yīng)服務(wù)招標(biāo)合同三篇
- 第1課 隋朝統(tǒng)一與滅亡 課件(26張)2024-2025學(xué)年部編版七年級(jí)歷史下冊
- 2025-2030年中國糖醇市場運(yùn)行狀況及投資前景趨勢分析報(bào)告
- 【歷史】唐朝建立與“貞觀之治”課件-2024-2025學(xué)年統(tǒng)編版七年級(jí)歷史下冊
- 冬日暖陽健康守護(hù)
- 產(chǎn)業(yè)園區(qū)招商合作協(xié)議書
- 水處理藥劑采購項(xiàng)目技術(shù)方案(技術(shù)方案)
- 2024級(jí)高一上期期中測試數(shù)學(xué)試題含答案
- 盾構(gòu)標(biāo)準(zhǔn)化施工手冊
- 天然氣脫硫完整版本
- 山東省2024-2025學(xué)年高三上學(xué)期新高考聯(lián)合質(zhì)量測評(píng)10月聯(lián)考英語試題
- 不間斷電源UPS知識(shí)培訓(xùn)
評(píng)論
0/150
提交評(píng)論