第一篇:微機(jī)原理指令小結(jié)
8086CPU指令小結(jié)
所有指令:
(1)立即數(shù)不能作為目的操作數(shù)。
(2)不能在2個(gè)存儲(chǔ)單元之間直接進(jìn)行操作(串操作除外)。
(3)MOV指令和堆棧指令是惟一能對(duì)段寄存器進(jìn)行操作的指令。(4)源和目的操作數(shù)的數(shù)據(jù)類型必須匹配,都是8位,或都是16位。(5)CS、IP不能直接作為操作數(shù)。(6)指令中至少要有一項(xiàng)明確說明傳送的是字節(jié)還是字,如果沒有,可通過PTR進(jìn)行設(shè)置。
一、傳送指令
(1)6種指令:通用傳送指令、堆棧操作指令、交換操作指令、I/O操作指令、目的地址傳送指令和標(biāo)志傳送指令。
(2)對(duì)標(biāo)志位的影響:除標(biāo)志傳送(SAHF、POPF)外,均不影響標(biāo)志位。(3)操作數(shù)表示方法:立即數(shù)——data,存儲(chǔ)器單元地址——mem,寄存器——reg,段寄存器——segreg。
1.通用傳送指令:完成數(shù)據(jù)傳送
(1)指令格式:MOV OPRD1,OPRD2 ;[目的操作數(shù)OPRD1]← [源操作數(shù)OPRD2](2)源OPRD2: data、mem、reg、segreg。(3)目的OPRD1: mem、reg、segreg。
(4)通用傳送指令MOV和堆棧指令是唯一允許以段寄存器(代碼段寄存器CS和指令指針I(yè)P除外,即CS、IP不能作為直接操作數(shù))作為操作數(shù)的指令,不允許通過MOV指令直接以立即數(shù)方式給段寄存器賦值,不允許直接在兩個(gè)段寄存器之間直接進(jìn)行傳送。
(5)8位/16位操作。
2.堆棧操作指令:將數(shù)據(jù)壓入/彈出堆棧(1)指令格式:
入棧:PUSH OPRD;先修改堆棧指針SP-2,然后將數(shù)據(jù)壓入堆棧。
;SP =SP-1,[SP]=操作數(shù)高8位; SP =SP-1,[SP]= 操作數(shù)低8位。出棧:POP OPRD; 先將數(shù)據(jù)彈出堆棧,然后修改堆棧指針SP+2。
;(操作數(shù)低8位)←[SP],SP =SP+1;(操作數(shù)高8位)←[SP],SP =SP+1。(2)操作數(shù):mem、reg、segreg。操作數(shù)不能是立即數(shù)data。(3)僅能進(jìn)行字運(yùn)算(16位操作)。
(4)堆棧存取原則為后進(jìn)先出,只有一個(gè)入/出口SS:SP,SP始終指向棧頂,SP是自動(dòng)修改的,SP在初始化中需要設(shè)置。
(5)PUSH、POP指令必須成對(duì)使用。
3.交換操作指令:XCHG——數(shù)據(jù)交換;XLAT——完成一個(gè)字節(jié)的換碼轉(zhuǎn)換(1)指令格式:
交換操作指令: XCHG OPRD1,OPRD2;[OPRD1]←→ [OPRD2] 累加器換碼指令(表轉(zhuǎn)換指令、查表指令):XLAT;(AL)←((DS)×16+(BX)+(AL))(2)XCHG:段寄存器和立即數(shù)不能作為一個(gè)操作數(shù),8位/16位操作。
(3)XLAT:表首地址在BX中,AL的內(nèi)容作為某一項(xiàng)到表首的偏移量(256字節(jié)的 1 表的下標(biāo)),轉(zhuǎn)換后的結(jié)果存放在AL中。
4.I/O操作指令:累加器(AX/AL)與I/O端口之間的數(shù)據(jù)傳送(1)指令格式:
輸入指令:IN AL/ AX,PORT;(AL/ AX)← [PORT]
IN AL/ AX,DX
;(AL/ AX)← [DX]
輸出指令:OUT PORT,AL/ AX ;[PORT]←(AL/ AX)
OUT DX,AL/ AX
;[DX]←(AL/ AX)
(2)當(dāng)端口地址≤ 255時(shí),使用PORT(8位端口直接地址);當(dāng)端口地址≥255時(shí),必須用DX(16位端口直接地址)作橋梁。DX作端口尋址最多可尋找64K個(gè)端口。
(3)PORT為直接尋址,8位/16位操作。5.目的地址傳送指令
(1)取有效地址指令:LEA OPRD1,OPRD2
或: LEA reg,[add] ;(reg)← add,add為有效地址
把存儲(chǔ)器的有效地址EA(源操作數(shù)的地址偏移量)送入一個(gè)寄存器reg;常用于將一個(gè)16位的通用寄存器作為地址指針。傳送的是有效地址EA。(2)將雙地址指針裝入DS和另一個(gè)寄存器指令LDS指令:
LDS OPRD1,OPRD2
或: LDS
reg,[add] ;(reg)←(add+1)(add),(DS)←(add+3)(add +2)(3)將雙地址指針裝入ES和另一個(gè)寄存器指令LES指令:
LES OPRD1,OPRD2
或: LES
reg,[add] ;(reg)←(add+1)(add),(ES)←(add+3)(add +2)
① 從源操作數(shù)指定的存儲(chǔ)單元中取出4字節(jié)的地址指針(包括2字節(jié)的段地址和2字節(jié)的偏移量)傳送到DS/ES和reg。指定將段地址送入DS/ES,偏移量部分送入一個(gè)16位的指針寄存器或變址寄存器。
② 源操作數(shù)mem,目的操作數(shù)必須是一個(gè)16位的通用寄存器。③ 傳送的是存儲(chǔ)單元的內(nèi)容,而不是存儲(chǔ)器的有效地址EA。6.標(biāo)志傳送指令
(1)讀標(biāo)志指令:LAHF;(AH)←(FR)0~7
功能:將標(biāo)志寄存器中的SF、ZF、AF、PF和CF(即低8位)傳送至AH寄存器的指定位,空位沒有定義。
(2)存標(biāo)志指令:SAHF;(FR)0~7 ←(AH)
功能:將寄存器AH的指定位,送至標(biāo)志寄存器的SF、ZF、AF、PF和CF位(即低8位)。根據(jù)AH的內(nèi)容,影響上述標(biāo)志位,對(duì)OF、DF、IF和TF無影響。
(3)標(biāo)志入棧指令:PUSHF;將FR入棧。(SP)←(SP)-2,((SP)+1,(SP))←(FR)功能:將標(biāo)志寄存器FR壓入堆棧頂部,同時(shí)修改堆棧指針,不影響標(biāo)志位。(4)標(biāo)志彈出棧指令:POPF;將棧頂?shù)膬?nèi)容彈出到FR中。
;(FR)←((SP)+1,(SP)),(SP)←(SP)+ 2
功能:堆棧頂部的一個(gè)字,傳送到標(biāo)志寄存器FR,同時(shí)修改堆棧指針,影響標(biāo)志位。
二、算術(shù)運(yùn)算指令
(1)9種指令:加法指令、減法指令、增量//減量指令、求補(bǔ)指令、比較指令、乘法指令、除法指令、字節(jié)字/轉(zhuǎn)換為字?jǐn)U展指令和十進(jìn)制調(diào)整指令。
(2)對(duì)標(biāo)志位的影響:
① 加、減、比較指令(CMP)、取補(bǔ)指令(NEG)指令均影響6個(gè)標(biāo)志位CF、OF、PF、SF、ZF和AF。
② 乘法指令影響CF和OF標(biāo)志;除法指令所有標(biāo)志位都不確定,無意義。
③ 增量//減量指令影響除進(jìn)位標(biāo)志CF以外的5個(gè)標(biāo)志位AF、OF、PF、SF和ZF。④ 字節(jié)字/轉(zhuǎn)換為字?jǐn)U展指令不影響標(biāo)志位。
⑤ 加法的ASCII調(diào)整指令A(yù)AA,十進(jìn)制調(diào)整指令 DAA影響除溢出標(biāo)志OF以外5個(gè)標(biāo)志: CF、PF、SF、ZF和AF;OF沒有意義。
⑥ 減法的ASCII調(diào)整指令 AAS、十進(jìn)制調(diào)整指令 DAS影響 2個(gè)標(biāo)志:CF和AF;其余標(biāo)志沒有意義。
⑦ 乘法的ASCII調(diào)整指令A(yù)AM、除法的ASCII調(diào)整指令A(yù)AD 根據(jù)AL寄存器的結(jié)果影響SF、ZF和PF。
1.加法指令(Addition):完成加法操作。(1)格式:ADD/ ADC
OPRD1,OPRD2 ;(OPRD1)←(OPRD1)+(OPRD2)(2)源: data、mem、reg;目的:reg,mem。(3)ADC指令主要用于多字節(jié)運(yùn)算中。(4)8位/16位操作。
2.減法指令(Subtraction):完成減法操作。(1)格式:SUB/ SBB OPRD1,OPRD2;(OPRD1)←(OPRD1)-(OPRD2)(2)規(guī)定同加法指令。
3.增量(加1)/減量(減1)指令I(lǐng)NC/ DEC:完成+1/-1操作。(1)格式:INC/ DEC OPRD;(OPRD)←(OPRD)±1
(2)功能:主要用于在循環(huán)程序中修改地址指針和循環(huán)次數(shù)等。(3)操作數(shù):reg、mem。
4.求補(bǔ)指令NEG:完成補(bǔ)碼操作。(1)格式:NEG OPRD(2)操作數(shù):reg、:mem。
5.比較指令CMP:完成減法操作,結(jié)果不回送,反映在標(biāo)志位上。(1)格式:CMP OPRD1,OPRD2;(OPRD1)-(OPRD2)
(2)功能:主要用于比較兩個(gè)數(shù)之間的關(guān)系。在比較指令之后,根據(jù)標(biāo)志即可判斷兩者之間的關(guān)系。減法操作,結(jié)果不回送目的操作數(shù)。
(3)兩數(shù)關(guān)系的判斷標(biāo)志 ① A=B 用 ZF=1 判斷;
② 兩個(gè)無符號(hào)數(shù)的大小用CF判斷。CF=1,AB。
③ 兩個(gè)符號(hào)數(shù)的大小用SF⊕OF判斷。SF⊕OF=1,AB。
JG/JNLE(大于,SF⊕OF=0且 ZF=0)JL/JNGE(小于,SF⊕OF=1且 ZF=0)6.乘法指令MUL/ IMUL:完成無符號(hào)乘法/帶符號(hào)(整數(shù))乘法操作。(1)格式:MUL/ IMUL OPRD ;8位:(AX)←(AL)╳(OPRD)
;16位:(DX)(AX)←(AX)╳(OPRD)
(2)源操作數(shù):reg、mem,由指令給出。(3)目的操作數(shù):默認(rèn)在AL/AX中。
(4)帶符號(hào)數(shù)乘法指令I(lǐng)MUL當(dāng)結(jié)果的高半部分不是結(jié)果的低半部分的符號(hào)擴(kuò)展時(shí),標(biāo)志位CF和OF將置位。
(6)可完成字節(jié)與字節(jié)乘法、字與字乘法操作。7.除法指令DIV/ IDIV:完成無符號(hào)除法/帶符號(hào)(整數(shù))除法操作。
(1)格式:DIV/ IDIV OPRD; 8位:(AL)←(AX)/(OPRD)……(AH)(余數(shù))
;16位:(AX)←(DX)(AX)/(OPRD)……(DX)(余數(shù))(2)源/目的操作數(shù)規(guī)定同乘法指令。
(3)對(duì)于符號(hào)數(shù),當(dāng)被除數(shù)不夠位數(shù)時(shí),需要對(duì)高8/16位進(jìn)行擴(kuò)展符號(hào)擴(kuò)展。
8.字節(jié)字/轉(zhuǎn)換為字?jǐn)U展指令CBW/CWD:將AL/AX寄存器的最高位擴(kuò)展到AH/DX。(1)格式:CBW/CWD(2)功能:將AL/AX寄存器的最高位擴(kuò)展到AH/DX,AL.7(AX.15)=0,則AH(DX)=0;AL.7(AX.15)= 1,則AH=0FFH(DX=0FFFFH)。
9.十進(jìn)制調(diào)整指令
(1)壓縮BCD碼:每個(gè)字節(jié)表示兩位BCD數(shù);
非壓縮BCD碼:用一個(gè)字節(jié)表示一位BCD數(shù),在這字節(jié)的高四位用0填充。
(2)每條十進(jìn)制調(diào)整指令在使用時(shí)都與相應(yīng)的算術(shù)運(yùn)算指令配合,并自動(dòng)對(duì)相應(yīng)的算術(shù)運(yùn)算指令結(jié)果進(jìn)行相應(yīng)的十進(jìn)制調(diào)整。
(3)格式:
① DAA:壓縮的BCD碼加法調(diào)整
② DAS:壓縮的BCD碼減法調(diào)整 ③ AAA:非壓縮的BCD碼加法調(diào)整 ④ AAS:非壓縮的BCD碼減法調(diào)整 ⑤ AAM:乘法后的BCD碼調(diào)整
⑥ AAD:除法前的BCD碼調(diào)整
三、邏輯運(yùn)算和移位指令
1.邏輯運(yùn)算指令
(1)5種指令:邏輯與、或、非、異或和測(cè)試指令。(2)指令格式
① 邏輯與指令A(yù)ND OPRD1,OPRD2;(OPRD1)←(OPRD1)∧(OPRD2)
② 邏輯或指令OR OPRD1,OPRD2;
(OPRD1)←(OPRD1)∨(OPRD2)
③ 邏輯非指令 NOT OPRD;
(OPRD)←(/OPRD)④ 邏輯異或指令XOR OPRD1,OPRD2;(OPRD1)←(OPRD1)⊕(OPRD2)⑤ 測(cè)試指令TEST OPRD1,OPRD2 ;
(OPRD1)∧(OPRD2),結(jié)果不回送。(3)操作數(shù)范圍
源操作數(shù)為reg、mem、data;目的操作數(shù)為reg、mem(NOT指令只有一個(gè)操作數(shù))。單操作數(shù)指令NOT的操作數(shù)不能為立即數(shù)。雙操作數(shù)邏輯指令中,必須有一個(gè)操作數(shù)為寄存器尋址方式,且目的操作數(shù)不能為立即數(shù)。
(4)功能:實(shí)現(xiàn)相應(yīng)的邏輯功能。
① 與指令可實(shí)現(xiàn)屏蔽(復(fù)位)數(shù)據(jù)的某些位(使一個(gè)字或字節(jié)中的某些位清0,而其余位不變),提取某些位或拆字。
② 或指令可實(shí)現(xiàn)置位數(shù)據(jù)的某些位(使一個(gè)字或字節(jié)中的某些位置1,而其余位不變),拼字。
③ 非指令常用于使某個(gè)數(shù)取反,或取反后+1而得補(bǔ)碼。
④ 異或指令可實(shí)現(xiàn)某個(gè)寄存器清0,或使目的操作數(shù)的某些位取反(使一個(gè)字或字節(jié)中的某些位取反,而其余位不變)。
⑤ 測(cè)試指令通常用于測(cè)試。目的操作數(shù)的某些位是1還是0,用ZF標(biāo)志判斷。
4(5)對(duì)標(biāo)志位的影響
① 邏輯與、或、異或和測(cè)試指令影響ZF,PF,SF標(biāo)志;CF=0,OF=0;AF無意義。② 邏輯非指令不影響標(biāo)志位。2.移位指令
(1)4組8種指令:算術(shù)移位SA,邏輯移位SH,循環(huán)移位RO,帶進(jìn)位位的循環(huán)移位RC。右移R,左移L。
(2)指令格式:操作碼 OPRD,M M =1時(shí),只移1位; M>1時(shí),可將指令格式中的CNT改為CL寄存器,并在移位指令前將移位次數(shù)預(yù)先送入CL寄存器中。
(3)功能:將OPRD的內(nèi)容移位M次。算術(shù)移位適用于帶符號(hào)數(shù)的×2,÷2。邏輯移位適用于無符號(hào)數(shù)的×2,÷2。
(4)操作數(shù)范圍: reg、mem。
(5)對(duì)標(biāo)志位的影響:
① 算術(shù)/邏輯移位指令影響CF、SF、ZF、PF標(biāo)志,在移1位時(shí),影響OF標(biāo)志。不影響AF標(biāo)志。
② 循環(huán)移位指令只影響CF、OF標(biāo)志,不影響其他標(biāo)志位。
CF MSB LSB 0 SHL/SAL算術(shù)/邏輯左移 CF 0 CF MSB LSB SHR邏輯右移 MSB LSB SAR算術(shù)右移
CF MSB LSB ROL循環(huán)左移 CF MSB LSB ROR循環(huán)右移 CF MSB LSB RCL通過進(jìn)位的循環(huán)左移 CF MSB LSB RCR通過進(jìn)位的循環(huán)右移
四、串操作類指令
(1)5種指令:串傳送MOVS,串比較CMPS,串搜索SCAS,存串STOS,取串LODS。(2)指令格式:操作碼
DST,SRC MOVSB(字節(jié))/MOVSW(字)
① 串傳送MOVS DST,SRC;[(ES:DST)]←[(DS:SRC)]
MOVSB;
[(ES:DI)]←[(DS:SI)],SI=SI±1,DI=DI±1
MOVSW;
[(ES:DI)]←[(DS:SI)],[(ES:DI+1)]←[(DS:SI+1)],SI=SI±2,DI=DI±2
② 串比較CMPS DST,SRC;
[(ES:DI)]-[(DS:SI)];SI=SI±1,DI=DI±1
③ 串搜索SCAS DST;
AL← [(ES:DI)]];DI=DI±1 ④ 存串STOS DST;
[(ES:DI)] ← AL;DI=DI±1 ⑤ 取串LODS SRC;
AL ←[(DS:SI)];SI=SI±1 字操作與字節(jié)操作類似,AL——AX。(3)功能
根據(jù)方向標(biāo)志DF及所傳送數(shù)據(jù)的類型(字節(jié)/字)對(duì)SI及DI進(jìn)行修改,在指令重復(fù)前綴REP的控制下實(shí)現(xiàn)。
① 串傳送:把數(shù)據(jù)段中由SI間接尋址的一個(gè)字節(jié)/字傳送到附加段中由DI間接尋址的一個(gè)字節(jié)/字單元中。
② 串比較:把數(shù)據(jù)段中由SI間接尋址的一個(gè)字節(jié)/字與附加段中由DI間接尋址的一個(gè)字節(jié)/字進(jìn)行比較操作,使比較的結(jié)果影響標(biāo)志位??稍趦蓚€(gè)數(shù)據(jù)串中尋找第一個(gè)不相等的字節(jié)/字,或者第一個(gè)相等的字節(jié)/字。
③ 串搜索:用指令指定的關(guān)鍵字節(jié)/字(分別存放在AL/AX中),與附加段中由DI間接尋址的字節(jié)串中的一個(gè)字節(jié)進(jìn)行比較操作,使比較的結(jié)果影響標(biāo)志位??稍谥付ǖ臄?shù)據(jù)串中搜索第一個(gè)與關(guān)鍵字節(jié)匹配(或者不匹配)的字節(jié)。
④ 存串:把指令中指定的字節(jié)(或字)串(存放在AL/AX中)傳送到附加段中由DI間接尋址的字節(jié)內(nèi)存單元中??蛇B續(xù)將AL(或AX)的內(nèi)容存入到附加段中的一段內(nèi)存區(qū)域中去,該指令不影標(biāo)志位。
⑤ 取串:從串中取指令實(shí)現(xiàn)從指定的字節(jié)(或字)串中讀出信息的操作。(4)規(guī)定
① 串操作類指令是唯一的一組源和目的操作數(shù)均在存儲(chǔ)單元的指令。源串在數(shù)據(jù)段,目的串在附加段。各指令所使用的默認(rèn)寄存器是:源串地址DS:SI;目的串地址ES:DI;字串長(zhǎng)度CX;存取或搜索的默認(rèn)值
AL
② 串操作時(shí),地址的修改由方向標(biāo)志確定。
CLD;DF=0,SI/DI地址作自動(dòng)增量(自動(dòng)+1)修改; STD;DF=1,SI/DI地址作自動(dòng)減量(自動(dòng)-1)修改。
③ 任何一個(gè)串操作指令均可在指令前面加上一個(gè)重復(fù)操作作為前綴,于是就重復(fù)執(zhí)行,直至CX、ZF滿足要求為止。
④ 重復(fù)指令前綴
REP;①若(CX)=0,則退出; ② CX=CX-1;③執(zhí)行后續(xù)指令;④重復(fù)①----③
REPE/REPZ;①若(CX)=0或ZF=0,則退出;②CX=CX-1;③執(zhí)行后續(xù)指令;④重復(fù)①----③ REPNE/REPNZ;①若(CX)=0或ZF=1,則退出;②CX=CX-1;③執(zhí)行后續(xù)指令;④重復(fù)①----③
五、控制轉(zhuǎn)移類指令——改變指令執(zhí)行順序的指令
(1)6種指令:無條件轉(zhuǎn)移指令、子程序調(diào)用和返回指令、條件轉(zhuǎn)移指令、循環(huán)控制指令、中斷指令、處理器控制命令。
(2)概念
①直接轉(zhuǎn)移:轉(zhuǎn)移的目的地址(標(biāo)號(hào))直接出現(xiàn)在指令碼中。
②間接轉(zhuǎn)移:轉(zhuǎn)移的目的地址間接存儲(chǔ)于某一個(gè)寄存器或某一個(gè)內(nèi)存變量中。
③段內(nèi)轉(zhuǎn)移/調(diào)用:轉(zhuǎn)移的目的地址和本條指令在同一代碼段中,轉(zhuǎn)移時(shí)只改變IP,不改變CS。程序轉(zhuǎn)向的有效地址EA等于當(dāng)前IP的內(nèi)容加上8/16位位移量。可分為:
段內(nèi)近轉(zhuǎn)移NEAR ——16位位移量,適用于無條件轉(zhuǎn)移指令和條件轉(zhuǎn)移指令,轉(zhuǎn)移范圍為-32768----+32768。
段內(nèi)短轉(zhuǎn)移SHORT ——8位位移量,適用于條件轉(zhuǎn)移指令,轉(zhuǎn)移范圍為-128----+127。
④段間轉(zhuǎn)移/調(diào)用(遠(yuǎn)轉(zhuǎn)移FAR):轉(zhuǎn)移的目的地址和本條指令不在同一代碼段中,轉(zhuǎn)移時(shí)同時(shí)改變CS和IP內(nèi)容,即程序轉(zhuǎn)移到另一個(gè)代碼段。
1.無條件轉(zhuǎn)移指令
JMP [轉(zhuǎn)移方式]OPRD;轉(zhuǎn)移到OPRD所指向的存儲(chǔ)器單元處執(zhí)行程序(1)段內(nèi)直接短轉(zhuǎn)移指令JMP SHORT OPRD;(IP)←(IP)+ OPRD
(2)段內(nèi)直接近轉(zhuǎn)移指令JMP
NEAR PTR
OPRD;(IP)←(IP)+ OPRD(3)段內(nèi)間接轉(zhuǎn)移指令JMP WORD PTR
OPRD;(IP)← [EA](4)段間直接(遠(yuǎn))轉(zhuǎn)移指令JMP FAR PTR OPRD;(IP)←OPRD的段內(nèi)偏移地址,(CS)←OPRD所在的段地址。OPRD為直接尋址方式。
(5)段間間接轉(zhuǎn)移指令JMP DWORD PTR OPRD;(IP)← [EA],(CS)← [EA+2] 2.條件轉(zhuǎn)移指令
指令助記符
目的地址
(1)標(biāo)志條件轉(zhuǎn)移指令助記符:J/JN+標(biāo)志(C, P, S, S, O);
(2)比較條件轉(zhuǎn)移指令助記符:J/JN+比較符(A高于, B低于, E等于, G大于, L小于)(3)無符號(hào)數(shù)比較:測(cè)試標(biāo)志位為CF、ZF,分高于A、等于E、低于B等3種情況:ZF=1,等于;CF=0,大于。
(4)符號(hào)數(shù)比較:測(cè)試標(biāo)志位為ZF、OF和SF,分大于G、等于E、小于L等3種情況:ZF=1,等于;SF⊕OF =0,大于。
3.子程序調(diào)用和返回指令(1)子程序(過程)調(diào)用指令
CALL 子程序名 DST ①段內(nèi)調(diào)用: CALL NEAR PTR OPRD ;(SP)←(SP)-2,((SP)-2)((SP)-1)←(IP),(IP)←子程序DST的地址(即:IP+16位位移)
②段間調(diào)用:CALL FAR PTR OPRD ;(SP)←(SP)-2,((SP)-2)((SP)-1)=(CS),(SP)←(SP)-2,((SP)-2)((SP)-1)=(IP),(IP)=[EA],(CS)=[EA+2](2)子程序返回指令
RET;段內(nèi)返回(IP)←((SP)+1,SP),(SP)←
(SP)+ 2
;段間返回(IP)←((SP)+1,SP),(SP)←
(SP)+ 2
(CS)←((SP)+1,SP),(SP)←
(SP)+ 2 4.循環(huán)控制指令
對(duì)CX或標(biāo)志位ZF進(jìn)行測(cè)試,確定是否循環(huán)。(1)LOOP OPRD(短標(biāo)號(hào));(CX)←(CX)-1,若CX≠ 0,則循環(huán),否則順序執(zhí)行。
(2)LOOPNZ/LOOPNE OPRD;(CX)←(CX)-1,若CX≠0和ZF=0,則循環(huán),否則順序執(zhí)行。(3)LOOPZ/LOOPE OPRD;(CX)←(CX)-1,若CX≠0 和ZF=1,則循環(huán),否則順序執(zhí)行。(4)JCXZ OPRD;(CX)←(CX)-1,若CX=0,則循環(huán),否則順序執(zhí)行。5.中斷指令(1)INT n;(SP)←(SP)-2,((SP)-2)((SP)-1)←(FR),F(xiàn)R入棧
;(SP)←(SP)-2,((SP)-2)((SP)-1)←(CS),CS入棧 ;(SP)←(SP)-2,((SP)-2)((SP)-1)←(IP),IP入棧 ;(IP)←(n×4),(CS)←(n×4+2),n——中斷類型號(hào)
(2)INTO;同INT 4,算術(shù)運(yùn)算溢出中斷指令
(3)中斷返回指令I(lǐng)RET;(IP)←((SP)+1 ,(SP)),(SP)←(SP)+2,IP出棧
;(CS)←((SP)+1 ,(SP)),(SP)←(SP)+2,CS出棧
;(FR)←((SP)+1 ,(SP)),(SP)←(SP)+2,F(xiàn)R出棧
6.處理器控制命令(1)標(biāo)志操作指令
清標(biāo)志位為CL,置標(biāo)志位為ST。只對(duì)CF、DF和IF三個(gè)標(biāo)志操作 CLC——清進(jìn)位標(biāo)志,CLD——清方向標(biāo)志,CLI——關(guān)中斷標(biāo)志; STC——置進(jìn)位標(biāo)志,STD——置方向標(biāo)志,STI——開中斷標(biāo)志; CMC——進(jìn)位標(biāo)志取反。(2)處理器外部同步命令
對(duì)標(biāo)志位的影響:不影響標(biāo)志位。
①暫停指令:HLT;處理器處于什么也不做的暫停狀態(tài),可由中斷請(qǐng)求、復(fù)位等喚醒繼續(xù)執(zhí)行。②等待指令:WAIT;處理器處于等待狀態(tài),CPU每隔4個(gè)時(shí)鐘周期測(cè)試一次TEST引腳線(23腳),直至TEST引腳線為有效低電平時(shí),CPU才脫離等待狀態(tài)。③交權(quán)指令:ESC;CPU將控制權(quán)交給其他協(xié)處理器,使協(xié)處理器從系統(tǒng)指令流中取得指令。
④總線封鎖指令:LOCK;可放在任一條指令前作為前綴,使CPU在執(zhí)行下一條指令期間發(fā)出總線封鎖信號(hào)(LOCK),將總線封鎖,其它的主設(shè)備不能控制總線。
⑤空操作指令:NOP;不完成任何操作,只耗費(fèi)3個(gè)時(shí)鐘周期,用于程序的延時(shí)和調(diào)試。
第二篇:微機(jī)原理與接口技術(shù)小結(jié)
微機(jī)原理與接口技術(shù)基礎(chǔ)
1.為什么在流水CPU中,將一條指令從取指到執(zhí)行結(jié)束的任務(wù)分割為一系列子任務(wù),并使各子任務(wù)在流水線的各個(gè)過程段并發(fā)地執(zhí)行,從而使流水CPU具有更強(qiáng)大的數(shù)據(jù)吞吐能力?
這里可以使用時(shí)空?qǐng)D法證明結(jié)論的正確性。
假設(shè)指令周期包含四個(gè)子過程:取指令(IF)、指令譯碼(ID)、取操作數(shù)(EX)、進(jìn)行運(yùn)算(WB),每個(gè)子過程稱為過程段(Si),這樣,一個(gè)流水線由一系列串連的過程段組成。在統(tǒng)一時(shí)鐘信號(hào)控制下,數(shù)據(jù)從一個(gè)過程段流向相鄰的過程段。
2.譯碼器是如何譯碼的?尋址空間是如何確定的?譯碼器與尋址空間是怎么聯(lián)系的?
譯碼器實(shí)際上是由許多與門、或門、非門和它們的組合構(gòu)成的。它有若干個(gè)輸入端和若干個(gè)輸出端(也可能只有一個(gè)輸出端)。對(duì)某一個(gè)輸出端來說,它的電平高低必然與輸入的某一種狀態(tài)相對(duì)應(yīng)。
例如,具有4個(gè)輸入端的與非門就是一個(gè)簡(jiǎn)單的譯碼器,只有四個(gè)輸入端為1111時(shí),它的輸出端才為0。如果將地址總線的A9、A8、A7、A6與它的四個(gè)輸入連接起來,并把它的輸出連到存儲(chǔ)器芯片或某個(gè)需要尋址的外設(shè)接口的片選端(假定低電平有效),那么,只有當(dāng)A9、A8、A7、A6為1111時(shí),存儲(chǔ)器芯片或外設(shè)才會(huì)被選中。
譯碼器的尋址空間取決于地址總線的哪幾根線接到譯碼器的輸入端,例如上例,地址總線的A9、A8、A7、A6與譯碼器的輸入連接,那么其尋址空間應(yīng)該是11 1100 0000~11 1111 1111,即3C0H~3F0H。
注意,沒有參與譯碼的低位地址線必然要參與存儲(chǔ)器芯片或外設(shè)接口的內(nèi)部譯碼。也就是說,內(nèi)部譯碼地址范圍是0--2n11 0000。
可以說,譯碼器的譯碼輸出決定了尋址空間的起始地址,內(nèi)部譯碼決定了尋址空間的大小。由于上一條指令的四個(gè)子過程全部執(zhí)行完畢后才能開始下一條指令,因此每隔4個(gè)單位時(shí)間才有一個(gè)輸出結(jié)果,即一條指令執(zhí)行結(jié)束。表示非流水CPU的時(shí)空?qǐng)D。由于上一條指令與下一條指令的四個(gè)過程在時(shí)間上可以重疊執(zhí)行,因此,當(dāng)流水線滿載時(shí),每一個(gè)單位時(shí)間就可以輸出一個(gè)結(jié)果,即執(zhí)行一條指令。
比較后發(fā)現(xiàn):流水CPU在八個(gè)單位時(shí)間中執(zhí)行了5條指令,而非流水CPU僅執(zhí)行了2條指令,因此流水CPU具有更強(qiáng)大的數(shù)據(jù)吞吐能力。
3.書本上講的是若是計(jì)算結(jié)果中1的個(gè)數(shù)為偶數(shù)時(shí),則PF=1;但我又在另外的輔導(dǎo)書上看到的說如果計(jì)算結(jié)果的低8位中1的個(gè)數(shù)為偶數(shù),PF=1.請(qǐng)問老師是否是低八位?
答:對(duì),PF只與結(jié)果的低8位有關(guān)。
4.80386 CPU包含哪些寄存器?各有什么主要用途?
80386共有7類34個(gè)寄存器。它們分別是通用寄存器、指令指針和標(biāo)志寄存器、段寄存器、系統(tǒng)地址寄存器、控制寄存器、調(diào)試和測(cè)試寄存器。
(1)通用寄存器(8個(gè))
EAX,EBX,ECX,EDX,ESI,EDI,EBP和ESP。每個(gè)32位寄存器的低16位可單獨(dú)使用,同時(shí)AX、BX、CX、DX寄存器的高、低8位也可分別當(dāng)作8位寄存器使用。它們與8088/8086中相應(yīng)的16位通用寄存器作用相同。
(2)指令指針和標(biāo)志寄存器。
指令指針EIP是一個(gè)32位寄存器,存放下一條要執(zhí)行的指令的偏移地址。
標(biāo)志寄存器EFLAGS也是一個(gè)32位寄存器,存放指令的執(zhí)行狀態(tài)和一些控制位。
(3)段寄存器(6個(gè))
CS,DS,SS,ES,F(xiàn)S和GS。在實(shí)方式下,它們存放內(nèi)存段的段地址。在保護(hù)方式下,它們被稱為段選擇符。其中存放的是某一個(gè)段的選擇符。當(dāng)選擇符裝入段寄存器時(shí),80386中的硬件章自動(dòng)用段寄存器中的值作為索引從段描述符表中取出一個(gè)8個(gè)字節(jié)的描述符,裝入到與該段寄存器相應(yīng)的64位描述符寄存器中。
(4)控制寄存器(4個(gè))
CR0、CRl、CR2和CR3。它們的作用是保存全局性的機(jī)器狀態(tài)。
(5)系統(tǒng)地址寄存器(4個(gè))
GDTR、IDTR、LDTR和TR。它們用來存儲(chǔ)操作系統(tǒng)需要的保護(hù)信息和地址轉(zhuǎn)換表信息、定義目前正在執(zhí)行任務(wù)的環(huán)境、地址空間和中斷向量空間。
(6)調(diào)試寄存器(8個(gè))
DR0~DR7。它們?yōu)檎{(diào)試提供硬件支持。
(7)測(cè)試寄存器(8個(gè))
TR0~TR7,其中TR0~TR5由Intel公司保留,用戶只能訪問TR6、TR7。它們用于控制對(duì)TLB中的RAM和CAM相連存儲(chǔ)器的測(cè)試。TR6是測(cè)試控制寄存器,TR7是測(cè)試狀態(tài)寄存器,保存測(cè)試結(jié)果的狀態(tài)
5.什么是外部中斷源?什么是中斷向量碼?什么是讀選通信號(hào)?
答:外部中斷源就是在CPU外部能夠產(chǎn)生中斷請(qǐng)求的設(shè)備/器件;通俗地說,中斷向量碼就是中斷的編號(hào),其值為0-FFH;選通信號(hào)就是打開邏輯門的控制信號(hào),或用來鎖存信息(類似D觸發(fā)器的CP或CLK)的控制信號(hào)。讀選通信號(hào)就是用來打開總線緩沖器,以便把的數(shù)據(jù)送到總線上的控制信號(hào)。
6.CPU處于單步執(zhí)行指令的工作方式(課本49頁),請(qǐng)問什么是單步執(zhí)行指令工作方式? 答:在這種方式下,CPU每執(zhí)行一條指令,就產(chǎn)生一次特殊的中斷,以便可以停下來檢查執(zhí)行的結(jié)果。主要用于各類程序的調(diào)試。
7.片選信號(hào)(CS)到底是起使數(shù)據(jù)有效或無效的作用還是起選擇芯片的作用啊?若是前者,干嗎叫片選?
片選信號(hào)就是選擇芯片的信號(hào)。前者不叫片選信號(hào),應(yīng)該叫允許信號(hào)。
8.書本上講的是若是計(jì)算結(jié)果中1的個(gè)數(shù)為偶數(shù)時(shí),則PF=1;但我又在另外的輔導(dǎo)書上看到的說如果計(jì)算結(jié)果的低8位中1的個(gè)數(shù)為偶數(shù),PF=1.請(qǐng)問老師是否是低八位?
微型計(jì)算機(jī)基礎(chǔ)
1.為什么在流水CPU中,將一條指令從取指到執(zhí)行結(jié)束的任務(wù)分割為一系列子任務(wù),并使各子任務(wù)在流水線的各個(gè)過程段并發(fā)地執(zhí)行,從而使流水CPU具有更強(qiáng)大的數(shù)據(jù)吞吐能力?
這里可以使用時(shí)空?qǐng)D法證明結(jié)論的正確性。
假設(shè)指令周期包含四個(gè)子過程:取指令(IF)、指令譯碼(ID)、取操作數(shù)(EX)、進(jìn)行運(yùn)算(WB),每個(gè)子過程稱為過程段(Si),這樣,一個(gè)流水線由一系列串連的過程段組成。在統(tǒng)一時(shí)鐘信號(hào)控制下,數(shù)據(jù)從一個(gè)過程段流向相鄰的過程段。
2.譯碼器是如何譯碼的?尋址空間是如何確定的?譯碼器與尋址空間是怎么聯(lián)系的?
譯碼器實(shí)際上是由許多與門、或門、非門和它們的組合構(gòu)成的。它有若干個(gè)輸入端和若干個(gè)輸出端(也可能只有一個(gè)輸出端)。對(duì)某一個(gè)輸出端來說,它的電平高低必然與輸入的某一種狀態(tài)相對(duì)應(yīng)。
例如,具有4個(gè)輸入端的與非門就是一個(gè)簡(jiǎn)單的譯碼器,只有四個(gè)輸入端為1111時(shí),它的輸出端才為0。如果將地址總線的A9、A8、A7、A6與它的四個(gè)輸入連接起來,并把它的輸出連到存儲(chǔ)器芯片或某個(gè)需要尋址的外設(shè)接口的片選端(假定低電平有效),那么,只有當(dāng)A9、A8、A7、A6為1111時(shí),存儲(chǔ)器芯片或外設(shè)才會(huì)被選中。
譯碼器的尋址空間取決于地址總線的哪幾根線接到譯碼器的輸入端,例如上例,地址總線的A9、A8、A7、A6與譯碼器的輸入連接,那么其尋址空間應(yīng)該是11 1100 0000~11 1111 1111,即3C0H~3F0H。
注意,沒有參與譯碼的低位地址線必然要參與存儲(chǔ)器芯片或外設(shè)接口的內(nèi)部譯碼。也就是說,內(nèi)部譯碼地址范圍是0--2n11 0000。
可以說,譯碼器的譯碼輸出決定了尋址空間的起始地址,內(nèi)部譯碼決定了尋址空間的大小。由于上一條指令的四個(gè)子過程全部執(zhí)行完畢后才能開始下一條指令,因此每隔4個(gè)單位時(shí)間才有一個(gè)輸出結(jié)果,即一條指令執(zhí)行結(jié)束。表示非流水CPU的時(shí)空?qǐng)D。由于上一條指令與下一條指令的四個(gè)過程在時(shí)間上可以重疊執(zhí)行,因此,當(dāng)流水線滿載時(shí),每一個(gè)單位時(shí)間就可以輸出一個(gè)結(jié)果,即執(zhí)行一條指令。
比較后發(fā)現(xiàn):流水CPU在八個(gè)單位時(shí)間中執(zhí)行了5條指令,而非流水CPU僅執(zhí)行了2條指令,因此流水CPU具有更強(qiáng)大的數(shù)據(jù)吞吐能力。
3.書本上講的是若是計(jì)算結(jié)果中1的個(gè)數(shù)為偶數(shù)時(shí),則PF=1;但我又在另外的輔導(dǎo)書上看到的說如果計(jì)算結(jié)果的低8位中1的個(gè)數(shù)為偶數(shù),PF=1.請(qǐng)問老師是否是低八位?
答:對(duì),PF只與結(jié)果的低8位有關(guān)。
4.80386 CPU包含哪些寄存器?各有什么主要用途?
80386共有7類34個(gè)寄存器。它們分別是通用寄存器、指令指針和標(biāo)志寄存器、段寄存器、系統(tǒng)地址寄存器、控制寄存器、調(diào)試和測(cè)試寄存器。
(1)通用寄存器(8個(gè))
EAX,EBX,ECX,EDX,ESI,EDI,EBP和ESP。每個(gè)32位寄存器的低16位可單獨(dú)使用,同時(shí)AX、BX、CX、DX寄存器的高、低8位也可分別當(dāng)作8位寄存器使用。它們與8088/8086中相應(yīng)的16位通用寄存器作用相同。
(2)指令指針和標(biāo)志寄存器。
指令指針EIP是一個(gè)32位寄存器,存放下一條要執(zhí)行的指令的偏移地址。
標(biāo)志寄存器EFLAGS也是一個(gè)32位寄存器,存放指令的執(zhí)行狀態(tài)和一些控制位。
(3)段寄存器(6個(gè))
CS,DS,SS,ES,F(xiàn)S和GS。在實(shí)方式下,它們存放內(nèi)存段的段地址。在保護(hù)方式下,它們被稱為段選擇符。其中存放的是某一個(gè)段的選擇符。當(dāng)選擇符裝入段寄存器時(shí),80386中的硬件章自動(dòng)用段寄存器中的值作為索引從段描述符表中取出一個(gè)8個(gè)字節(jié)的描述符,裝入到與該段寄存器相應(yīng)的64位描述符寄存器中。
(4)控制寄存器(4個(gè))
CR0、CRl、CR2和CR3。它們的作用是保存全局性的機(jī)器狀態(tài)。
(5)系統(tǒng)地址寄存器(4個(gè))
GDTR、IDTR、LDTR和TR。它們用來存儲(chǔ)操作系統(tǒng)需要的保護(hù)信息和地址轉(zhuǎn)換表信息、定義目前正在執(zhí)行任務(wù)的環(huán)境、地址空間和中斷向量空間。
(6)調(diào)試寄存器(8個(gè))
DR0~DR7。它們?yōu)檎{(diào)試提供硬件支持。
(7)測(cè)試寄存器(8個(gè))
TR0~TR7,其中TR0~TR5由Intel公司保留,用戶只能訪問TR6、TR7。它們用于控制對(duì)TLB中的RAM和CAM相連存儲(chǔ)器的測(cè)試。TR6是測(cè)試控制寄存器,TR7是測(cè)試狀態(tài)寄存器,保存測(cè)試結(jié)果的狀態(tài)
5.什么是外部中斷源?什么是中斷向量碼?什么是讀選通信號(hào)?
答:外部中斷源就是在CPU外部能夠產(chǎn)生中斷請(qǐng)求的設(shè)備/器件;通俗地說,中斷向量碼就是中斷的編號(hào),其值為0-FFH;選通信號(hào)就是打開邏輯門的控制信號(hào),或用來鎖存信息(類似D觸發(fā)器的CP或CLK)的控制信號(hào)。讀選通信號(hào)就是用來打開總線緩沖器,以便把的數(shù)據(jù)送到總線上的控制信號(hào)。
6.CPU處于單步執(zhí)行指令的工作方式(課本49頁),請(qǐng)問什么是單步執(zhí)行指令工作方式? 答:在這種方式下,CPU每執(zhí)行一條指令,就產(chǎn)生一次特殊的中斷,以便可以停下來檢查執(zhí)行的結(jié)果。主要用于各類程序的調(diào)試。
7.片選信號(hào)(CS)到底是起使數(shù)據(jù)有效或無效的作用還是起選擇芯片的作用?。咳羰乔罢?,干嗎叫片選?
片選信號(hào)就是選擇芯片的信號(hào)。前者不叫片選信號(hào),應(yīng)該叫允許信號(hào)。
8.書本上講的是若是計(jì)算結(jié)果中1的個(gè)數(shù)為偶數(shù)時(shí),則PF=1;但我又在另外的輔導(dǎo)書上看到的說如果計(jì)算結(jié)果的低8位中1的個(gè)數(shù)為偶數(shù),PF=1.請(qǐng)問老師是否是低八位?對(duì),PF只與結(jié)果的低8位有關(guān)
第三篇:微機(jī)原理課程設(shè)計(jì)
電子信息科學(xué)與技術(shù)《微機(jī)原理》課程設(shè)計(jì)
一、本次課程設(shè)計(jì)的目的和意義
學(xué)習(xí)和掌握計(jì)算機(jī)中常用接口電路的應(yīng)用和設(shè)計(jì)技術(shù),充分認(rèn)識(shí)理論知識(shí)對(duì)應(yīng)用技術(shù)的指導(dǎo)性作用,進(jìn)一步加強(qiáng)理論知識(shí)與應(yīng)用相結(jié)合的實(shí)踐和鍛煉。通過這次設(shè)計(jì)實(shí)踐能夠進(jìn)一步加深對(duì)專業(yè)知識(shí)和理論知識(shí)學(xué)習(xí)的認(rèn)識(shí)和理解,使自己的設(shè)計(jì)水平和對(duì)所學(xué)的知識(shí)的應(yīng)用能力以及分析問題解決問題的能力得到全面提高。
二、設(shè)計(jì)時(shí)間、基本要求
(一)、設(shè)計(jì)時(shí)間:二周(二)、基本要求:
a.每題2人;b.設(shè)計(jì)出完整的接口電路;c.編寫出全部程序;d.在實(shí)驗(yàn)系統(tǒng)上調(diào)試通過。
三、設(shè)計(jì)選題與要求
選題一:多路模擬數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
要求:設(shè)計(jì)一個(gè)2路以上的模擬數(shù)據(jù)采集系統(tǒng)。
1、用按鍵選擇那一路;
2、用LED顯示轉(zhuǎn)換結(jié)果(十進(jìn)制數(shù));
3、將每一路采集的100個(gè)數(shù)據(jù)存放到各自的存儲(chǔ)區(qū)中。
選題二:溫度測(cè)控系統(tǒng)的設(shè)計(jì)
要求:利用ADC0809設(shè)計(jì)一個(gè)溫度測(cè)控系統(tǒng),在LED數(shù)碼顯示器上顯示溫度值,并對(duì)溫度進(jìn)行測(cè)試和控制,當(dāng)檢測(cè)溫度到達(dá)溫度上限60℃時(shí)開風(fēng)扇(即開啟電動(dòng)機(jī),或以一個(gè)燈的亮滅表示),低于下限30℃時(shí)關(guān)閉風(fēng)扇,LED上的顯示內(nèi)容為:XX ℃(采用十進(jìn)制顯示)。
選題三:函數(shù)發(fā)生器的設(shè)計(jì)(一)要求:利用DAC0832設(shè)計(jì)一個(gè)函數(shù)發(fā)生器,并利用按鍵選擇輸出波形,能分別產(chǎn)生三角波、階梯波(每階梯1V)、正向鋸齒波、負(fù)向鋸齒波和方波。并利用按鍵(自行定義)進(jìn)行輸出波形選擇,同時(shí)將當(dāng)前輸出波形代號(hào)顯示在LED上(左邊位):0為方波、1為正向鋸齒波、2為負(fù)向鋸齒波、3 為三角波、4為階梯波。
選題四:函數(shù)發(fā)生器的設(shè)計(jì)(二)要求:設(shè)計(jì)一個(gè)三角波發(fā)生器,可利用鍵盤改變其輸出波形的幅值。例如,可利用1-5這5個(gè)數(shù)字鍵改變其輸出波形的幅值,當(dāng)按下1-5數(shù)字鍵時(shí)使D/A輸出幅值從1V增加到5V。
選題五:電子音樂播放器
要求:設(shè)計(jì)要求:利用8253作為音階頻率發(fā)生器,應(yīng)先對(duì)“2008年奧運(yùn)會(huì)主題歌”進(jìn)行編碼后存入音符表,并建立好音階表(只建立一個(gè)8度即可),音符長(zhǎng)度不能少于60個(gè),連續(xù)播放3遍后停止。
選題六:鍵盤電子樂器
要求:利用并行接口8155作為鍵盤接口,設(shè)計(jì)一個(gè)具有2個(gè)八度音階的鍵盤樂器,音階鍵不少于16個(gè),采用掃描方式管理鍵盤,音域范圍自行定義。
選題七:電子時(shí)鐘設(shè)計(jì)
要求:利用8253定時(shí)器設(shè)計(jì)一個(gè)具有時(shí)、分、秒顯示的電子時(shí)鐘,并定義一個(gè)啟動(dòng)鍵,當(dāng)按下該
鍵時(shí)時(shí)鐘從當(dāng)前設(shè)定值(可在顯示緩沖區(qū)中予置)開始走時(shí)。
選題八:壓力測(cè)控系統(tǒng)的設(shè)計(jì)(一)要求:對(duì)壓力傳感器的信號(hào)進(jìn)行檢測(cè)并在LED數(shù)碼顯示器上顯示壓力值,當(dāng)壓力低于30pa時(shí),黃燈閃爍,閃爍周期為1秒。當(dāng)壓力高于150pa時(shí),紅燈閃爍。LED的顯示內(nèi)容為P=XXX。X為測(cè)試值。
選題九:可變輸出頻率方波發(fā)生器設(shè)計(jì)
要求:設(shè)計(jì)一個(gè)輸出方波頻率可利用按鍵改變的方波信號(hào)發(fā)生器(可以使用D/A也可以直接使用8253產(chǎn)生方波),利用鍵盤選擇方波發(fā)生器的輸出頻率并驅(qū)動(dòng)喇叭。輸出頻率=鍵號(hào)*100HZ
選題十:直流電機(jī)速度控制器設(shè)計(jì)
要求:利用D/A轉(zhuǎn)換器和按鍵設(shè)計(jì)一個(gè)直流電動(dòng)機(jī)轉(zhuǎn)速控制器。按鍵定義如下:0 停止,1-1/10轉(zhuǎn)速,2-2/10轉(zhuǎn)速?? 9 最高速(D/A輸出滿量程),鍵號(hào)每加1,D/A輸出增加0.5V
選題十一:可任意啟動(dòng)/停止的電子秒表設(shè)計(jì)
要求:6位LED數(shù)碼顯示,計(jì)時(shí)單位為1/100秒。利用功能鍵進(jìn)行啟/停控制。其功能為:上電后計(jì)時(shí)器清0,當(dāng)?shù)谝淮危ɑ蚱鏀?shù)次)按下啟/停鍵時(shí)開始計(jì)數(shù)。第2次(或偶數(shù)次)按下該鍵時(shí)停止計(jì)時(shí),再一次按啟/停鍵時(shí)清零后重新開始計(jì)時(shí)??
選題十二:溫度測(cè)試系統(tǒng)設(shè)計(jì)
要求:利用溫度傳感器和ADC0809設(shè)計(jì)一個(gè)溫度測(cè)試系統(tǒng),將測(cè)試結(jié)果(十進(jìn)制)在LED上顯示出來,并定義一個(gè)保持按鍵,當(dāng)按下該鍵時(shí),將當(dāng)前測(cè)試值保持不變(按鍵不動(dòng)作時(shí)為正常測(cè)量顯示)。溫度顯示格式為:XXX ℃。(可以每隔0.3秒測(cè)量一次)
選題十三:壓力測(cè)試系統(tǒng)設(shè)計(jì)(二)要求:利用壓力傳感器和ADC0809設(shè)計(jì)一個(gè)壓力測(cè)試系統(tǒng),并將測(cè)試結(jié)果(十進(jìn)制)在LED上顯示出來,并定義一個(gè)測(cè)試最大值按鍵,當(dāng)按下該鍵時(shí),可進(jìn)行最大值測(cè)量(按鍵不動(dòng)作時(shí)為正常測(cè)量顯示),即:只有當(dāng)當(dāng)前測(cè)量值大于上次測(cè)量值時(shí)才刷新顯示,顯示格式為:P=XXX??梢悦扛?.3秒測(cè)量一次。
選題十四:簡(jiǎn)易計(jì)算器系統(tǒng)設(shè)計(jì)
要求:設(shè)計(jì)一個(gè)可以進(jìn)行2位數(shù)四則運(yùn)算的計(jì)算器。
1、用按鍵輸入數(shù)和運(yùn)算符號(hào);
2、用LED顯示運(yùn)算過程和結(jié)果(十進(jìn)制數(shù));
3、可以表示出當(dāng)前的運(yùn)算類型;
4、具有清零和復(fù)位功能;
5、具有連續(xù)運(yùn)算功能。
選題十五:交通燈控制系統(tǒng)
要求:按照時(shí)間控制原則,利用并行接口和定時(shí)器,設(shè)計(jì)一套十字路口的交通燈管理系統(tǒng),通行時(shí)間(或禁止時(shí)間)30秒,準(zhǔn)備時(shí)間3秒,在準(zhǔn)備時(shí)間里黃燈閃爍3次,閃爍頻率為0.5秒,周而復(fù)始??衫?255、8253等接口電路。
選題十六:計(jì)件系統(tǒng)設(shè)計(jì)
要求:利用8253計(jì)數(shù),對(duì)外界脈沖技術(shù),并將計(jì)數(shù)值在數(shù)碼管上顯示,可通過鍵盤控制重新計(jì)數(shù)。
四、設(shè)計(jì)任務(wù)及要求
1、接口設(shè)計(jì):根據(jù)所選題目和所用的接口電路芯片設(shè)計(jì)出完整的接口電路,并在實(shí)驗(yàn)系統(tǒng)上完成電路的連接和調(diào)試通過。
2、程序設(shè)計(jì):要求畫出程序框圖,設(shè)計(jì)出全部程序并給出程序設(shè)計(jì)說明和程序注釋。
3、課程設(shè)計(jì)報(bào)告:(1)設(shè)計(jì)題目;
(2)系統(tǒng)的主要功能、作用以及主要技術(shù)性能指標(biāo);
(3)總體設(shè)計(jì)方案、工作和組成原理(框圖)或設(shè)計(jì)說明、采用的技術(shù)路線等;
(4)系統(tǒng)設(shè)計(jì):接口電路設(shè)計(jì),程序設(shè)計(jì)(程序框圖和程序清單及注釋)其他有關(guān)的理論分析和計(jì)算;
(5)設(shè)計(jì)總結(jié):對(duì)整個(gè)設(shè)計(jì)工作過程進(jìn)行歸納和綜合,對(duì)設(shè)計(jì)中所存在的問題和不足進(jìn)行分析和總結(jié),提出解決的方法、措施、建議和對(duì)這次設(shè)計(jì)實(shí)踐的認(rèn)識(shí)、收獲和提高。
第四篇:微機(jī)原理課程設(shè)計(jì)
匯編程序設(shè)計(jì)題
題目一 密碼設(shè)置模擬
該程序可以進(jìn)行密碼的設(shè)置(第一次)和修改(已設(shè)置密碼)。要求輸入的密碼不顯示。題目二 計(jì)算器
編輯程序可以實(shí)現(xiàn)鍵盤輸入數(shù)據(jù)與運(yùn)算符,進(jìn)行“加減乘除”運(yùn)算。(提示:先輸入數(shù)據(jù)與運(yùn)算符,保存,再按照運(yùn)算符選擇對(duì)應(yīng)的子程序;輸入的數(shù)據(jù)是用字符表示的,需要轉(zhuǎn)換;要有良好的界面(提示信息))
題目三工作周期判斷程序
輸入年、月、日,能夠判斷當(dāng)日的星期數(shù),并進(jìn)行輸出。(以校歷為依照,可設(shè)某日為起點(diǎn),根據(jù)相差的天數(shù)與7的關(guān)系進(jìn)行判斷)。
題目四 PC揚(yáng)聲器發(fā)聲
利用8253驅(qū)動(dòng)PC機(jī)內(nèi)揚(yáng)聲器發(fā)聲,PC結(jié)構(gòu)參考相關(guān)文獻(xiàn)資料。題目五 樂曲播放
利用PC機(jī)內(nèi)8253實(shí)現(xiàn)樂曲播放。題目六 按鍵選擇樂曲播放
利用按鍵選擇播放不同樂曲。(★)(自制交互界面實(shí)現(xiàn)按鍵選擇★★)題目七 實(shí)現(xiàn)閃爍文字效果 編程提示:
提示信息于屏幕中央顯示出來,用光標(biāo)定位子程序?qū)⒐鈽?biāo)定位于80*25顯示方式的第8行第10列,然后輸出一條提示信息,接著調(diào)用屏幕上卷子程序上卷一行,接著再定位光標(biāo),然后顯示下一條提示信息,直到所有信息顯示完畢,對(duì)于閃爍的信息,同樣是定位光標(biāo),然后用BIOS功能調(diào)用13H來顯示閃爍信息,當(dāng)BL的高位為1時(shí),字符閃爍。mov ah,00h mov al,03h ;設(shè)置顯示方式為80*25,16色文本 int 10h 題目八
數(shù)字秒表
設(shè)計(jì)可以顯示1~60秒的無存儲(chǔ)功能的秒表,最小單位為毫秒。題目九
倒計(jì)時(shí)牌
設(shè)計(jì)日期倒計(jì)時(shí)牌界面,可輸入設(shè)定日期,顯示當(dāng)前日期的統(tǒng)計(jì)天數(shù),如奧運(yùn)計(jì)時(shí)牌。題目十
數(shù)字時(shí)鐘
編程實(shí)現(xiàn)時(shí)鐘功能,按秒刷新,要求定位在屏幕右上角。
硬件設(shè)計(jì)題
總體要求:根據(jù)題意自行設(shè)計(jì)電路,編寫相關(guān)匯編程序。題目一
交通燈控制系統(tǒng)
1.利用8253定時(shí),8259中斷及8255設(shè)計(jì)電路,實(shí)現(xiàn)十字路口交通燈模擬控制。2.實(shí)現(xiàn)能自動(dòng)控制和手動(dòng)應(yīng)急控制。
3.實(shí)現(xiàn)能隨時(shí)可以調(diào)整自動(dòng)模式的綠燈和紅燈時(shí)間。題目二 實(shí)現(xiàn)特定功能的鍵盤及LED顯示
了解鍵盤及LED顯示接口原理,設(shè)計(jì)實(shí)驗(yàn)電路圖完成以下功能: 1.按1鍵顯示年; 2.按2鍵顯示月日; 3.按3鍵顯示GOOD ;
4.按4鍵數(shù)碼管由左到右字符“0”循環(huán)顯示。5.自行設(shè)計(jì)特效顯示功能。題目三
LED七段數(shù)碼管數(shù)字鐘
設(shè)計(jì)并完成LED七段數(shù)碼管數(shù)字鐘電路,數(shù)字鐘顯示格式為:HH:MM:SS。要求:具有通過鍵盤能夠調(diào)整時(shí)、分、秒的功能。題目四
閃爍燈
利用8253和LED燈相結(jié)合實(shí)現(xiàn)閃爍燈效果。題目五
電子鐘
利用8253定時(shí)器設(shè)計(jì)一個(gè)電子鐘,并定義一個(gè)啟動(dòng)鍵。當(dāng)按下該鍵時(shí)電子時(shí)鐘從當(dāng)前設(shè)定值開始走時(shí)。
附錄:實(shí)驗(yàn)箱功能模塊電路圖
第五篇:2008微機(jī)原理課程設(shè)計(jì)
《微機(jī)原理及接口》課程設(shè)計(jì)任務(wù)書
適用專業(yè):05電子信息工程 通信工程
一、本次課程設(shè)計(jì)的目的和意義
學(xué)習(xí)和掌握計(jì)算機(jī)中常用接口電路的應(yīng)用和設(shè)計(jì)技術(shù),充分認(rèn)識(shí)理論知識(shí)對(duì)應(yīng)用技術(shù)的指導(dǎo)性作用,進(jìn)一步加強(qiáng)理論知識(shí)與應(yīng)用相結(jié)合的實(shí)踐和鍛煉。通過這次設(shè)計(jì)實(shí)踐能夠進(jìn)一步加深對(duì)專業(yè)知識(shí)和理論知識(shí)學(xué)習(xí)的認(rèn)識(shí)和理解,使自己的設(shè)計(jì)水平和對(duì)所學(xué)的知識(shí)的應(yīng)用能力以及分析問題解決問題的能力得到全面提高。
二、設(shè)計(jì)時(shí)間和設(shè)計(jì)題目
(一)、設(shè)計(jì)時(shí)間:一周(二)、設(shè)計(jì)題目:可從以下題目中任選一題,原則上每班每題不超過5人。每題的設(shè)計(jì)要求:a、設(shè)計(jì)出完整的接口電路。B、編寫出全部程序。
1、交通燈控制系統(tǒng):按照時(shí)間控制原則,利用并行接口和定時(shí)器,采用時(shí)間中斷方式設(shè)計(jì)一套十字路口的交通燈管理系統(tǒng),通行時(shí)間(或禁止時(shí)間)30秒,準(zhǔn)備時(shí)間3秒,在準(zhǔn)備時(shí)間里黃燈閃爍3次,閃爍頻率為0.5秒,周而復(fù)始??衫?255、8253、8259等接口電路。
2、溫度測(cè)控系統(tǒng)的設(shè)計(jì):利用ADC0809采用中斷式設(shè)計(jì)一個(gè)溫度測(cè)控系統(tǒng),在LED數(shù)碼顯示器上顯示溫度值,并對(duì)溫度進(jìn)行測(cè)試和控制,當(dāng)檢測(cè)溫度到達(dá)溫度上限60℃時(shí)開風(fēng)扇(即開啟電動(dòng)機(jī)),低于下限30℃時(shí)關(guān)閉風(fēng)扇,LED上的顯示內(nèi)容為:XX ℃(采用十進(jìn)制顯示)。
3、函數(shù)發(fā)生器1的設(shè)計(jì):利用D/A設(shè)計(jì)一個(gè)函數(shù)發(fā)生器,并利用按鍵選擇輸出波形,能分別產(chǎn)生三角波、階梯波(每階梯1V)、正向鋸齒波、負(fù)向鋸齒波和方波。并利用按鍵(自行定義)進(jìn)行輸出波形選擇,同時(shí)將當(dāng)前輸出波形代號(hào)顯示在LED上(左邊位):0為方波、1為正向鋸齒波、2為負(fù)向鋸齒波、3 為三角波、4為階梯波。
4、函數(shù)發(fā)生器2的設(shè)計(jì):設(shè)計(jì)一個(gè)三角波發(fā)生器,可利用鍵盤改變其輸出波形的幅值。例如,可利用1---5這5個(gè)數(shù)字鍵改變其輸出波形的幅值,當(dāng)按下1---5數(shù)字鍵時(shí)使D/A輸出幅值從1V增加到5V。
5、電子音樂播放器:設(shè)計(jì)要求:利用8253作為音階頻率發(fā)生器,應(yīng)先對(duì)一段音樂進(jìn)行編碼后存入音符表,并建立好音階表(只建立一個(gè)8度即可,音階表見附錄),音符長(zhǎng)度不能少于60個(gè),連續(xù)播放3遍后停止。
6、鍵盤電子樂器:利用并行接口8255作為鍵盤接口,設(shè)計(jì)一個(gè)具有2個(gè)八度音階的鍵盤樂器,音階鍵不少于16個(gè),采用掃描方式管理鍵盤,音域范圍自行定義。
7、電子時(shí)鐘設(shè)計(jì):利用8253定時(shí)器設(shè)計(jì)一個(gè)具有時(shí)、分、秒顯示的電子時(shí)鐘,并定義一個(gè)啟動(dòng)鍵,當(dāng)按下該鍵時(shí)電子時(shí)鐘從當(dāng)前設(shè)定值開始走時(shí)。
8、壓力測(cè)控系統(tǒng)的設(shè)計(jì):對(duì)壓力傳感器的信號(hào)進(jìn)行檢測(cè)并在LED數(shù)碼顯示器上顯示壓力值,當(dāng)壓力低于30pa時(shí),黃燈閃爍,閃爍周期為1秒。當(dāng)壓力高于150pa時(shí),紅燈閃爍。LED的顯示內(nèi)容為P=XXX為測(cè)試值。
9、可變輸出頻率方波發(fā)生器設(shè)計(jì):設(shè)計(jì)一個(gè)輸出方波頻率可利用按鍵改變的方波信號(hào)發(fā)生器(可以使用D/A也可以直接使用8253產(chǎn)生方波),利用鍵盤選擇方波發(fā)生器的輸出頻率并驅(qū)動(dòng)喇叭。輸出頻率=鍵號(hào)*100HZ。
10、直流電機(jī)速度控制器設(shè)計(jì):利用按鍵控制直流電動(dòng)機(jī)的轉(zhuǎn)速。按鍵定義如下:0 停止,1 1/10轉(zhuǎn)速,2 2/10轉(zhuǎn)速…… 9 最高速(D/A輸出滿量程),鍵號(hào)每加1,D/A輸出增加0.5V。
11、可任意啟動(dòng)/停止的電子秒表設(shè)計(jì):6位LED數(shù)碼顯示,計(jì)時(shí)單位為1/100秒。利用功能鍵進(jìn)行啟/??刂啤F涔δ転椋荷想姾笥?jì)時(shí)器清0,當(dāng)?shù)谝淮危ɑ蚱鏀?shù)次)按下啟/停鍵時(shí)開始計(jì)數(shù)。第2次(或偶數(shù)次)按下該鍵時(shí)停止計(jì)時(shí),再一次按啟/停鍵時(shí)清零后重新開始計(jì)時(shí)……。12簡(jiǎn)易計(jì)算器系統(tǒng)設(shè)計(jì):設(shè)計(jì)一個(gè)可以進(jìn)行2位數(shù)四則運(yùn)算的計(jì)算器,要求:1,用按鍵輸入數(shù)和運(yùn)算符號(hào);2,用LED顯示運(yùn)算過程和結(jié)果(十進(jìn)制數(shù));3,可以表示出當(dāng)前的運(yùn)算類型;4,具有清零和復(fù)位功能;5,具有連續(xù)運(yùn)算功能。
13點(diǎn)陣LED顯示系統(tǒng)設(shè)計(jì):設(shè)計(jì)一個(gè)點(diǎn)陣式LED顯示系統(tǒng)。要求:1,每次顯示一個(gè)文字和圖形;2,每隔一固定時(shí)間更變需要顯示的文字或圖形;3,可以現(xiàn)實(shí)循環(huán)顯示幾個(gè)文字或圖形;4,可以根據(jù)按鍵來控制顯示的文字的替換時(shí)間的長(zhǎng)短;5,具有復(fù)位功能。
三、設(shè)計(jì)任務(wù)及要求:
1、接口電路設(shè)計(jì):根據(jù)所選題目和所用的接口電路芯片設(shè)計(jì)出完整的接口電路,并進(jìn)行電路連接和調(diào)試。
2、程序設(shè)計(jì):要求畫出程序框圖,設(shè)計(jì)出全部程序并給出程序設(shè)計(jì)說明和程序注釋。
3、設(shè)計(jì)文件:a、設(shè)計(jì)圖紙(接口電路原理圖);b、使用或操作說明;c、設(shè)計(jì)報(bào)告:字?jǐn)?shù)約3000~4000字,內(nèi)容包括:(1)設(shè)計(jì)題目;(2)系統(tǒng)的主要功能作用及主要技術(shù)性能和指標(biāo);(3)總體設(shè)計(jì)方案及組成原理(框圖)或設(shè)計(jì)說明及技術(shù)路線;(4)系統(tǒng)設(shè)計(jì):接口電路設(shè)計(jì),程序設(shè)計(jì)(程序框圖和程序清單及注釋)其他有關(guān)的理論分析和計(jì)算;(5)設(shè)計(jì)總結(jié):對(duì)設(shè)計(jì)中所存在的問題和不足進(jìn)行分析和總結(jié),提出解決的方法、措施、建議和對(duì)這次設(shè)計(jì)實(shí)踐的認(rèn)識(shí)、收獲和提高。
4、設(shè)計(jì)要求:
不允許抄襲和復(fù)印,否則取消設(shè)計(jì)成績(jī)。
四、設(shè)計(jì)時(shí)間和成績(jī)分配:
(一)設(shè)計(jì)時(shí)間:一周(二)設(shè)計(jì)成績(jī)分配:
1、接口電路設(shè)計(jì)占30%(包括電路圖設(shè)計(jì)、電路連接和調(diào)試通過)。
2、設(shè)計(jì)文件占30%
3、答辯占40%