版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、微機(jī)原理與接口技術(shù)微機(jī)原理與接口技術(shù)復(fù)習(xí)參考資料第一章概 述一、運(yùn)算機(jī)中的數(shù)制1、無(wú)符號(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 及 a f(表示 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)表達(dá)式綻開(kāi),再按十進(jìn)制求和;(見(jiàn)書(shū)本1.2.3 , 1.2.4 )( 2)十進(jìn)制數(shù)制轉(zhuǎn)換為二進(jìn)制數(shù)制十進(jìn)制 二進(jìn)制的轉(zhuǎn)換: 整
2、數(shù)部分:除2 取余;小數(shù)部分:乘2 取整;十進(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ù)3 、無(wú)符號(hào)數(shù)二進(jìn)制的運(yùn)算(見(jiàn)教材p5 )4 、二進(jìn)制數(shù)的規(guī)律運(yùn)算特點(diǎn):按位運(yùn)算,無(wú)進(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é)果就是1二、運(yùn)算機(jī)中的碼制1、對(duì)于符號(hào)數(shù),機(jī)器數(shù)常用的表示方法有原碼、反碼和補(bǔ)碼三
3、種;數(shù)x 的原碼記作 x 原,反碼記作 x 反,補(bǔ)碼記作 x 補(bǔ);1 / 46微機(jī)原理與接口技術(shù)留意:對(duì)正數(shù),三種表示法均相同; 它們的差別在于對(duì)負(fù)數(shù)的表示;(1)原碼定義:符號(hào)位: 0 表示正, 1 表示負(fù); 數(shù)值位:真值的肯定值;留意:數(shù) 0 的原碼不唯獨(dú)(2)反碼定義:如 x>0,就x 反 =x 原如 x<0 , 就x 反 = 對(duì)應(yīng)原碼的符號(hào)位不變,數(shù)值部分按位求反留意:數(shù) 0 的反碼也不唯獨(dú)(3)補(bǔ)碼定義:如 x>0 , 就x 補(bǔ)= x 反= x 原如 x<0 , 就x 補(bǔ)= x 反+1留意:機(jī)器字長(zhǎng)為8 時(shí),數(shù) 0 的補(bǔ)碼唯獨(dú),同為000000002、8 位二
4、進(jìn)制的表示范疇:原碼: -127+127反碼: -127+127補(bǔ)碼: -128+1273、特別數(shù)10000000該數(shù)在原碼中定義為:-0在反碼中定義為:-127在補(bǔ)碼中定義為:-128對(duì)無(wú)符號(hào)數(shù):10000000 = 128三、信息的編碼1、 十進(jìn)制數(shù)的二進(jìn)制數(shù)編碼用 4 位二進(jìn)制數(shù)表示一位十進(jìn)制數(shù);有兩種表示法:壓縮bcd 碼和非壓縮bcd 碼;(1 )壓縮 bcd 碼的每一位用4 位二進(jìn)制表示,00001001表示 09 ,一個(gè)字節(jié)表示兩位十進(jìn)制數(shù);(2 )非壓縮 bcd 碼用一個(gè)字節(jié)表示一位十進(jìn)制數(shù),高 4 位總是 0000 ,低 4 位的 00001001表示 092、 字符的編碼運(yùn)
5、算機(jī)采納7 位二進(jìn)制代碼對(duì)字符進(jìn)行編碼(1 )數(shù)字 09 的編碼是 01100000111001,它們的高 3 位均是 011 ,后 4 位正好與其對(duì)應(yīng)的二進(jìn)制代碼(bcd 碼)相符;2 / 46微機(jī)原理與接口技術(shù)(2 )英文字母az 的 ascii 碼從 1000001 (41h )開(kāi)頭次序遞增,字母az 的 ascii 碼從 1100001 ( 61h )開(kāi)頭次序遞增,這樣的排列對(duì)信息檢索非常有利;其次章微機(jī)組成原理第一節(jié)、微機(jī)的結(jié)構(gòu)1、運(yùn)算機(jī)的經(jīng)典結(jié)構(gòu)馮. 諾依曼結(jié)構(gòu)(1)運(yùn)算機(jī)由運(yùn)算器、掌握器、輸入設(shè)備和輸出設(shè)備五大部分組成(運(yùn)算器和掌握器又稱為 cpu)(2)數(shù)據(jù)和程序以二進(jìn)制代碼形
6、式不加區(qū)分地存放在儲(chǔ)備器總,存放位置由地址指定,數(shù)制為二進(jìn)制;(3)掌握器是依據(jù)存放在儲(chǔ)備器中的指令序列來(lái)操作的,并由一個(gè)程序計(jì)數(shù)器掌握指令的執(zhí)行;3、 系統(tǒng)總線的分類(1)數(shù)據(jù)總線(data bus ),它打算了處理器的字長(zhǎng);(2)地址總線(address bus ) , 它打算系統(tǒng)所能直接拜訪的儲(chǔ)備器空間的容量;(3)掌握總線(control bus)其次節(jié)、 8086 微處理器1、8086 是一種單片微處理芯片,其內(nèi)部數(shù)據(jù)總線的寬度是16 位,外部數(shù)據(jù)總線寬度也是16 位,片內(nèi)包含有掌握運(yùn)算機(jī)全部功能的各種電路;8086 地址總線的寬度為20 位,有 1mb (2 20 )尋址空間;2、
7、 8086cpu由總線接口部件biu 和執(zhí)行部件eu 組成; biu 和 eu 的操作是異步的,為8086 取指令和執(zhí)行指令的并行操作體統(tǒng)硬件支持;3、 8086 處理器的啟動(dòng)4、寄存器結(jié)構(gòu)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)、通用寄存器(1) 8086 含 4 個(gè) 16 位數(shù)據(jù)寄存器,它們又可分為8 個(gè) 8 位寄存器,即:axah , albxbh , blcxch ,cldx
8、dh ,dl常用來(lái)存放參加運(yùn)算的操作數(shù)或運(yùn)算結(jié)果(2 )數(shù)據(jù)寄存器特有的習(xí)慣用法ax :累加器;多用于存放中間運(yùn)算結(jié)果;全部i/o 指令必需都通過(guò)ax 與接口傳送信息;bx :基址寄存器;在間接尋址中用于存放基地址;cx :計(jì)數(shù)寄存器;用于在循環(huán)或串操作指令中存放循環(huán)次數(shù)或重復(fù)次數(shù);3 / 46微機(jī)原理與接口技術(shù)dx :數(shù)據(jù)寄存器;在32 位乘除法運(yùn)算時(shí),存放高16 位數(shù);在間接尋址的i/o 指令中存放 i/o 端口地址;2)、指針和變址寄存器sp :堆棧指針寄存器,其內(nèi)容為棧頂?shù)钠频刂?;bp :基址指針寄存器,常用于在拜訪內(nèi)存時(shí)存放內(nèi)存單元的偏移地址; si :源變址寄存器di :目標(biāo)變址
9、寄存器變址寄存器常用于指令的間接尋址或變址尋址;3)、段寄存器cs :代碼段寄存器,代碼段用于存放指令代碼ds :數(shù)據(jù)段寄存器es :附加段寄存器,數(shù)據(jù)段和附加段用來(lái)存放操作數(shù)ss :堆棧段寄存器,堆棧段用于存放返回地址,儲(chǔ)存寄存器內(nèi)容,傳遞參數(shù)4)、指令指針(ip )16 位指令指針寄存器,其內(nèi)容為下一條要執(zhí)行的指令的偏移地址;5)、標(biāo)志寄存器(1)狀態(tài)標(biāo)志:進(jìn)位標(biāo)志位(cf ):運(yùn)算結(jié)果的最高位有進(jìn)位或有借位,就cf=1 幫助進(jìn)位標(biāo)志位(af ):運(yùn)算結(jié)果的低四位有進(jìn)位或借位,就af=1溢出標(biāo)志位(of ):運(yùn)算結(jié)果有溢出,就of=1零標(biāo)志位( zf ):反映指令的執(zhí)行是否產(chǎn)生一個(gè)為零的結(jié)
10、果符號(hào)標(biāo)志位(sf ):指出該指令的執(zhí)行是否產(chǎn)生一個(gè)負(fù)的結(jié)果奇偶標(biāo)志位(pf ):表示指令運(yùn)算結(jié)果的低8 位“ 1個(gè)”數(shù)是否為偶數(shù)(2 )掌握標(biāo)志位中斷答應(yīng)標(biāo)志位(if ):表示 cpu 是否能夠響應(yīng)外部可屏蔽中斷懇求跟蹤標(biāo)志( tf ): cpu 單步執(zhí)行5、8086 的引腳及其功能(重點(diǎn)把握以下引腳)ad 15 ad0 :雙向三態(tài)的地址總線,輸入/輸出信號(hào)intr :可屏蔽中斷懇求輸入信號(hào),高電平有效;可通過(guò)設(shè)置if 的值來(lái)掌握;nmi :非屏蔽中斷輸入信號(hào);不能用軟件進(jìn)行屏蔽;reset :復(fù)位輸入信號(hào),高電平有效;復(fù)位的初始狀態(tài)見(jiàn)p21 mn/mx :最小最大模式輸入掌握信號(hào);第三章8
11、086 指令系統(tǒng)第一節(jié) 8086 尋址方式一、數(shù)據(jù)尋址方式1、立刻尋址操作數(shù) 為一常數(shù) 直接由指令給出此操作數(shù)稱為立刻數(shù)4 / 46微機(jī)原理與接口技術(shù)立刻尋址只能用于源操作數(shù)例:movax, 1c8fhmovbyte ptr2a00h, 8fh錯(cuò)誤例:× mov 2a00h,ax ;錯(cuò)誤!指令操作例: mov ax ,3102h; ax3102h執(zhí)行后, ah = 31h , al = 02h2、寄存器尋址(1)操作數(shù)放在某個(gè)寄存器中(2)源操作數(shù)與目的操作數(shù)字長(zhǎng)要相同(3)寄存器尋址與段地址無(wú)關(guān)例:movax, bx mov3f00h, ax movcl, al錯(cuò)誤例:×
12、 mov ax,bl;字長(zhǎng)不同× mov es:ax,dx;寄存器與段無(wú)關(guān)3、直接尋址(1)指令中直接給出操作數(shù)的16 位偏移地址偏移地址也稱為有效地址ea, effective address(2)默認(rèn)的段寄存器為ds,但也可以顯式地指定其他段寄存器稱為段超越前綴(3)偏移地址也可用符號(hào)地址來(lái)表示,如addr、var例:movax ,2a00h movdx ,es:2a00hmovsi,table_ptr4、間接尋址操作數(shù)的偏移地址有效地址ea放在寄存器中 只有 si、di 、bx 和 bp 可作間址寄存器例:movax,bx movcl,cs:di錯(cuò)誤例:×movax,
13、 dx× movcl, ax5、寄存器相對(duì)尋址 ea= 間址寄存器的內(nèi)容加上一個(gè)8/16 位的位移量例:movax,bx+8movcx,tablesi5 / 46微機(jī)原理與接口技術(shù)movax,bp;默認(rèn)段寄存器為ss指令操作例:movax ,databx如ds=6000h, bx=1000h, data=2a00h, 63a00h=66h,63a01h=55h就物理地址= 60000h + 1000h + 2a00h = 63a00h指令執(zhí)行后: ( ax ) =5566h6、基址變址尋址如操作數(shù)的偏移地址:由基址寄存器bx 或 bp 給出基址尋址方式由變址寄存器si 或 di 給出
14、變址尋址方式由一個(gè)基址寄存器的內(nèi)容和一個(gè)變址寄存器的內(nèi)容相加而形成操作數(shù)的偏移地址,稱為基址 -變址尋址;ea= ( bx )+( si)或( di ); ea= ( bp) +( si)或( di )同一組內(nèi)的寄存器不能同時(shí)顯現(xiàn);留意:除了有段跨過(guò)前綴的情形外,當(dāng)基址寄存器為bx 時(shí),操作數(shù)應(yīng)當(dāng)存放在數(shù)據(jù)段ds中,當(dāng)基址寄存器為bp 時(shí),操作數(shù)應(yīng)放在堆棧段ss 中;例:movax,bx simovax,bx+simovax,ds: bp di錯(cuò)誤例:×movax,bx bp× movax,di si指令操作例: movax , bxsi假定: ds=8000h,bx=20
15、00h,si=1000h 就物理地址= 80000h + 2000h + 1000h = 83000h指令執(zhí)行后 : al=83000hah=83001h7、相對(duì)基址變址尋址在基址 -變址尋址的基礎(chǔ)上再加上一個(gè)相對(duì)位移量ea= ( bx )+( si)或( di )+8 位或 16 位位移量; ea= ( bp) +( si)或( di ) +8 位或 16 位位移量指令操作例 : mov ax , datadibx如ds=8000h, bx=2000h, di=1000h, data=200h就指令執(zhí)行后 ah=83021h,al=83020h寄存器間接、寄存器相對(duì)、基址變址、相對(duì)基址變址四
16、種尋址方式的比較:尋址方式指令操作數(shù)形式寄存器間接只有一個(gè)寄存器(bx/bp/si/di之一)寄存器相對(duì)一個(gè)寄存器加上位移量基址 變址兩個(gè)不同類別的寄存器6 / 46微機(jī)原理與接口技術(shù)相對(duì)基址 -變址兩個(gè)不同類別的寄存器加上位移量二、地址尋址方式(明白有4 類,能判定)簡(jiǎn)要判定依據(jù)(指令中間的單詞):段內(nèi)直接short,near段內(nèi)間接word段間直接far段間間接dword其次節(jié)8086 指令系統(tǒng)一、數(shù)據(jù)傳送指令1、通用傳送指令(1) mov dest , src; dest src傳送的是字節(jié)仍是字取決于指令中涉及的寄存器是8 位仍是 16 位;具體來(lái)說(shuō)可實(shí)現(xiàn):movmem/reg1 ,
17、mem/reg2指令中兩操作數(shù)中至少有一個(gè)為寄存器 movreg,data;立刻數(shù)送寄存器 movmem,data; 立刻數(shù)送儲(chǔ)備單元 movacc, mem;儲(chǔ)備單元送累加器 movmem,acc;累加器送儲(chǔ)備單元 movsegreg,mem/reg ; 儲(chǔ)備單元 /寄存器送段寄存器 movmem/reg, segreg ;段寄存器送儲(chǔ)備單元/寄存器mov指令的使用規(guī)章ip 不能作目的寄存器不答應(yīng)mem mem不答應(yīng)segreg segreg立刻數(shù)不答應(yīng)作為目的操作數(shù)不答應(yīng)segreg立刻數(shù)源操作數(shù)與目的操作數(shù)類型要一樣當(dāng)源操作數(shù)為單字節(jié)的立刻數(shù),而目的操作數(shù)為間址、變址、基址+變址的內(nèi)存數(shù)
18、時(shí),必需用 ptr 說(shuō)明數(shù)據(jù)類型;如:mov bx,12h是錯(cuò)誤的;(2)、堆棧指令什么是堆棧?按 “后進(jìn)先出 lifo ”方式工作的儲(chǔ)備區(qū)域;堆棧以字為單位進(jìn)行壓入彈出操作;規(guī)定由 ss 指示堆棧段的段基址,堆棧指針sp 始終指向堆棧的頂部,sp 的初值規(guī)定了所用堆棧區(qū)的大小;堆棧的最高地址叫棧底;壓棧指令 pushpushsrc; src 為 16 位操作數(shù)7 / 46微機(jī)原理與接口技術(shù)例: pushax;將 ax 內(nèi)容壓棧執(zhí)行操作:( sp) -1高字節(jié)ah(sp) -2低字節(jié)al sp( sp) - 2留意進(jìn)棧方向是高地址向低地址進(jìn)展;彈出指令 pop popdest例: popbx;
19、將棧頂內(nèi)容彈至bx執(zhí)行操作:( bl )( sp)( bh )( sp)+1( sp)( sp) +2堆棧指令在使用時(shí)需留意的幾點(diǎn):堆棧操作總是按字進(jìn)行不能從棧頂彈出一個(gè)字給cs堆棧指針為ss:sp, sp 永久指向棧頂sp 自動(dòng)進(jìn)行增減量(-2, +2 )(3)、交換指令xchg格式: xchgreg, mem/reg功能:交換兩操作數(shù)的內(nèi)容;要求:兩操作數(shù)中必需有一個(gè)在寄存器中;操作數(shù)不能為段寄存器和立刻數(shù);源和目地操作數(shù)類型要一樣;舉例:xchgax , bxxchg2000 ,cl(4)查表指令xlat執(zhí)行的操作:al bx+al又叫查表轉(zhuǎn)換指令,它可依據(jù)表項(xiàng)序號(hào)查出表中對(duì)應(yīng)代碼的內(nèi)容
20、;執(zhí)行時(shí)先將表的首地址(偏移地址)送到bx 中,表項(xiàng)序號(hào)存于al 中;2、輸入輸出指令只限于用累加器al 或 ax 來(lái)傳送信息;功能 : 累加器 i/o 端口( 1)輸入指令in格式 :in acc,port ;port 端口號(hào) 0 255hin acc,dx;dx 表示的端口范疇達(dá)64k例 :in al , 80h;al 80h 端 口 in al ,dx;al dx8 / 46微機(jī)原理與接口技術(shù)(2) 輸出指令out格式: outport,accoutdx,acc例: out 68h , ax;69h , 68h ( ax )out dx , al;dx al在使用間接尋址的in/out指
21、令時(shí),要事先用傳送指令把i/o 端口號(hào)設(shè)置到dx 寄存器如:movdx , 220hinal , dx; 將 220h 端口內(nèi)容讀入al3、目標(biāo)地址傳送指令(1) lea傳送偏移地址格式: lea reg , mem; 將指定內(nèi)存單元的偏移地址送到指定寄存器要求:1) 源操作數(shù) 必需是一個(gè) 儲(chǔ)備器操作數(shù);2) 目的操作數(shù)必需是一個(gè)16 位的通用寄存器;例: leabx , si+10h設(shè):( si) =1000h就執(zhí)行該指令后, (bx ) =1010h留意以下二條指令差別:lea bx , buffer mov bx , buffer前者表示將符號(hào)地址為buffer 的儲(chǔ)備單元的偏移地址取到
22、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)的地址;二、算術(shù)運(yùn)算指令1、 加法指令(1) 不帶進(jìn)位的加法指令add格式:addacc,dataaddmem/reg,data addmem/reg1,mem/reg2實(shí)例:9 / 46微機(jī)原理與接口技術(shù)addal , 30haddsi, bx+20haddcx , siadddi
23、 , 200h.add指令對(duì) 6 個(gè)狀態(tài)標(biāo)志均產(chǎn)生影響;例:已知 bx=d75fh指令addbx,8046h執(zhí)行后,狀態(tài)標(biāo)志各是多少?d75fh = 1110 0111 0101 11118046h = 1000 0000 0100 011011 11 110110 0111 1010 0101結(jié)果: c=1, z=0, p=0, a=1, o=1, s=0判定溢出與進(jìn)位從硬件的角度: 默認(rèn)參加運(yùn)算的操作數(shù)都是有符號(hào)數(shù),當(dāng)兩數(shù)的符號(hào)位相同,而和的結(jié)果相異時(shí)有溢出,就of=1,否就 of=0(2) 帶進(jìn)位的加法adc adc 指令在形式上和功能上與add 類似,只是相加時(shí)仍要包括進(jìn)位標(biāo)志cf 的
24、內(nèi)容,例如: adcal , 68h ;al al+68h+cfadcax , cx;ax ax+cx+cfadcbx , di;bx bx+di+1di+cf(3)加 1 指令 inc格式: increg/mem功能:類似于c 語(yǔ)言中的 + 操作:對(duì)指定的操作數(shù)加1例:incalincsiincbyte ptrbx+4注:本指令不影響 cf 標(biāo)志;(4)非壓縮bcd 碼加法調(diào)整指令aaa aaa指令的操作:假如 al 的低 4 位 9 或 af=1 ,就: al al+6,ah ah+1,af 1 al 高 4 位清零 cf af否就 al 高 4 位清零(5)壓縮 bcd 碼加法調(diào)整指令d
25、aa兩個(gè)壓縮bcd 碼相加結(jié)果在al 中,通過(guò)daa 調(diào)整得到一個(gè)正確的壓縮bcd 碼.指令操作 調(diào)整方法 :如 al 的低 4 位 9 或 af=110 / 46微機(jī)原理與接口技術(shù)就al al+6 , af 1如 al 的高 4 位 9 或 cf=1就al al+60h , cf 1除 of 外, daa 指令影響全部其它標(biāo)志;daa 指令應(yīng)緊跟在 add 或 adc 指令之后;2、 減法指令(1)不考慮借位的減法指令sub格式: sub dest, src操作: dest dest-src注: 1. 源和目的操作數(shù)不能同時(shí)為儲(chǔ)備器操作數(shù)2. 立刻數(shù)不能作為目的操作數(shù)指令例子:sub al
26、, 60hsub bx+20h , dx sub ax, cx(2)考慮借位的減法指令sbbsbb指令主要用于多字節(jié)的減法;格式: sbb dest, src操作: dest dest-src-cf指令例子:sbb ax, cxsbb word ptrsi , 2080h sbb si,dx(3)減 1 指令 dec作用類似于c 語(yǔ)言中的”操作符;格式: dec opr操作: opr opr-1指令例子:dec cldec byte ptrdi+2 dec si(4)求補(bǔ)指令neg格式:negopr操作:opr 0-opr對(duì)一個(gè)操作數(shù)取補(bǔ)碼相當(dāng)于用0 減去此操作數(shù),故利用neg 指令可得到負(fù)數(shù)
27、的肯定值;例:如 al=0fch ,就執(zhí)行neg al 后,al=04h , cf=1(5)比較指令cmp格式:cmpdest, src操作:dest-src11 / 46微機(jī)原理與接口技術(shù)cmp 也是執(zhí)行兩個(gè)操作數(shù)相減,但結(jié)果不送目標(biāo)操作數(shù),其結(jié)果只反映在標(biāo)志位上;指令例子:cmpal , 0ah cmpcx , si cmpdi , bx+03(6)非壓縮bcd 碼減法調(diào)整指令aas對(duì) al 中由兩個(gè)非壓縮的bcd碼相減的結(jié)果進(jìn)行調(diào)整;調(diào)整操作為:如 al 的低 4 位 9 或 af=1, 就: al al-6,ah ah-1,af 1 al 的高 4 位清零 cf af否就: al 的高
28、 4 位清零(7)壓縮 bcd碼減法調(diào)整指令das對(duì) al 中由兩個(gè)壓縮bcd碼相減的結(jié)果進(jìn)行調(diào)整;調(diào)整操作為:如 al 的低 4 位 9 或 af=1, 就:al al-6,且 af 1如 al 的高 4 位 9 或 cf=1,就: al al-60h ,且 cf 1das對(duì) of無(wú)定義 , 但影響其余標(biāo)志位;das指令要求跟在減法指令之后;3、 乘法指令進(jìn)行乘法時(shí): 8 位*8 位 16 位乘積16 位*16 位 32 位乘積1無(wú)符號(hào)數(shù)的乘法指令mulmem/reg格式: mulsrc操作:字節(jié)操作數(shù)ax al× src字操作數(shù)dx, ax ax ×src指令例子:mu
29、l bl; al × bl, 乘積在 ax中 mul cx; ax × cx, 乘積在 dx,ax中 mul byte ptrbx(2)有符號(hào)數(shù)乘法指令imul格式與 mul 指令類似,只是要求兩操作數(shù)均為有符號(hào)數(shù) ;指令例子:imulbl; ax al ×bl imulword ptrsi ; dx,ax ax ×si+1si12 / 46微機(jī)原理與接口技術(shù)留意: mul/imul指令中 alax 為隱含的乘數(shù)寄存器; axdx,ax 為隱含的乘積寄存器; src 不能為立刻數(shù); 除 cf 和 of外,對(duì)其它標(biāo)志位無(wú)定義;4、除法指令進(jìn)行除法時(shí): 16
30、 位/8 位 8 位商32 位/16 位 16 位商對(duì)被除數(shù)、商及余數(shù)存放有如下規(guī)定:被除數(shù)商余數(shù)字節(jié)除法axalah字除法dx:axaxdx(1)無(wú)符號(hào)數(shù)除法指令div格式: divsrc操作:字節(jié)操作al ax / src的商ahax / src的余數(shù)字操作ax dx, ax / src的商dx dx, ax / src的余數(shù)指令例子:div cldiv word ptrbx(2)有符號(hào)數(shù)除法指令idiv格式:idivsrc操作與 div 類似;商及余數(shù)均為有符號(hào)數(shù),且余數(shù)符號(hào)總是與被除數(shù)符號(hào)相同;留意 : 對(duì)于 div/idiv指令axdx,ax為隱含的被除數(shù)寄存器; alax 為隱含的
31、商寄存器;ahdx 為隱含的余數(shù)寄存器;src 不能為立刻數(shù);對(duì)全部條件標(biāo)志位均無(wú)定關(guān)于除法操作中的字長(zhǎng)擴(kuò)展問(wèn)題.除法運(yùn)算要求被除數(shù)字長(zhǎng)是除數(shù)字長(zhǎng)的兩倍,如不滿意就需 對(duì)被除數(shù)進(jìn)行擴(kuò)展,否就產(chǎn)生錯(cuò)誤;.對(duì)于無(wú)符號(hào)數(shù)除法擴(kuò)展,只需將ah 或 dx 清零即可;.對(duì)有符號(hào)數(shù)而言,就是符號(hào)位的擴(kuò)展;可使用前面介紹過(guò)的符號(hào)擴(kuò)展指令cbw 和 cwd三、規(guī)律運(yùn)算和移位指令1、規(guī)律運(yùn)算指令(1)規(guī)律與and13 / 46微機(jī)原理與接口技術(shù)對(duì)兩個(gè)操作數(shù)進(jìn)行按位規(guī)律“與”操作;格式: anddest, src用途:保留操作數(shù)的某幾位,清零其他位;例 1:保留 al 中低 4 位,高 4 位清 0;and al,
32、0fh(2)規(guī)律或or對(duì)兩個(gè)操作數(shù)進(jìn)行按位規(guī)律”或”操作;格式: ordest, src用途:對(duì)操作數(shù)的某幾位置1;對(duì)兩操作數(shù)進(jìn)行組合;例 1:把 al 中的非壓縮bcd 碼變成相應(yīng)十進(jìn)制數(shù)的ascii 碼;oral, 30h(3)規(guī)律非not對(duì)操作數(shù)進(jìn)行按位規(guī)律”非”操作;格式: notmem/reg例: notcxnotbyte ptrdi(4)規(guī)律異或xor對(duì)兩個(gè)操作數(shù)按位進(jìn)行”異或”操作;格式: xor dest, src用途:對(duì)reg 清零 自身異或 把 reg/mem 的某幾位變反 與 1異或 例 1:把 ax寄存器清零; mov ax,0 xor ax,ax and ax,0 s
33、ub ax,ax(5)測(cè)試指令test操作與 and 指令類似 ,但不將 ”與”的結(jié)果送回 ,只影響標(biāo)志位;test 指令常用于位測(cè)試,與條件轉(zhuǎn)移指令一起用;例:測(cè)試 al 的內(nèi)容是否為負(fù)數(shù);testal,80h;檢查 al 中 d7=1? jnzminus;是 1負(fù)數(shù) ,轉(zhuǎn) minus ;否就為正數(shù)2、移位指令1 非循環(huán)移位指令算術(shù)左移指令salshift arithmetic left14 / 46微機(jī)原理與接口技術(shù)算術(shù)右移指令sarshift arithmetic right規(guī)律左移指令shlshift left規(guī)律右移指令shrshift right這 4 條指令的格式相同,以 sal
34、 為例:cl;移位位數(shù)大于1 時(shí)salmem/reg1;移位位數(shù)等于1 時(shí)算術(shù)移位 把操作數(shù)看做有符號(hào)數(shù);規(guī)律移位 把操作數(shù)看做無(wú)符號(hào)數(shù);移位位數(shù)放在cl 寄存器中,假如只移1 位,也可以直接寫(xiě)在指令中;例如:movcl,4shral,cl;al 中的內(nèi)容右移4 位影響 c,p,s,z,o 標(biāo)志;結(jié)果未溢出時(shí):左移 1 位操作數(shù) *2右移 1 位操作數(shù) /2例:把 al 中的數(shù) x 乘 10由于 10=8+2=2 3+2 1,所以可用移位實(shí)現(xiàn)乘10 操作;程序如下:movcl,3salal,1; 2xmovah,alsalal,1; 4xsalal,1; 8xaddal,ah; 8x+2x =
35、 10 x四、掌握轉(zhuǎn)移指令1、 轉(zhuǎn)移指令(1)無(wú)條件轉(zhuǎn)移指令jmp格式: jmp label本指令無(wú)條件轉(zhuǎn)移到指定的目標(biāo)地址,以執(zhí)行從該地址開(kāi)頭的程序段;(2)條件轉(zhuǎn)移指令(補(bǔ)充內(nèi)容) 依據(jù)單個(gè)標(biāo)志位設(shè)置的條件轉(zhuǎn)移指令jb/jc;低于 ,或 cf=1, 就轉(zhuǎn)移 jnb/jnc/jae;高于或等于,或 cf=0, 就轉(zhuǎn)移 jp/jpe;奇偶標(biāo)志pf=1 偶, 就轉(zhuǎn)移 jnp/jpo;奇偶標(biāo)志pf=0 奇 ,就轉(zhuǎn)移 jz/je;結(jié)果為零 zf=1, 就轉(zhuǎn)移 jnz/jne;結(jié)果不為零 zf=0, 就轉(zhuǎn)移 js; sf=1,就轉(zhuǎn)移jns;sf=0, 就轉(zhuǎn)移15 / 46微機(jī)原理與接口技術(shù)jo; of
36、=1,就轉(zhuǎn)移jno; of=0,就轉(zhuǎn)移依據(jù)組合條件設(shè)置的條件轉(zhuǎn)移指令 這類指令主要用來(lái)判定兩個(gè)數(shù)的大??;判定無(wú)符號(hào)數(shù)的大小ja高于就轉(zhuǎn)移條件為 : cf=0 zf=0 ,即 a bjna/jbe低于或等于就轉(zhuǎn)移條件為 : cf=1 zf=1 ,即 a b jba<b 就轉(zhuǎn)移jnba b 就轉(zhuǎn)移判定有符號(hào)數(shù)的大小jg ;大于就轉(zhuǎn)移 a b條件為 : sf of=0 zf=0jge;大于或等于就轉(zhuǎn)移a b條件為 : sf of=0 zf=1jle;小于或等于就轉(zhuǎn)移a b條件為 : sf of=1 zf=1jl;小于就轉(zhuǎn)移a b條件為 : sf of=1 zf=02、循環(huán)掌握指令用在循環(huán)程序中
37、以確定是否要連續(xù)循環(huán);循環(huán)次數(shù)通常置于cx 中;轉(zhuǎn)移的目標(biāo)應(yīng)在距離本指令-128 +127 的范疇之內(nèi);循環(huán)掌握指令不影響標(biāo)志位;1loop格式: looplabel操作: cx-1 cx ;如cx 0,就轉(zhuǎn)至 label 處執(zhí)行 ;否就退出循環(huán) ,執(zhí)行 loop 后面的指令;loop 指令與下面的指令段等價(jià):deccxjnzlabel3、過(guò)程調(diào)用指令(1)調(diào)用指令call一般格式: callsub;sub 為子程序的入口4、中斷指令1int n執(zhí)行類型 n 的中斷服務(wù)程序,n=0 25516 / 46微機(jī)原理與接口技術(shù)五、處理器掌握指令1、標(biāo)志位操作(1) cf 設(shè)置指令clc0 cfstc
38、1 cfcmccf 變反(2) df 設(shè)置指令cld0 df 串操作的指針移動(dòng)方向從低到高 std1 df 串操作的指針移動(dòng)方向從高到低(3) if 設(shè)置指令cli0 if 禁止 intr 中斷 sti1 if 開(kāi)放 intr 中斷 2、 hlt ( halt)執(zhí)行 hlt 指令后, cpu 進(jìn)入暫停狀態(tài);第四章8086 匯編語(yǔ)言程序設(shè)計(jì)第一節(jié)偽指令cpu 指令與偽指令之間的區(qū)分:1 cpu 指令是給cpu 的命令,在運(yùn)行時(shí)由cpu 執(zhí)行,每條指令對(duì)應(yīng)cpu 的一種特定的操作;而偽指令是給匯編程序的命令,在匯編過(guò)程中由匯編程序進(jìn)行處理;2 匯編以后, 每條 cpu 指令產(chǎn)生一一對(duì)應(yīng)的目標(biāo)代碼;
39、而偽指令就不產(chǎn)生與之相應(yīng)的目標(biāo)代碼;1、數(shù)據(jù)定義偽指令(1)數(shù)據(jù)定義偽指令的一般格式為: 變量名 偽指令操作數(shù) ,操作數(shù) db用來(lái)定義字節(jié)(byte ) dw用來(lái)定義字(word ) dd用來(lái)定義雙字(dword )(2)操作數(shù)的類型可以是:常數(shù)或常數(shù)表達(dá)式例如:data_bytedb 10,5,10h data_worddw 100h,100,-4 data_dwdd 2*30,0fffbh可以為字符串(定義字符串最好使用db )例如: char1 db ab可以為變量可以為?號(hào)操作符例如: xdb5,?, 6?號(hào)只是為了給變量保留相應(yīng)的儲(chǔ)備單元,而不給予變量某個(gè)確定的初值;重復(fù)次數(shù): n
40、dup (初值 ,初值)例如: zero db 2 dup( 3, 5)xyzdb 2dup (0, 2 dup ( 1 , 3), 5 )在偽操作的操作數(shù)字段中如使用$,就表示的是地址計(jì)數(shù)器的當(dāng)前值;17 / 46微機(jī)原理與接口技術(shù)2、補(bǔ)充內(nèi)容:(1)類型ptr地址表達(dá)式例如:mov byte ptr bx, 12h inc byteptr bx留意:?jiǎn)尾僮鲾?shù)指令,當(dāng)操作數(shù)為基址、變址、基+變的時(shí)候必需定義3、符號(hào)定義偽指令1 equ格式:名字equ表達(dá)式equ 偽指令將表達(dá)式的值給予一個(gè)名字,以后可用這個(gè)名字來(lái)代替上述表達(dá)式;例: constantequ100new_portequport
41、_val+12=(等號(hào))與 equ 類似 ,但答應(yīng)重新定義例:emp=7;值為 7emp=emp+1;值為 83 labellabel偽指令的用途是定義標(biāo)號(hào)或變量的類型格式:名字label類型變量的類型可以是byte , word , dword ;標(biāo)號(hào)的類型可以是near 或 far4、段定義偽指令與段有關(guān)的偽指令有:segment 、ends 、assume 、org(1)段定義偽指令的格式如下:段名 segment 定位類型 組合類型 段 名 ends類別 segment 和 ends這兩個(gè)偽指令總是成對(duì)顯現(xiàn),二者前面的段名一樣;二者之間的刪節(jié)部分,對(duì)數(shù)據(jù)段、附加段及堆棧段,一般是符號(hào)、
42、變量定義等偽指令;對(duì)于代碼段就是指令及偽指令;此外,仍必需明確段和段寄存器的關(guān)系,這可由assume 語(yǔ)句來(lái)實(shí)現(xiàn);(2) ) assume格式:assume段寄存器名:段名,段寄存器名:段名,assume偽指令告知匯編程序,將某一個(gè)段寄存器設(shè)置為某一個(gè)規(guī)律段址,即明確指出源程序中規(guī)律段與物理段之間的關(guān)系;18 / 46微機(jī)原理與接口技術(shù)(3) org偽指令 org 規(guī)定了段內(nèi)的起始地址或偏移地址,其格式為:org<表達(dá)式 >表達(dá)式的值即為段內(nèi)的起始地址或偏移地址,從今地址起連續(xù)存放程序或數(shù)據(jù);5、匯編程序的一般結(jié)構(gòu)(記住) datasegmentdata ends code seg
43、mentassume cs:code,ds:data bgn:mov ax ,datamovds,ax.mov ah,4ch int21hcode endsend bgn第三節(jié)程序設(shè)計(jì)1、 次序程序的設(shè)計(jì)(略)2、 分支程序的設(shè)計(jì)典型例題:1x>0y =0x=0-1x<0程序?yàn)椋簃oval , x cmpal , 0jgebigmovy, -1 jmp exitbig : je equlmovy, 1jmpexitequl : movy , 0 exit :.3、 循環(huán)程序見(jiàn)講義;用計(jì)數(shù)掌握循環(huán)19 / 46微機(jī)原理與接口技術(shù)第一章運(yùn)算機(jī)基礎(chǔ)學(xué)問(wèn)本章的主要內(nèi)容為不同進(jìn)位計(jì)數(shù)制計(jì)數(shù)方
44、法、不同進(jìn)位制數(shù)之間相互轉(zhuǎn)換的方法、數(shù)和字符在運(yùn)算機(jī)中的表示方法、 簡(jiǎn)潔的算術(shù)運(yùn)算以及運(yùn)算機(jī)系統(tǒng)的組成;下邊將本章的學(xué)問(wèn)點(diǎn)作了歸類,圖1 為本章的學(xué)問(wèn)要點(diǎn)圖,圖1.2 為運(yùn)算機(jī)系統(tǒng)組成的示意圖;數(shù)制本章知碼制識(shí)要二進(jìn)制數(shù) b 八進(jìn)制數(shù) q 十六進(jìn)制數(shù) h 十進(jìn)制數(shù) d b帶符號(hào)數(shù)編碼奇偶校驗(yàn)碼原碼反碼補(bǔ)碼奇校驗(yàn)碼偶校驗(yàn)碼數(shù)字編碼規(guī)章點(diǎn)字符編碼ascii 碼bcd 碼字母編碼規(guī)章 壓 縮 bcd 碼非壓縮 bcd 碼運(yùn)算機(jī)系統(tǒng)組成主機(jī)硬件運(yùn)算機(jī)外部設(shè)備系統(tǒng)中心處理器 cpu半導(dǎo)體儲(chǔ)備器輸入設(shè)備輸出設(shè)備掌握器運(yùn)算器rom ram組成系統(tǒng)軟件軟件操作系統(tǒng):如dos 、windows 、unix 、l
45、inux 等20 / 46各種運(yùn)算機(jī)語(yǔ)言處理軟件:如匯編、說(shuō)明、編譯等軟件其他系統(tǒng)軟件微機(jī)原理與接口技術(shù)其次章8086 微處理器本章要從應(yīng)用角度上懂得 8086cpu 的內(nèi)部組成、編程結(jié)構(gòu)、引腳信號(hào)功能、最小工作模式的系統(tǒng)配置、 8086 的儲(chǔ)備器組織、基本時(shí)序等概念;下面這一章學(xué)問(wèn)的結(jié)構(gòu)圖;intel 8086 微處理器系統(tǒng)配置時(shí)鐘發(fā)生器(8284)8086cpu(最小模式)地址鎖存器(74ls373、8282)本數(shù)據(jù)收發(fā)器 8286、 74ls245章三總線 db 、ab 、cb知識(shí)儲(chǔ)備器組織要點(diǎn)時(shí)序儲(chǔ)備器規(guī)律分段儲(chǔ)備器分體時(shí)鐘周期 t 狀態(tài) 基本讀總線周期基本寫(xiě)總線周期復(fù)位操作時(shí)序 中斷
46、響應(yīng)時(shí)序規(guī)律地址物理地址奇地址儲(chǔ)備體(bhe )偶地址儲(chǔ)備體(a0 )總線周期指令周期寄存器的復(fù)位值內(nèi)部組成執(zhí)行單元eu( ax 、bx 、cx 、dx 、sp、bp 、si、di 、標(biāo)志寄存器)總線接口單元biu ( cs、 ds、ss、 es、ip)地址 /數(shù)據(jù)引腳功能(最小模式)地址 / 狀態(tài)負(fù)責(zé)地址bhe/s7 、 ale數(shù)據(jù)答應(yīng)和收發(fā)d2e1n/ 4、6 dt/r負(fù)責(zé)讀寫(xiě)rd 、wr 、m/io負(fù)責(zé)中斷intr 、nmi 、inta掌握微機(jī)原理與接口技術(shù)第三章8086 的指令系統(tǒng)本章重點(diǎn)是 8086cpu 指令的尋址方式,每條指令的格式、功能及標(biāo)志的影響;同時(shí)仍涉及到儲(chǔ)備器單元的物理地址運(yùn)算、標(biāo)志位填寫(xiě)和堆棧操作;下圖 為本章學(xué)問(wèn)結(jié)構(gòu)圖;操作數(shù)尋址方式立刻數(shù)尋址、寄存器尋址、儲(chǔ)備器尋址.本規(guī)律地址、物理地址章指令格式知識(shí)要點(diǎn)指令功能對(duì)標(biāo)志位影響填寫(xiě)標(biāo)志位堆棧結(jié)構(gòu) 后進(jìn)先出 堆棧指針 sp堆棧操作(入棧、出棧)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 污水管道堵塞原因分析及解決方案
- 大學(xué)生志愿服務(wù)外出審批制度
- 大型活動(dòng)食材集中加工方案
- 國(guó)際學(xué)校教師管理與評(píng)價(jià)制度
- 科研機(jī)構(gòu)信息化安全應(yīng)急方案
- 環(huán)保行業(yè)信息技術(shù)提升工程工作總結(jié)
- 一年級(jí)普通話朗讀活動(dòng)方案
- 鎮(zhèn)林區(qū)可燃物管理培訓(xùn)方案
- 膜結(jié)構(gòu)工程設(shè)計(jì)與施工技術(shù)方案
- 2024-2030年中國(guó)藍(lán)寶石基片行業(yè)發(fā)展趨勢(shì)規(guī)劃研究報(bào)告
- 四肢關(guān)節(jié)病癥推拿治療-梨狀肌綜合癥患者的推拿治療
- 房產(chǎn)開(kāi)發(fā)地塊收購(gòu)項(xiàng)目可行性研究報(bào)告(完美版)
- JJF 2133-2024海洋資料浮標(biāo)傳感器校準(zhǔn)規(guī)范
- HGT 6333-2024《煤氣化灰水阻垢分散劑阻垢性能測(cè)定方法》
- 高三一?!叭松枰獙W(xué)會(huì)繞行”審題立意及范文(彩色高效版)
- 2023-2024學(xué)年江蘇省南京玄武區(qū)中考語(yǔ)文最后一模試卷含解析
- 職場(chǎng)心理學(xué)智慧樹(shù)知到期末考試答案章節(jié)答案2024年山東工商學(xué)院
- 2024中國(guó)通信服務(wù)股份限公司招聘公開(kāi)引進(jìn)高層次人才和急需緊缺人才筆試參考題庫(kù)(共500題)答案詳解版
- 中醫(yī)養(yǎng)生活動(dòng)策劃方案
- 汽車(chē)坡道玻璃雨棚施工方案
- 漫畫(huà)解讀非煤地采礦山重大事故隱患判定標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論