版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、微機(jī)原理與接口技術(shù)復(fù)習(xí)參考資料復(fù)習(xí)資料說明:1、標(biāo)有紅色星號(hào)“%”的內(nèi)容為重點(diǎn)內(nèi)容3、本資料末尾附有“微機(jī)原理與接口技術(shù)綜合練習(xí)題與答案錯(cuò)誤修正”和“微機(jī)原理與接口技術(shù)綜合練習(xí)題與答案中不作要求的部分”,請(qǐng)注意查看。第一章 概 述一、計(jì)算機(jī)中的數(shù)制1、無符號(hào)數(shù)的表示方法:(1)十進(jìn)制計(jì)數(shù)的表示法特點(diǎn):以十為底,逢十進(jìn)一;共有0-9十個(gè)數(shù)字符號(hào)。(2)二進(jìn)制計(jì)數(shù)表示方法:特點(diǎn):以2為底,逢2進(jìn)位;只有0和1兩個(gè)符號(hào)。(3)十六進(jìn)制數(shù)的表示法:特點(diǎn):以16為底,逢16進(jìn)位;有0-9及AF(表示1015)共16個(gè)數(shù)字符號(hào)。 2、各種數(shù)制之間的轉(zhuǎn)換(1)非十進(jìn)制數(shù)到十進(jìn)制數(shù)的轉(zhuǎn)換按相應(yīng)進(jìn)位計(jì)數(shù)制的權(quán)表
2、達(dá)式展開,再按十進(jìn)制求和。(2)十進(jìn)制數(shù)制轉(zhuǎn)換為二進(jìn)制數(shù)制 l十進(jìn)制 二進(jìn)制的轉(zhuǎn)換:整數(shù)部分:除2取余; 小數(shù)部分:乘2取整。l十進(jìn)制 十六進(jìn)制的轉(zhuǎn)換: 整數(shù)部分:除16取余; 小數(shù)部分:乘16取整。以小數(shù)點(diǎn)為起點(diǎn)求得整數(shù)和小數(shù)的各個(gè)位。(3)二進(jìn)制與十六進(jìn)制數(shù)之間的轉(zhuǎn)換用4位二進(jìn)制數(shù)表示1位十六進(jìn)制數(shù)(4)二進(jìn)制與八進(jìn)制之間的轉(zhuǎn)換八進(jìn)制 二進(jìn)制:一位八進(jìn)制數(shù)用三位二進(jìn)制數(shù)表示。二進(jìn)制 八進(jìn)制:從小數(shù)點(diǎn)開始,分別向左右兩邊把三位二進(jìn)制數(shù)碼劃為一組,最左和最右一組不足三位用0補(bǔ)充,然后每組用一個(gè)八進(jìn)制數(shù)碼代替。3、無符號(hào)數(shù)二進(jìn)制的運(yùn)算無符號(hào)數(shù):機(jī)器中全部有效位均用來表示數(shù)的大小,例如N=1001
3、,表示無符號(hào)數(shù)9帶符號(hào)數(shù):機(jī)器中,最高位作為符號(hào)位(數(shù)的符號(hào)用0,1表示),其余位為數(shù)值位機(jī)器數(shù):一個(gè)二進(jìn)制連同符號(hào)位在內(nèi)作為一個(gè)數(shù),也就是機(jī)器數(shù)是機(jī)器中數(shù)的表示形式真值:機(jī)器數(shù)所代表的實(shí)際數(shù)值,一般寫成十進(jìn)制的形式例:真值: x1 = +1010100B =+84 x2 = 1010100B=-84 機(jī)器數(shù):x1原 = 01010100 x2原 = 11010100 4、二進(jìn)制數(shù)的邏輯運(yùn)算特點(diǎn):按位運(yùn)算,無進(jìn)借位(1)與運(yùn)算只有A、B變量皆為1時(shí),與運(yùn)算的結(jié)果就是1(2)或運(yùn)算A、B變量中,只要有一個(gè)為1,或運(yùn)算的結(jié)果就是1(3)非運(yùn)算(4)異或運(yùn)算A、B兩個(gè)變量只要不同,異或運(yùn)算的結(jié)果就是
4、1二、計(jì)算機(jī)中的碼制(重點(diǎn)%)1、對(duì)于符號(hào)數(shù),機(jī)器數(shù)常用的表示方法有原碼、反碼和補(bǔ)碼三種。數(shù)X的原碼記作X原,反碼記作X反,補(bǔ)碼記作X補(bǔ)。注意:對(duì)正數(shù),三種表示法均相同。它們的差別在于對(duì)負(fù)數(shù)的表示。(1)原碼定義:符號(hào)位:0表示正,1表示負(fù);數(shù)值位:真值的絕對(duì)值。例:真值: x1 = +1010100B =+84 x2 = 1010100B=-84 機(jī)器數(shù):x1原 = 01010100 x2原 = 11010100 注意:數(shù)0的原碼不唯一 真值0有兩種不同的表示形式,0 或-0。 0原=0.000 -0原=1.000 (2)反碼定義:正數(shù)的反碼與其原碼相同,最高位為0表示正數(shù),其余位為數(shù)值位。
5、 負(fù)數(shù)的反碼符號(hào)位為1,數(shù)值位為其原碼數(shù)值位按位取反若X>0 ,則 X反=X原若X<0, 則 X反= 對(duì)應(yīng)原碼的符號(hào)位不變,數(shù)值部分按位求反注意:數(shù)0的反碼也不唯一(3)補(bǔ)碼定義:若X>0, 則X補(bǔ)= X反= X原若X<0, 則X補(bǔ)= X反+1注意:機(jī)器字長(zhǎng)為8時(shí),數(shù)0的補(bǔ)碼唯一,同為000000002、8位二進(jìn)制的表示范圍:原碼:-127+127反碼:-127+127補(bǔ)碼:-128+127(因?yàn)?位二進(jìn)制數(shù)有28=256種表達(dá)方式,原碼,反碼都是+0+127;-0-127,而反碼的+0,0的表達(dá)方式都為00000000,為+0+127;-1-128)3、特殊數(shù)1000
6、0000l該數(shù)在原碼中定義為: -0l在反碼中定義為: -127l在補(bǔ)碼中定義為: -128l對(duì)無符號(hào)數(shù):(10000000) = 128補(bǔ)碼加法: A+B補(bǔ)= A補(bǔ)+B補(bǔ) 補(bǔ)碼運(yùn)算步驟 1) 將參加運(yùn)算的操作數(shù)用補(bǔ)碼表示。 2) 進(jìn)行加法得到兩數(shù)和的補(bǔ)碼(符號(hào)位作為數(shù)的一部分參加運(yùn)算) 3)判斷是否溢出 若沒有溢出,則可進(jìn)一步求和的真值:和為正數(shù)可直接求出,和為負(fù)數(shù),則再次“求反加1”,得到真值。 溢出的判斷:溢出:帶符號(hào)數(shù)運(yùn)算的結(jié)果超出計(jì)算機(jī)可以表示的范圍,就是溢出。兩個(gè)同符號(hào)數(shù)相加有可能產(chǎn)生溢出;兩個(gè)負(fù)數(shù)補(bǔ)碼相加后得到正數(shù)的補(bǔ)碼,或兩個(gè)正數(shù)的補(bǔ)碼相加后到負(fù)數(shù)的補(bǔ)碼,都是產(chǎn)生了溢出。計(jì)算(
7、-70)補(bǔ)+(-60)補(bǔ) 解:(-70)補(bǔ)+(-60)補(bǔ) =10111010+11000100=1 01111110兩個(gè)負(fù)數(shù)之和卻產(chǎn)生了正的結(jié)果,同樣是因?yàn)楫a(chǎn)生了溢出。因是超出了負(fù)的最大范圍,所以是負(fù)向溢出 溢出的解決:擴(kuò)大數(shù)的表示范圍可以防止溢出。數(shù)的擴(kuò)展不能改變數(shù)的大小,只能改變數(shù)的位數(shù)。 正數(shù)擴(kuò)展:高位全部加0; 負(fù)數(shù)擴(kuò)展:高位全部加1。 如:-70 ® (10111010)補(bǔ)®補(bǔ)三、信息的編碼1、 十進(jìn)制數(shù)的二進(jìn)制數(shù)編碼用4位二進(jìn)制數(shù)表示一位十進(jìn)制數(shù)。有兩種表示法:壓縮BCD碼和非壓縮BCD碼。(1)壓縮BCD碼的每一位用4位二進(jìn)制表示,00001001表示09,一
8、個(gè)字節(jié)表示兩位十進(jìn)制數(shù)。(2)非壓縮BCD碼用一個(gè)字節(jié)表示一位十進(jìn)制數(shù),高4位總是0000,低4位的00001001表示092、 字符的編碼計(jì)算機(jī)采用7位二進(jìn)制代碼對(duì)字符進(jìn)行編碼(1)數(shù)字09的編碼是01100000111001,它們的高3位均是011,后4位正好與其對(duì)應(yīng)的二進(jìn)制代碼(BCD碼)相符。(2)英文字母AZ的ASCII碼從1000001(41H)開始順序遞增,字母az的ASCII碼從1100001(61H)開始順序遞增,這樣的排列對(duì)信息檢索十分有利。(4位二進(jìn)制數(shù)表示1位十進(jìn)制數(shù))四、微型計(jì)算機(jī)基礎(chǔ)微處理器 利用超大規(guī)模集成電路技術(shù)把運(yùn)算器和控制器集成在一個(gè)半導(dǎo)體芯片上形成微處理器
9、,也稱CPU,是計(jì)算機(jī)的核心部件。 組成:運(yùn)算器ALU (Arithmetic Logic Unit);控制器CU (Control Unit);寄存器組Registers 按照微型計(jì)算機(jī)數(shù)據(jù)總線的寬度,也就是按照一次操作所能傳送的二進(jìn)制數(shù)位數(shù)的最大值來進(jìn)行劃分,可分為4位,8位,32位,64位 字長(zhǎng):是微型計(jì)算機(jī)能夠直接處理的二進(jìn)制數(shù)據(jù)的位數(shù)。字長(zhǎng)越長(zhǎng),能表示數(shù)值的有效位數(shù)越多,在同樣的運(yùn)算速度下精度也越高。主存容量:主存儲(chǔ)器所能存儲(chǔ)的最大信息總量為主存容量,是衡量微型計(jì)算機(jī)處理能力大小的一個(gè)重要指標(biāo)主頻:決定計(jì)算機(jī)的處理速度,頻率越高,處理速度越快運(yùn)算速度:計(jì)算機(jī)每秒運(yùn)算的次數(shù)第二章 微機(jī)
10、組成原理第一節(jié)、微機(jī)的結(jié)構(gòu)1、計(jì)算機(jī)的經(jīng)典結(jié)構(gòu)馮.諾依曼結(jié)構(gòu)(1)計(jì)算機(jī)由運(yùn)算器、控制器、輸入設(shè)備和輸出設(shè)備五大部分組成(運(yùn)算器和控制器又稱為CPU)(2)數(shù)據(jù)和程序以二進(jìn)制代碼形式不加區(qū)分地存放在存儲(chǔ)器總,存放位置由地址指定,數(shù)制為二進(jìn)制。(3)控制器是根據(jù)存放在存儲(chǔ)器中的指令序列來操作的,并由一個(gè)程序計(jì)數(shù)器控制指令的執(zhí)行。3、 系統(tǒng)總線的分類(1)數(shù)據(jù)總線(Data Bus),它決定了處理器的字長(zhǎng)。用來傳送數(shù)據(jù),數(shù)據(jù)既可從CPU送往其他部件,也可以從其他部件送往CPU,故為雙向總線。(2)地址總線(Address Bus),它決定系統(tǒng)所能直接訪問的存儲(chǔ)器空間的容量。用來傳送地址信息,使由C
11、PU送出的單向總線(3)控制總線(Control Bus),用來傳輸控制信號(hào),包括CPU送往其他部件的控制信號(hào),如讀信號(hào),寫信號(hào);也包括其他部件送往CPU的,如中斷請(qǐng)求信號(hào),總線請(qǐng)求信號(hào)。為雙向總線第二節(jié)、8086微處理器1、8086與8088是一種單片微處理芯片,其內(nèi)部數(shù)據(jù)總線的寬度是16位,8086外部數(shù)據(jù)總線寬度也是16位,8088的外部數(shù)據(jù)總線是8位,為準(zhǔn)16位CPU 8086地址總線的寬度為20位,有1MB(220)尋址空間。1、 8086CPU由總線接口部件BIU和執(zhí)行部件EU組成。BIU和EU的操作是異步的,是并行的,為8086取指令和執(zhí)行指令的并行操作體統(tǒng)硬件支持。BIU是CP
12、U與存儲(chǔ)器和I/O設(shè)備的接口,負(fù)責(zé)與存儲(chǔ)器,I/O接口進(jìn)行數(shù)據(jù)傳送8086CPU的BIU中的指令隊(duì)列為6字節(jié),可以預(yù)取6字節(jié)的指令代碼:8088CPU為4字節(jié)。BIU要保證指令隊(duì)列始終是滿的,當(dāng)指令隊(duì)列有2個(gè)空字節(jié)(8088為1個(gè))時(shí),BIU將自動(dòng)取指令到指令隊(duì)列。遵循的是先進(jìn)先出原則(按順序存放,并按順序取到EU中去)而堆棧是先進(jìn)后出2、 8086處理器的啟動(dòng)4、寄存器結(jié)構(gòu)(重點(diǎn)%)8086微處理器包含有13個(gè)16位的寄存器和9位標(biāo)志位。4個(gè)通用寄存器(AX,BX,CX,DX)4個(gè)段寄存器(CS,DS,SS,ES)4個(gè)指針和變址寄存器(SP,BP,SI,DI)指令指針(IP)1)、通用寄存器
13、(1)8086含4個(gè)16位數(shù)據(jù)寄存器,它們又可分為8個(gè)8位寄存器,即:lAX èAH,ALlBXèBH,BLlCXèCH,CLlDXèDH,DL常用來存放參與運(yùn)算的操作數(shù)或運(yùn)算結(jié)果(2)數(shù)據(jù)寄存器特有的習(xí)慣用法lAX:Accumulator累加器。多用于存放中間運(yùn)算結(jié)果。所有I/O指令必須都通過AX與接口傳送信息;lBX:(Base Register)基址寄存器。在間接尋址中用于存放基地址;lCX:(Count Register)計(jì)數(shù)寄存器用于在循環(huán)或串操作指令中存放循環(huán)次數(shù)或重復(fù)次數(shù);lDX:Data Register數(shù)據(jù)寄存器。在32位乘除法運(yùn)算時(shí),
14、存放高16位數(shù);在間接尋址的I/O指令中存放I/O端口地址。2)、指針和變址寄存器(專用寄存器)(16位)lSP:(Stack Pointer)堆棧指針寄存器,其內(nèi)容為棧頂?shù)钠频刂?;lBP:(Base Pointer)基址指針寄存器,常用于在訪問內(nèi)存時(shí)存放內(nèi)存單元的偏移地址。lSI:(Source Index)源變址寄存器(傳送數(shù)據(jù)串時(shí)用)lDI:(Destination Index)目標(biāo)變址寄存器(傳送數(shù)據(jù)串時(shí)用)變址寄存器常用于指令的間接尋址或變址尋址。3)、段寄存器(屬于BIU)CS:(Code Segment)代碼段寄存器,代碼段用于存放指令代碼DS:(Data Segment)數(shù)據(jù)
15、段寄存器(與SI,DI共用)ES:(Extra Segment)附加段寄存器,數(shù)據(jù)段和附加段用來存放操作數(shù)SS:(Stack Segment)堆棧段寄存器,堆棧段用于存放返回地址,保存寄存器內(nèi)容,傳遞參數(shù)(與SP,BP共用)主要功能是暫時(shí)存放數(shù)據(jù)和地址,通常用來保護(hù)斷點(diǎn)和現(xiàn)場(chǎng)。4)、指令指針(IP)16位指令指針寄存器,其內(nèi)容為下一條要執(zhí)行的指令的偏移地址。(與CS共同表示)5)、標(biāo)志寄存器(1)狀態(tài)標(biāo)志:l進(jìn)位標(biāo)志位(CF):運(yùn)算結(jié)果的最高位有進(jìn)位或有借位,則CF=1l輔助進(jìn)位標(biāo)志位(AF):運(yùn)算結(jié)果的低四位有進(jìn)位或借位,則AF=1(一般在BCD碼運(yùn)算中)l溢出標(biāo)志位(OF):運(yùn)算結(jié)果有溢出
16、,則OF=1l零標(biāo)志位(ZF):反映指令的執(zhí)行是否產(chǎn)生一個(gè)為零的結(jié)果l符號(hào)標(biāo)志位(SF):指出該指令的執(zhí)行是否產(chǎn)生一個(gè)負(fù)的結(jié)果,當(dāng)最高位為1時(shí),SF=1,l奇偶標(biāo)志位(PF):表示指令運(yùn)算結(jié)果的低8位“1”個(gè)數(shù)是否為偶數(shù),則PF=1(2)控制標(biāo)志位l中斷允許標(biāo)志位(IF):表示CPU是否能夠響應(yīng)外部可屏蔽中斷請(qǐng)求,IF=1,允許中斷l(xiāng)跟蹤標(biāo)志(TF):CPU單步執(zhí)行l(wèi)方向標(biāo)志(DF):若用指令STD將DF=1,數(shù)據(jù)串操作過程中地址自動(dòng)遞減5、8086的引腳及其功能(重點(diǎn)掌握以下引腳)lAD15AD0:雙向三態(tài)的地址總線,輸入/輸出信號(hào)。傳送地址時(shí),單向,三態(tài)輸出;傳送數(shù)據(jù),雙向,三態(tài)輸入輸出l
17、INTR:可屏蔽中斷請(qǐng)求輸入信號(hào),高電平有效。可通過設(shè)置IF的值來控制。lNMI:非屏蔽中斷輸入信號(hào)。不能用軟件進(jìn)行屏蔽。lRESET:復(fù)位輸入信號(hào),高電平有效。復(fù)位的初始狀態(tài)見lMN/MX:最小最大模式輸入控制信號(hào)。最小工作模式,指系統(tǒng)中只有8088/8086CPU一個(gè)微處理器,最小模式也稱為單處理器模式(MN/MX接電源)最大工作模式,指系統(tǒng)包含兩個(gè)或兩個(gè)以上的微處理器(MN/MX接地)6.存儲(chǔ)器組織字:低位字節(jié)放在低地址中,高位字節(jié)放在高地址中地址從上到下,從低到高字:1123H當(dāng)一個(gè)字存入存儲(chǔ)器時(shí)需要占用兩個(gè)存儲(chǔ)單元,字單元的地址采用它的低地址來表示例如(0004H)=1234H,即字
18、單元:(0004H)單元存放的是34H,(0005H)單元存放的是12H。而(0004H)=34H為字節(jié)單元雙字:(32位),高位字存段地址,低位字存偏移量規(guī)則字:低位字節(jié)存放在偶數(shù)地址(高位字節(jié)放在奇數(shù)地址)(如F0000H,FFFFEH為偶數(shù)地址)非規(guī)則字:低位字節(jié)存放在奇數(shù)地址讀寫一個(gè)字節(jié)時(shí),只需訪問某個(gè)存儲(chǔ)體(奇地址存儲(chǔ)體或偶地址存儲(chǔ)體),相應(yīng)的8位數(shù)據(jù)在數(shù)據(jù)總線上有效,而另外一個(gè)字節(jié)數(shù)據(jù)被忽略,只需要一個(gè)總線周期讀寫一個(gè)字時(shí),若該字單元地址是從偶地址開始的,即其高字節(jié)在奇地址單元,低地址在偶地址單元,則只需執(zhí)行一個(gè)總線讀寫周期便可完成對(duì)改字的讀寫操作若該字地址從奇地址開始,則CPU需
19、要執(zhí)行連續(xù)的兩個(gè)讀寫周期才能完成對(duì)該字的讀寫操作,第一次取奇地址存儲(chǔ)體上的事數(shù)據(jù),偶地址存儲(chǔ)體上的8位數(shù)據(jù)被忽略,第二次取偶地址存儲(chǔ)體上的數(shù)據(jù),奇地址存儲(chǔ)體上的8位數(shù)據(jù)被忽略,要兩個(gè)總線讀寫周期為了加快運(yùn)行速度,通常從偶地址開始存放字?jǐn)?shù)據(jù)存儲(chǔ)器操作涉及的類型正常使用段基址可使用段基址偏移地址取指令CS無IP堆棧操作SS無SP變量DSCS,ES,SS有效地址源數(shù)據(jù)用DSCS,ES,SSSI目的數(shù)據(jù)用ES無DI作為基址寄存器使用SSCS,DS,ES有效地址第三章 8086指令系統(tǒng)說明:8086指令系統(tǒng)這章為重點(diǎn)章節(jié),對(duì)下面列出的指令都要求掌握。8086尋址方式一、數(shù)據(jù)尋址方式(重點(diǎn)%)8086指令
20、格式: 操作碼 目的操作數(shù) 源操作數(shù) 無操作數(shù):控制類指令,如HLT(暫停指令)單操作數(shù):只給出一個(gè)操作數(shù)地址,該操作數(shù)可在寄存器或存儲(chǔ)器中,或指令直接給出立即數(shù),如INC AL ; 將AL中的內(nèi)容加1(增量指令)雙操作數(shù):目的操作數(shù) 源操作數(shù);一個(gè)操作數(shù)在寄存器中,另一個(gè)在寄存器或存儲(chǔ)器中,或指令中直接給出立即數(shù),不允許兩個(gè)都在存儲(chǔ)器中,目的操作數(shù)是一個(gè)地址操作數(shù)的來源:1. 指令中: MOV AX, 1234H2. 寄存器中: MOV AX, BX3. 存儲(chǔ)器中: MOV AX, 1234H1、立即尋址 操作數(shù)(為一常數(shù))直接由指令給出 (此操作數(shù)稱為立即數(shù))立即尋址只能用于源操作數(shù)(立即
21、數(shù)可以是8位,或16位)例: MOV AX, 1C8FHMOV BYTE PTR2A00H, 8FH(BYTE PTR 指字節(jié)單元)MOV AL, 01H錯(cuò)誤例:× MOV 2A00H,AX ; 錯(cuò)誤!指令操作例:MOV AX,3102H; AXè3102H執(zhí)行后,(AH) = 31H,(AL) = 02H主要用來給寄存器賦初值2、寄存器尋址(1)操作數(shù)放在某個(gè)寄存器中(2)源操作數(shù)與目的操作數(shù)字長(zhǎng)要相同(3)寄存器尋址與段地址無關(guān)(4)注意:CS不能當(dāng)目的操作數(shù)!例: MOV AX, BX MOV 3F00H, AX MOV CL, AL 錯(cuò)誤例: × MOV
22、AX,BL ; 字長(zhǎng)不同× MOV ES:AX,DX ; 寄存器與段無關(guān)3、直接尋址(1)指令中直接給出操作數(shù)的16位偏移地址 偏移地址也稱為有效地址(EA, Effective Address)(2)默認(rèn)的段寄存器為DS,但也可以顯式地指定其他段寄存器稱為段超越前綴(3)偏移地址也可用符號(hào)地址來表示,如ADDR、VAR例: MOV AL, 2A00H(2A00H內(nèi)容存入AL中) MOV AX ,2A00H(2A00H內(nèi)容存入AL中,2A01H內(nèi)容存入AH中) MOV DX ,ES:2A00H(段超前)P54MOV SI,TABLE_PTR加了 表示存儲(chǔ)單元的地址,4、間接尋址l 操
23、作數(shù)的偏移地址(有效地址EA)放在寄存器中l(wèi)以SI、DI、BX間接尋址,操作數(shù)在當(dāng)前數(shù)據(jù)段(DS)區(qū)域中,即數(shù)據(jù)段寄存器DS乘以16加上SI,DI或BX中的16位偏移量后作為操作數(shù)的物理地址例如指令MOV AX,SI中,源操作數(shù)的物理地址是DS×16+SIl以寄存器BP間接尋址時(shí),操作數(shù)在堆棧段(SS)區(qū)域中,即堆棧寄存器SS乘以16與BP的內(nèi)容相加作為操作數(shù)的物理地址。若在指令中規(guī)定是段超越的,則BP的內(nèi)容也可以與其他段寄存器相加,如MOV AX,DS:BP的源操作數(shù)的物理地址是DS×16+BPl 例: MOV AX,BX MOV CL,CS:DI 錯(cuò)誤例 :×
24、 MOV AX, DX × MOV CL, AX × MOV SP,AX 5、寄存器變址尋址lEA=間址寄存器的內(nèi)容加上一個(gè)8/16位的位移量l 例: MOV AX, BX+8 MOV CX, TABLESI MOV AX, BP; 默認(rèn)段寄存器為SSl 指令操作例:MOV AX,DATABX 若(DS)=6000H, (BX)=1000H, DATA=2A00H, (63A00H)=66H, (63A01H)=55H 則物理地址 = 60000H + 1000H + 2A00H = 63A00H指令執(zhí)行后:(AX)=5566H6、相對(duì)基址變址尋址l 在基址-變址尋址的基礎(chǔ)
25、上再加上一個(gè)相對(duì)位移量EA=(BX)+(SI)或(DI)+8位或16位位移量;EA=(BP)+(SI)或(DI)+8位或16位位移量l 若操作數(shù)的偏移地址:由基址寄存器(BX或BP)給出 基址尋址方式由變址寄存器(SI或DI)給出 變址尋址方式同一組內(nèi)的寄存器不能同時(shí)出現(xiàn)。注意:除了有段跨越前綴的情況外,當(dāng)基址寄存器為BX時(shí),操作數(shù)應(yīng)該存放在數(shù)據(jù)段DS中,當(dāng)基址寄存器為BP時(shí),操作數(shù)應(yīng)放在堆棧段SS中。例: MOV AX, BX+SI MOV AX, DS: BP DI指令操作例:MOV AX,BXSI假定:(DS)=8000H, (BX)=2000H, SI=1000H則物理地址 = 800
26、00H + 2000H + 1000H = 83000H指令執(zhí)行后: (AL)=83000H(AH)=83001H指令操作例:MOV AX,DATADIBX若(DS)=8000H, (BX)=2000H, (DI)=1000H, DATA=200H則指令執(zhí)行后(AH)=83021H, (AL)=83020H寄存器間接、寄存器相對(duì)、基址變址、相對(duì)基址變址四種尋址方式的比較: 尋址方式 指令操作數(shù)形式n 寄存器間接 只有一個(gè)寄存器(BX/BP/SI/DI之一)n 寄存器相對(duì) 一個(gè)寄存器加上位移量n 基址變址 兩個(gè)不同類別的寄存器n 相對(duì)基址-變址 兩個(gè)不同類別的寄存器加上位移量二、地址尋址方式(了
27、解有4類,能判斷)簡(jiǎn)要判斷依據(jù)(指令中間的單詞):段內(nèi)直接 short,near段內(nèi)間接 word段間直接 far段間間接 dword第一節(jié) 8086指令系統(tǒng)一、數(shù)據(jù)傳送指令(重點(diǎn)%)1、通用傳送指令(1) MOV dest,src; destsrc傳送的是字節(jié)還是字取決于指令中涉及的寄存器是8位還是16位。傳送指令不影響標(biāo)志位具體來說可實(shí)現(xiàn): 寄存器間(除CS,IP)實(shí)現(xiàn)數(shù)據(jù)任意傳送MOV BX ,AXMOV BH, ALMOV SI , BP指令中兩操作數(shù)中至少有一個(gè)為寄存器 立即數(shù)送寄存器MOV BX, 50H; MOV BX, 500H;MOV AX, 0 (AX清零)MOV AX,
28、12H=MOV AL,12HMOV AL, 1000H× 立即數(shù)送存儲(chǔ)單元MOV BX, 500H (將00H送入存儲(chǔ)器數(shù)據(jù)段中偏移地址BX的字節(jié)單元;將05H送入偏移地址為BX+1的字節(jié)單元)MOV BYTE PTR 2000H ,25H (完成將存儲(chǔ)器數(shù)據(jù)段中偏移地址為2000H的字節(jié)單元賦值為25H)MOV WORD PTR 2000H,25H(將存儲(chǔ)器數(shù)據(jù)段偏移地址為2000H的字節(jié)單元賦值為25H,同時(shí)將偏移地址為2001H的字節(jié)單元賦值為0)物理地址=段基址*10H+EA 存儲(chǔ)單元送寄存器 MOV AX, BX 取數(shù)據(jù)(將存儲(chǔ)器偏移地址為BX所指的字節(jié)單元內(nèi)容送AL,BX
29、+1所指的字節(jié)內(nèi)容送AH) 寄存器送存儲(chǔ)單元 MOV BX, AX (將AL的字節(jié)單元內(nèi)容送偏移地址為BX,AH的字節(jié)內(nèi)容送BX+1)存儲(chǔ)單元/寄存器送段寄存器 MOV BX, DS 保護(hù)段地址 Mov DS ,BX 給地址賦值段寄存器送存儲(chǔ)單元/寄存器MOV DS , AX 給段地址賦值MOV AX , DS 保護(hù)段地址MOV指令的使用規(guī)則1. 兩個(gè)操作數(shù)的類型必須一致;2. 兩個(gè)操作數(shù)不能同時(shí)為存儲(chǔ)器操作數(shù);可寫成:MOV AX,SI; MOV DI,AX3. 不能用CS做目的操作數(shù);4. 不允許用立即數(shù)做目的操作數(shù);要寫成:MOV AX,H; MOV DS,AX5. 不允許立即數(shù)直接向段
30、寄存器傳送數(shù)據(jù);6. 不允許在段寄存器之間直接傳送數(shù)據(jù)。7. MOV指令可傳送8位數(shù)據(jù),也可傳送16位數(shù)據(jù)(2)、堆棧指令什么是堆棧?按“后進(jìn)先出(LIFO)”方式工作的存儲(chǔ)區(qū)域。堆棧以字為單位進(jìn)行壓入彈出操作。規(guī)定由SS指示堆棧段的段基址,堆棧指針SP始終指向堆棧的頂部,SP的初值規(guī)定了所用堆棧區(qū)的大小。堆棧的最高地址叫棧底。棧頂是堆棧操作的唯一出口,是棧地址較小的一端,棧底是不變的,為加快堆棧操作的速度,均以字為單位進(jìn)行,一次操作只能是SP+2(出棧)或SP-2(入棧) 壓棧指令PUSHPUSH src ; src為16位操作數(shù)(因?yàn)橄热氲臄?shù)據(jù)會(huì)被壓入棧底,而后的數(shù)據(jù)地址會(huì)越來越?。├篜
31、USHAX;將AX內(nèi)容壓棧執(zhí)行操作:SP(SP)-1SP高字節(jié)AHSP (SP)-1SP低字節(jié)AL故 (SP)(SP)- 2注意進(jìn)棧方向是高地址向低地址發(fā)展。 出棧指令POPPOPdest 執(zhí)行操作:OPRD的低字節(jié)SP SPSP+1 OPRD的高字節(jié)SP SPSP+1例:POP BX;將棧頂內(nèi)容彈至BX執(zhí)行操作:(BL)(SP)(BH)(SP)+1(SP)(SP)+2堆棧指令在使用時(shí)需注意的幾點(diǎn): 堆棧操作總是按字進(jìn)行 不能從棧頂彈出一個(gè)字給CS 堆棧指針為SS:SP,SP永遠(yuǎn)指向棧頂SP自動(dòng)進(jìn)行增減量(-2,+2)(3)、交換指令XCHG格式:XCHG reg,mem/reg功能:交換兩操
32、作數(shù)的內(nèi)容。要求:兩操作數(shù)中必須有一個(gè)在寄存器中;操作數(shù)不能為段寄存器和立即數(shù);源和目地操作數(shù)類型要一致。舉例: XCHGAX,BX將AX與BX的值相交換XCHG2000,CL將CL與數(shù)據(jù)段中偏移地址為2000H的單元交換(4)查表指令XLAT執(zhí)行的操作:AL(BX)+(AL)又叫查表轉(zhuǎn)換指令,它可根據(jù)表項(xiàng)序號(hào)查出表中對(duì)應(yīng)代碼的內(nèi)容。執(zhí)行時(shí)先將表的首地址(偏移地址)送到BX中,待查的碼存于AL中。(使用之前要有相應(yīng)的設(shè)置) 實(shí)驗(yàn) 一(8255)中涉及2、累加器輸入輸出指令只限于用累加器AL或AX來傳送信息。功能: (累加器)I/O端口(1) 輸入指令I(lǐng)N格式:IN累加器,端口 端口號(hào)0255(
33、00HFFH)(28-1)8位立即數(shù)直接給出IN 累加器, DX ;DX表示的端口范圍達(dá)64K例:IN AL,80H ;(AL)(80H端口)字節(jié)IN AL,DX ;(AL)(DX)IN AL n(從端口地址為n的端口)IN AX, n(AHn+1,ALn)IN AL, DX (從端口地址DX指明的端口讀一個(gè)字節(jié)直接送AL)IN AX, DX (AHDX+1,ALDX)字,相鄰的兩個(gè)單位的內(nèi)容送到AX中例IN AL,40H,CS=1000H,IP=0050H,8位端口40H中內(nèi)容為55H端口40H的內(nèi)容55H送入寄存器AL中(2) 輸出指令OUT格式:OUT 端口,累加器OUT DX,累加器(
34、CPU寫數(shù)據(jù)到外設(shè)當(dāng)中)例:OUT 68H,AX ;(69H,68H)(AX)OUT DX,AL ;(DX)(AL)在使用間接尋址的IN/OUT指令時(shí),要事先用傳送指令把I/O端口號(hào)設(shè)置到DX寄存器如: MOV DX,220HIN AL,DX;將220H端口內(nèi)容讀入AL如 OUT DX,AL,(AL=66H);將累加器AL中的數(shù)據(jù)字節(jié)66H,輸出到DX指定的端口3、目標(biāo)地址傳送指令(1) LEA傳送偏移地址格式:LEA reg,mem ; 將指定內(nèi)存單元的偏移地址送到指定寄存器 LEA BX, 2000H ; 把2000H單元的偏移地址送到BX,執(zhí)行后BX=2000H要求:1) 源操作數(shù)必須是
35、一個(gè)存儲(chǔ)器操作數(shù);2) 目的操作數(shù)必須是一個(gè)16位的通用寄存器。例:LEA BX,SI+10H設(shè):(SI)=1000H則執(zhí)行該指令后,(BX)=1010Hl注意以下二條指令差別:LEA BX,BUFFER MOV BX,BUFFER前者表示將符號(hào)地址為BUFFER的存儲(chǔ)單元的偏移地址取到 BX中;后者表示將BUFFER存儲(chǔ)單元中的內(nèi)容取到 BX中。下面兩條指令等效:LEA BX,BUFFERMOV BX, OFFSET BUFFER其中OFFSET BUFFER表示存儲(chǔ)器單元BUFFER的偏移地址。二者都可用于取存儲(chǔ)器單元的偏移地址,但LEA指令可以取動(dòng)態(tài)的地址,OFFSET只能取靜態(tài)的地址。
36、(2)LDS功能:完成一個(gè)地址指針的傳送,地址指針包括段地址部分和偏移量部分。前兩個(gè)字節(jié)偏移量部分送入一個(gè)16位的指針寄存器或變址寄存器,后兩字節(jié),段地址送入DS, 例如:指令“LDS SI,2000H”,將當(dāng)前數(shù)據(jù)段2000H及2001H單元的內(nèi)容送SI,同時(shí)將2002H及2003H單元的內(nèi)容送DS(3)LES功能:除將段地址送入ES外,其他與LDS指令相同標(biāo)志寄存器傳送1 LAHF (LOAD AH WITH FLAG)將標(biāo)志寄存器中的SF、ZF、AF、PF和CF(即低8位)傳送至AH寄存器的指定位,空位沒有定義。(2)SAHF (STOREAH WITH FLAG)將寄存器AH的指定位,
37、送至標(biāo)志寄存器的SF、ZF、AF、PF和CF位。根據(jù)AH的內(nèi)容,影響上述標(biāo)志位,對(duì)O、D和I無影響。(3)PUSHF(Push flag)將標(biāo)志寄存器壓入堆棧頂部,同時(shí)修改堆棧指針(此指令不影響標(biāo)志寄存器)(4)POPF(Pop flag)將堆棧頂部的一個(gè)字傳送到標(biāo)志寄存器中,同時(shí)修改堆棧指針(完成出棧入棧的地址應(yīng)該相同PUSHF與POPF是成對(duì)出現(xiàn)的,入棧指針前SP送入標(biāo)志寄存器,出棧后將SP送入寄存器,看標(biāo)志寄存器的值是否相同)二、算術(shù)運(yùn)算指令(會(huì)影響標(biāo)志位)1、 加法指令(1) 不帶進(jìn)位的加法指令A(yù)DD格式: ADD OPRD1,OPRD2源操作數(shù):8/16位通用寄存器,存儲(chǔ)器,立即數(shù)目
38、的操作數(shù):8/16位通用寄存器,存儲(chǔ)器 ADD 寄存器,立即數(shù) ADD AL,30 AL與立即數(shù)30相加,結(jié)果放在AL中ADD 存儲(chǔ)器1/寄存器1,存儲(chǔ)器2/寄存器2實(shí)例:ADD AL,30H (AL與立即數(shù)30相加,結(jié)果放在AL中)ADD SI,BX+20H (SI與BX+20H及BX+21H兩單元組成的一個(gè)字相加,結(jié)果放在SI中)ADD CX,SI (SI的內(nèi)容與CX的內(nèi)容相加,結(jié)果放在CX中) ADD DI,200H (立即數(shù)200H與存儲(chǔ)器內(nèi)容相加,結(jié)果放在存儲(chǔ)器中)ADD指令對(duì)6個(gè)狀態(tài)標(biāo)志均產(chǎn)生影響。例:已知(BX)=D75FH指令 ADD BX,8046H 執(zhí)行后,狀態(tài)標(biāo)志各是多少
39、?D75FH = 1110 0111 0101 11118046H = 1000 0000 0100 01101 1 11 11 0110 0111 1010 0101結(jié)果:因?yàn)樽罡呶挥羞M(jìn)位,故CF=1;最后8位有4個(gè)1,故PF=1;最后4位向第5位有進(jìn)位,故AF=1;運(yùn)算結(jié)果不全為0,故ZF=0;最高位為0,故SF=0;有溢出,故OF=1加法指令結(jié)果存放在OPRD1判斷溢出與進(jìn)位(重點(diǎn)%)從硬件的角度:默認(rèn)參與運(yùn)算的操作數(shù)都是有符號(hào)數(shù),當(dāng)兩數(shù)的符號(hào)位相同,而和的結(jié)果相異時(shí)有溢出,則OF=1,否則OF=0(2) 帶進(jìn)位的加法ADCADC指令在形式上和功能上與ADD類似,只是相加時(shí)還要包括進(jìn)位標(biāo)
40、志CF的內(nèi)容,例如:ADC AL,68H ; AL(AL)+68H+(CF)ADC AX,CX ;AX(AX)+(CX)+(CF)ADC BX,DI ;BX(BX)+DI+1DI+(CF)ADC指令一般用于16位以上的多字節(jié)數(shù)字相加(3)加1指令I(lǐng)NC格式:INC reg/mem功能:類似于C語(yǔ)言中的+操作:對(duì)指定的操作數(shù)加1 例: INC ALINC SIINC BYTE PTRBX+4 (知道字節(jié)加1)注:本指令不影響CF標(biāo)志。(4)非壓縮BCD碼加法調(diào)整指令A(yù)AAAAA指令的操作:如果AL的低4位9或AF=1,則: AL(AL)+6,(AH)(AH)+1,AF1 AL高4位清零 CFAF
41、否則AL高4位清零(5)壓縮BCD碼加法調(diào)整指令DAAl兩個(gè)壓縮BCD碼相加結(jié)果在AL中,通過DAA調(diào)整得到一個(gè)正確的壓縮BCD碼.l指令操作(調(diào)整方法):若AL的低4位9或AF=1則(AL)(AL)+6,AF1若AL的高4位9或CF=1則(AL)(AL)+60H,CF1l除OF外,DAA指令影響所有其它標(biāo)志。lDAA指令應(yīng)緊跟在ADD或ADC指令之后。2、 減法指令(1)不考慮借位的減法指令SUB格式: SUB OPRD1,OPRD2操作: destOPRD1-OPRD2注:1.源和目的操作數(shù)不能同時(shí)為存儲(chǔ)器操作數(shù)2.立即數(shù)不能作為目的操作數(shù)3.不能進(jìn)行段寄存器減法指令例子:SUB AL,6
42、0HSUB BX+20H,DXSUB AX,CX(2)考慮借位的減法指令SBBSBB指令主要用于多字節(jié)的減法。格式: SBB dest, src操作: dest(dest)-(src)-(CF)指令例子:SBB AX,CXSBB WORD PTRSI,2080HSBB SI,DX(3)減1指令DEC作用類似于C語(yǔ)言中的”操作符。格式:DEC opr操作:opr(opr)-1在循環(huán)程序中,該指令對(duì)地址指針和循環(huán)計(jì)數(shù)值進(jìn)行修改(執(zhí)行一次,減1,直到位0)指令例子:DEC CLDEC WORD PTRDI+2 由DI+2尋址的數(shù)據(jù)段中,字存儲(chǔ)單元內(nèi)容減1DEC SI (4)求補(bǔ)指令NEG格式: NE
43、G opr操作: opr 0-(opr)(相當(dāng)于用0作被減數(shù)的SUB指令一樣,但進(jìn)位標(biāo)志為1)對(duì)一個(gè)操作數(shù)取補(bǔ)碼相當(dāng)于用0減去此操作數(shù),故利用NEG指令可得到負(fù)數(shù)的絕對(duì)值。相當(dāng)于: NOT opr INC opr例:若(AL)=0FCH,則執(zhí)行 NEG AL后,(AL)=04H,CF=1(5)比較指令CMP格式: CMP OPRD1,OPRD2操作: OPRD1-OPRD2CMP也是執(zhí)行兩個(gè)操作數(shù)相減,但結(jié)果不送目標(biāo)操作數(shù),其結(jié)果只反映在標(biāo)志位上。有符號(hào)數(shù),進(jìn)行比較后,溢出標(biāo)志位OF與符號(hào)標(biāo)志位SF的值相同時(shí),則OPRD1OPRD2,否則OPRD1OPRD2無符號(hào)數(shù),CF=0,則OPRD1OP
44、RD2,若CF=1,OPRD1OPRD2指令例子:CMP AL,0AHCMP CX,SICMP DI,BX+03注意:(1)目的操作數(shù)不能為立即數(shù) (2)源操作數(shù)和目的操作數(shù)不能同時(shí)為存儲(chǔ)器(6)十進(jìn)制調(diào)制指令 例如十進(jìn)制數(shù)12,用BCD碼表示0001 0010,十進(jìn)制的每一位用二進(jìn)制數(shù)表示(4位4位是二進(jìn)制,而相鄰的四位卻是十進(jìn)制的),故要調(diào)整一類為壓縮BCD碼,即規(guī)定每個(gè)字節(jié)表示兩位BCD數(shù);另一類為非壓縮BCD碼,即用一個(gè)字節(jié)表示1位BCD數(shù),因09可以用4位二進(jìn)制數(shù)表示(在字節(jié)的高4位用0填充)。例如,十進(jìn)制數(shù)25,壓縮BCD數(shù)時(shí)為25H,非壓縮BCD數(shù)為0205H減法調(diào)整指令A(yù)AS對(duì)
45、AL中由兩個(gè)非壓縮的BCD碼相減的結(jié)果進(jìn)行調(diào)整。調(diào)整操作為:若AL的低4位9或AF=1,則: AL(AL)-6,AH(AH)-1,AF1 AL的高4位清零 CFAF否則:AL的高4位清零壓縮BCD碼減法調(diào)整指令DAS對(duì)AL中由兩個(gè)壓縮BCD碼相減的結(jié)果進(jìn)行調(diào)整。調(diào)整操作為:若AL的低4位9或AF=1,則:AL(AL)-6, 且AF1若AL的高4位9或CF=1,則:AL(AL)-60H,且CF1DAS對(duì)OF無定義,但影響其余標(biāo)志位。DAS指令要求跟在減法指令之后。3、 乘法指令進(jìn)行乘法時(shí):8位*8位16位乘積16位*16位32位乘積相乘后是雙倍長(zhǎng)的積(1) 無符號(hào)數(shù)的乘法指令MUL(MEM/RE
46、G)格式: MUL OPRD操作:字節(jié)操作數(shù) (AX)(AL) × (src) 其16位積的高8位放在AH中,低8位放在AL中(因?yàn)閮蓴?shù)相乘可以為10位或以上)字操作數(shù) (DX, AX)(AX) × (src) 其32位積的高16位放在DX中,低16位放在AX中其中一個(gè)操作數(shù)默認(rèn)放在AL或AX中,而另外一個(gè)由OPRD給出,注意OPRD不能是立即數(shù)高位字節(jié)或高位字無效:即AH=0或DX=0,將CF和OF兩標(biāo)志位同時(shí)0(因?yàn)楦呶蝗珵?,肯定不存在溢出和進(jìn)位)高位字節(jié)或高位字有效:即AH0,或DX0,即將CF和OF同時(shí)置1(高位不全為1)指令例子:MUL BL ;(AL)
47、5;(BL),乘積在AX中MUL CX ;(AX)×(CX),乘積在DX,AX中MUL BYTE PTRBX(2)有符號(hào)數(shù)乘法指令I(lǐng)MUL格式與MUL指令類似,只是要求兩操作數(shù)均為有符號(hào)數(shù)。指令例子:IMUL BL ;(AX)(AL)×(BL)IMUL WORD PTRSI;(DX,AX)(AX)×(SI+1SI)注意:MUL/IMUL指令中 AL(AX)為隱含的乘數(shù)寄存器;(其中一個(gè)操作數(shù)默認(rèn)放在AL或AX中,而另一個(gè)操作數(shù)由指令給出) AX(DX,AX)為隱含的乘積寄存器; OPRD不能為立即數(shù); 除CF和OF外,對(duì)其它標(biāo)志位無定義。 8位數(shù)相乘,結(jié)果16位數(shù)
48、放在AX中,16位數(shù)相乘結(jié)果為32位數(shù),其中高16位放在DX中,低16位放在AX中。4、除法指令進(jìn)行除法時(shí):16位/8位8位商32位/16位16位商對(duì)被除數(shù)、商及余數(shù)存放有如下規(guī)定:被除數(shù) 商 余數(shù)字節(jié)除法 AX AL AH字除法 DX:AX AX DX字節(jié)運(yùn)算時(shí)被除數(shù)放在AX中,運(yùn)算結(jié)果商放在AL中,而余數(shù)放在AH中;字運(yùn)算時(shí)被除數(shù)位DX與AX構(gòu)成32位數(shù)(DX中放高16位),運(yùn)算結(jié)果的商放在AX中,而余數(shù)放在DX中(1)無符號(hào)數(shù)除法指令DIV格式: DIV src操作:字節(jié)操作 (AL)(AX) / (SRC) 的商(AH)(AX) / (SRC) 的余數(shù)字操作 (AX) (DX, AX)
49、 / (SRC) 的商(DX) (DX, AX) / (SRC) 的余數(shù)指令例子:DIV CLDIV WORD PTRBX(2)有符號(hào)數(shù)除法指令I(lǐng)DIV格式: IDIV src操作與DIV類似。商及余數(shù)均為有符號(hào)數(shù),且余數(shù)符號(hào)總是與被除數(shù)符號(hào)相同。注意: 對(duì)于DIV/IDIV指令A(yù)X(DX,AX)為隱含的被除數(shù)寄存器。(被除數(shù)放在AX中)AL(AX)為隱含的商寄存器。(運(yùn)算結(jié)果商放在AL中)AH(DX)為隱含的余數(shù)寄存器。(運(yùn)算余數(shù)放在AH中)src不能為立即數(shù)。對(duì)所有條件標(biāo)志位均無定32位(一個(gè)字)被除數(shù)為DX,AX(DX中放高16位),運(yùn)算結(jié)果AX放商,DX放余數(shù)關(guān)于除法操作中的字長(zhǎng)擴(kuò)展問
50、題除法運(yùn)算要求被除數(shù)字長(zhǎng)是除數(shù)字長(zhǎng)的兩倍,若不滿足則需對(duì)被除數(shù)進(jìn)行擴(kuò)展,否則產(chǎn)生錯(cuò)誤。對(duì)于無符號(hào)數(shù)除法擴(kuò)展,只需將AH或DX清零即可。對(duì)有符號(hào)數(shù)而言,則是符號(hào)位的擴(kuò)展??墒褂们懊娼榻B過的符號(hào)擴(kuò)展指令CBW和CWD字節(jié)擴(kuò)展指令CBW格式:CBW該指令執(zhí)行時(shí)將AL寄存器的最高位擴(kuò)展到AH,即若(最高位)D7=0,則AH=0;否則AH=0FFH。字?jǐn)U展指令CWD格式:CWD該指令執(zhí)行時(shí)將AX寄存器的最高位擴(kuò)展到DX,即若(最高位)D15=0,則DX=0;否則DX=0FFFFH三、邏輯運(yùn)算和移位指令(會(huì)影響標(biāo)志位)1、邏輯運(yùn)算指令(1)邏輯與AND對(duì)兩個(gè)操作數(shù)進(jìn)行按位邏輯“與”操作。格式:AND OP
51、RD1,OPRD2用途:保留操作數(shù)的某幾位,清零其他位。(保留用1,清零用0)例 保留AL中低4位,高4位清0。AND AL,0FH(2)邏輯或OR對(duì)兩個(gè)操作數(shù)進(jìn)行按位邏輯”或”操作。格式:OR dest, src用途:對(duì)操作數(shù)的某幾位置1;對(duì)兩操作數(shù)進(jìn)行組合。例1:把AL中的非壓縮BCD碼變成相應(yīng)十進(jìn)制數(shù)的ASCII碼。OR AL, 30H例2:BH保持不變,BL置為0FFH OR BX , 00FFH例3:AND AL,0FHAND AH,0F0H OR AL,AH ; 完成拼字的動(dòng)作 OR AX,0FFFH ;將AX低12位置1(3)邏輯非NOT對(duì)操作數(shù)進(jìn)行按位邏輯”非”操作。格式:NOT mem/reg例:NOT CXNOT BYTE PTRDINOT AX 執(zhí)行前 AX=0503H,執(zhí)行后 AX=FAFCH (4)邏輯異或XOR對(duì)兩個(gè)操作數(shù)按位進(jìn)行”異或”操作。格式:XOR dest, src用途:兩個(gè)操作數(shù)相反,結(jié)果為1;相同為0(此時(shí)零標(biāo)志位ZF=0)把reg/mem的某幾位變反(與1異或)(5)測(cè)試指令TEST操作與AND指令類似,但不將”與”的結(jié)果送回,只影響標(biāo)志位。TEST指令常用于位測(cè)試,與條件轉(zhuǎn)移指令一起用。(可用來判斷正負(fù),奇偶)例:測(cè)試AL的內(nèi)容是
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度大棚蔬菜種植與農(nóng)業(yè)休閑農(nóng)業(yè)項(xiàng)目合作協(xié)議2篇
- 二零二五年度南京市房地產(chǎn)經(jīng)紀(jì)行業(yè)勞務(wù)派遣及銷售服務(wù)合同
- 2025年度豬場(chǎng)生物安全防護(hù)與防疫物資供應(yīng)合同4篇
- 二手房地產(chǎn)交易安全保障與監(jiān)管合同
- 2025年水果采摘與農(nóng)家樂特色農(nóng)產(chǎn)品銷售合同3篇
- 二零二五年度企業(yè)股權(quán)激勵(lì)計(jì)劃轉(zhuǎn)讓合同
- 2025年大數(shù)據(jù)處理與分析軟件服務(wù)采購(gòu)協(xié)議3篇
- 二零二五年建筑資質(zhì)掛靠與工程進(jìn)度調(diào)整服務(wù)協(xié)議3篇
- 2025年度二手房買賣合同附加物業(yè)管理費(fèi)結(jié)算協(xié)議3篇
- 二零二五年度大型商業(yè)綜合體工程分包管理協(xié)議2篇
- 四川省高職單招電氣技術(shù)類《電子基礎(chǔ)》歷年考試真題試題庫(kù)(含答案)
- 中級(jí)半導(dǎo)體分立器件和集成電路裝調(diào)工技能鑒定考試題庫(kù)(含答案)
- 2024年江西生物科技職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)帶解析答案
- 橋本甲狀腺炎-90天治療方案
- (2024年)安全注射培訓(xùn)課件
- 2024版《建設(shè)工程開工、停工、復(fù)工安全管理臺(tái)賬表格(流程圖、申請(qǐng)表、報(bào)審表、考核表、通知單等)》模版
- 部編版《道德與法治》六年級(jí)下冊(cè)教材分析萬永霞
- 酒店人防管理制度
- 油田酸化工藝技術(shù)
- 上海高考英語(yǔ)詞匯手冊(cè)列表
- 移動(dòng)商務(wù)內(nèi)容運(yùn)營(yíng)(吳洪貴)任務(wù)五 其他內(nèi)容類型的生產(chǎn)
評(píng)論
0/150
提交評(píng)論