微機(jī)原理期末考試重點(diǎn)總結(jié)_第1頁(yè)
微機(jī)原理期末考試重點(diǎn)總結(jié)_第2頁(yè)
微機(jī)原理期末考試重點(diǎn)總結(jié)_第3頁(yè)
微機(jī)原理期末考試重點(diǎn)總結(jié)_第4頁(yè)
微機(jī)原理期末考試重點(diǎn)總結(jié)_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

把尋找操作數(shù)的方式叫做(操作數(shù))尋址方式立即數(shù)尋址方式寄存器尋址方式存儲(chǔ)器尋址方式1、直接尋址方式2、寄存器間接尋址方式3、寄存器相對(duì)尋址方式4、基址變址尋址方式5、相對(duì)基址變址尋址方式微處理器的定義微處理器即中央處理單元,采用大規(guī)模集成電路技術(shù)制成的半導(dǎo)體芯片,內(nèi)部集成了計(jì)算機(jī)的主要部件:控制器、運(yùn)算器、寄存器組。微處理器通過執(zhí)行指令序列完成指定的操作,處理器能夠執(zhí)行全部指令的集合就是該處理器的指令系統(tǒng)。微機(jī)的總線結(jié)構(gòu)的好處,使用特點(diǎn)。包括總線定義,分類??偩€定義:指?jìng)鬟f信息的一組公用導(dǎo)線,總線結(jié)構(gòu)的好處:總線結(jié)構(gòu)使得微機(jī)系統(tǒng)組態(tài)靈活,擴(kuò)展方便。使用特點(diǎn):在某個(gè)時(shí)刻只有一個(gè)總線主控設(shè)備控制系統(tǒng)總線。某一時(shí)刻只能有一個(gè)設(shè)備向總線發(fā)送信號(hào),但可以有多個(gè)設(shè)備同時(shí)從總線上獲取信號(hào)??偩€按傳輸信號(hào)可以分為數(shù)據(jù)總線(用于CPU與其他部件之間傳遞信息,具有三態(tài)功能,且是雙向的)、地址總線(用于傳遞CPU要訪問的存儲(chǔ)單元或I/O接口的地址信號(hào))、控制總線(連接CPU的控制部件和內(nèi)存、I/O設(shè)備等,用來(lái)控制內(nèi)存和I/O設(shè)備的全部工作)馮×諾依曼存儲(chǔ)程序工作原理將采取二進(jìn)制形式表示數(shù)據(jù)和指令。指令由操作碼和地址碼組成將程序和數(shù)據(jù)存放在存儲(chǔ)器中,計(jì)算機(jī)在工作時(shí)從存儲(chǔ)器取出指令加以執(zhí)行,自動(dòng)完成計(jì)算任務(wù)。指令的執(zhí)行是順序的,即一般按照指令在存儲(chǔ)器中存放的順序執(zhí)行,程序分支由轉(zhuǎn)移指令實(shí)現(xiàn)。計(jì)算機(jī)由存儲(chǔ)器、運(yùn)算器、控制器、輸入設(shè)備和輸出設(shè)備五大基本部件組成,并規(guī)定了各部件的基本功能。8086微處理器的構(gòu)成、每一個(gè)T狀態(tài)的主要工作?;镜拇鎯?chǔ)讀、寫總線周期構(gòu)成。常用的控制信號(hào)??偩€周期是指CPU通過總線與外部(存儲(chǔ)器或I/O端口)進(jìn)行一次數(shù)據(jù)交換的過程,即完成一次總線操作的時(shí)間指令周期是指一條指令經(jīng)取指、譯碼、操作數(shù)讀寫直到指令完成所需要的時(shí)間。存儲(chǔ)器讀總線周期:T1狀態(tài)——輸出存儲(chǔ)器的地址T2狀態(tài)——輸出控制信號(hào)-RD,選通存儲(chǔ)器;DEN信號(hào),選通數(shù)據(jù)收發(fā)器T3和Tw狀態(tài)——檢測(cè)數(shù)據(jù)傳送是否能夠完成T4狀態(tài)——前沿讀取數(shù)據(jù),完成數(shù)據(jù)傳送存儲(chǔ)器寫總線周期:T1狀態(tài)——輸出20位存儲(chǔ)器地址A19~A0T2狀態(tài)——-WR信號(hào)有效,-DEN信號(hào)有效以輸出數(shù)據(jù)D7~D0T3和Tw狀態(tài)——-WR、-DEN等控制信號(hào)持續(xù)有效,T3時(shí)鐘下降沿檢測(cè)READY信號(hào),決定是否插入Tw;Tw期間,各信號(hào)延續(xù)狀態(tài)。T4狀態(tài)——完成數(shù)據(jù)傳送,并準(zhǔn)備過渡到下一操作。-WR、-DEN轉(zhuǎn)為無(wú)效。常用的控制信號(hào):ALE地址鎖存允許,輸出、三態(tài)、高電平有效IO/-M:I/O或存儲(chǔ)器訪問,輸出、三態(tài)-WR:寫控制,輸出、三態(tài)、低電平有效-RD:讀控制,輸出、三態(tài)、低電平有效INTR、-INTA等存儲(chǔ)器地址的譯碼問題全譯碼:所有的系統(tǒng)地址線均參與對(duì)存儲(chǔ)單元的譯碼尋址特點(diǎn):采用全譯碼,每個(gè)存儲(chǔ)單元的地址都是唯一的,不存在地址重復(fù)譯碼電路可能比較復(fù)雜、連線也較多部分譯碼:只有部分(高位)地址線參與對(duì)存儲(chǔ)芯片的譯碼特點(diǎn):每個(gè)存儲(chǔ)單元將對(duì)應(yīng)多個(gè)地址(地址重復(fù)),需要選取一個(gè)可用地址可簡(jiǎn)化譯碼電路的設(shè)計(jì)、但系統(tǒng)的部分地址空間將被浪費(fèi)存儲(chǔ)芯片為什么要設(shè)置片選信號(hào)?它與系統(tǒng)地址總線有哪些連接方式?采用何種連接方式可避免地址重復(fù)?采用哪些連接方式可節(jié)省用于譯碼的硬件?解答:片選信號(hào)說(shuō)明該存儲(chǔ)器芯片是否被選中正常工作,設(shè)置它可以比較方便地實(shí)現(xiàn)多個(gè)存儲(chǔ)器芯片組成大容量的存儲(chǔ)空間存儲(chǔ)器片選信號(hào)通常與CPU地址總線的高位地址線相關(guān)聯(lián),可以采用“全譯碼”、“部分譯碼”、“線選譯碼”方式采用全譯碼方式可以避免地址重復(fù)采用部分或線選譯碼可以節(jié)省譯碼硬件8086微處理器的內(nèi)部結(jié)構(gòu),EU、BIU的定義和作用,流水線。BIU(總線接口單元):由指令隊(duì)列、指令指針、段寄存器、地址加法器和總線控制邏輯構(gòu)成。該單元管理著8088與系統(tǒng)總線的接口、負(fù)責(zé)CPU對(duì)存儲(chǔ)器和外設(shè)進(jìn)行訪問。EU(執(zhí)行單元):由ALU、通用寄存器、標(biāo)志寄存器和指令譯碼邏輯等構(gòu)成,它負(fù)責(zé)指令的譯碼、執(zhí)行和數(shù)據(jù)的運(yùn)算。兩個(gè)單元相互獨(dú)立,分別完成各自操作。兩個(gè)單元可以并行執(zhí)行,實(shí)現(xiàn)指令取指和執(zhí)行的流水線操作8086的尋址方式。物理地址和邏輯地址的定義。兩者之間轉(zhuǎn)換。8086系統(tǒng)存儲(chǔ)器采用分段管理方式。(要求很熟練)對(duì)于每個(gè)存儲(chǔ)器單元都有一個(gè)唯一的20位地址,稱為物理地址。在8088的總線內(nèi)部和用戶編程時(shí),所采用的“段地址:偏移地址”形式,稱為邏輯地址。一個(gè)存儲(chǔ)器單元可以擁有多個(gè)邏輯地址,但可能擁有唯一的物理地址。轉(zhuǎn)換過程:先將段寄存器提供的16位段地址左移四位,低位補(bǔ)0,恢復(fù)為20位地址,然后與由各種尋址方式提供的16位偏移地址相加,即得到20位的物理地址。8086微處理器的內(nèi)部構(gòu)成。8086的寄存器結(jié)構(gòu),標(biāo)志寄存器中每一個(gè)標(biāo)志位的含義及應(yīng)用。8086復(fù)位時(shí)各寄存器的初始狀態(tài)。內(nèi)部構(gòu)成:算術(shù)邏輯單元(運(yùn)算器)、寄存器組、指令處理單元(控制器)寄存器結(jié)構(gòu):8086/8088共有8個(gè)的通用寄存器,1個(gè)標(biāo)志寄存器,4個(gè)段寄存器和1個(gè)指令指針寄存器。進(jìn)位標(biāo)志CF:計(jì)算結(jié)果的最高有效位有進(jìn)位,則CF=1,否則CF=0溢出標(biāo)志OF:若算術(shù)運(yùn)算的結(jié)果有溢出,則OF=1;否則OF=0全零標(biāo)志位ZF:若運(yùn)算結(jié)果為全0,則ZF=1,否則ZF=0符號(hào)標(biāo)志CF:運(yùn)算結(jié)果最高位為1,則SF=1;否則SF=0奇偶標(biāo)志位PF:當(dāng)運(yùn)算結(jié)果最低字節(jié)中1的個(gè)數(shù)為零或偶數(shù)時(shí),PF=1;否則PF=0(奇校驗(yàn))輔助進(jìn)位標(biāo)志AF:運(yùn)算時(shí)D3位(低半字節(jié))有進(jìn)位或借位時(shí),AF=1;否則AF=0方向標(biāo)志DF:存儲(chǔ)地址自動(dòng)增加,DF=1,否則DF=0中斷允許標(biāo)志:IF=1,則允許中斷,IF=0,則禁止中斷陷阱標(biāo)志TF:TF=0,處理器正常工作;TF=1,處理器每執(zhí)行一條指令就中斷一次中斷向量表。掌握中斷向量表的構(gòu)成,計(jì)算中斷類型號(hào),中斷服務(wù)程序入口地址。中斷的工作過程。 中斷向量表是一種表數(shù)據(jù)結(jié)構(gòu),是中斷向量號(hào)與其對(duì)應(yīng)的中斷服務(wù)程序入口之間的鏈接表。該地址包括:偏移地址IP、段地址CS(共32位)每個(gè)中斷向量的低字是偏移地址、高字是段地址,需占用4個(gè)字節(jié)(低對(duì)低,高對(duì)高)。8088微處理器從物理地址000H開始到3FFH(1KB),依次安排各個(gè)中斷向量,向量號(hào)從0到255。256個(gè)中斷向量所占用的1KB區(qū)域,稱中斷向量表中斷向量的存放首址=N*4中斷類型:8088CPU具有哪些中斷類型?各種中斷如何產(chǎn)生,如何得到中斷向量號(hào)?除法錯(cuò)中斷:在執(zhí)行除法指令時(shí),除數(shù)為0或商超過了寄存器所能表達(dá)的范圍產(chǎn)生指令中斷:在執(zhí)行中斷指令I(lǐng)NTn時(shí)產(chǎn)生溢出中斷:在執(zhí)行溢出中斷指令I(lǐng)NTO時(shí),溢出標(biāo)志OF為1產(chǎn)生單步中斷:?jiǎn)尾綐?biāo)志TF為1,在每條指令執(zhí)行結(jié)束后產(chǎn)生非屏蔽中斷:外部通過NMI請(qǐng)求信號(hào)向微處理器提出請(qǐng)求時(shí)產(chǎn)生可屏蔽中斷:外部通過INTR請(qǐng)求信號(hào)向微處理器提出請(qǐng)求,并在允許可屏蔽中斷的條件下產(chǎn)生(2)除法錯(cuò)中斷、溢出中斷、單步中斷、非屏蔽中斷的向量號(hào)是8086微處理器內(nèi)部已經(jīng)確定指令中斷的操作數(shù)n就是向量號(hào)可屏蔽中斷的向量號(hào)在響應(yīng)中斷時(shí)通過數(shù)據(jù)總線從外部獲得什么是8259A的中斷結(jié)束字(EOI)?(1)IRi被響應(yīng)時(shí),ISR中對(duì)應(yīng)的Di位被置1;(2)中斷處理完畢,相應(yīng)的Di位應(yīng)置0。(3)向8259A送中斷結(jié)束指令,使ISR的某位清0,指令的內(nèi)容叫作中斷結(jié)束字。8259A中IRR、IMR和ISR三個(gè)寄存器的含義中斷請(qǐng)求寄存器IRR:保存8條外界中斷請(qǐng)求信號(hào)IR0~I(xiàn)R7的請(qǐng)求狀態(tài)Di位為1表示IRi引腳有中斷請(qǐng)求;為0表示無(wú)請(qǐng)求中斷屏蔽寄存器IMR:保存對(duì)中斷請(qǐng)求信號(hào)IRi的屏蔽狀態(tài)Di位為1表示IRi中斷被屏蔽(禁止);為0表示允許中斷服務(wù)寄存器ISR:保存正在被8259A處理的中斷的狀態(tài)Di位為1表示IRi中斷正在處理中;為0表示沒有被處理中斷的概念。中斷向量表的含義。深入理解8259的工作方式,優(yōu)先權(quán)設(shè)置、中斷結(jié)束處理、中斷源屏蔽、中斷觸發(fā)等等。8259的初始化編程。中斷服務(wù)程序編寫。中斷:指當(dāng)出現(xiàn)需要時(shí),CPU暫時(shí)停止當(dāng)前程序的執(zhí)行轉(zhuǎn)而執(zhí)行處理新情況的程序和執(zhí)行過程。優(yōu)先權(quán)設(shè)置:在ISR的Di位置位期間,禁止再發(fā)生同級(jí)和低級(jí)優(yōu)先權(quán)的中斷,但允許高級(jí)優(yōu)先權(quán)中斷的嵌套中斷結(jié)束處理:自動(dòng)中斷結(jié)束方式、普通中斷結(jié)束方式、特殊中斷結(jié)束方式;中斷向量表的含義:256個(gè)中斷向量所占用的1KB區(qū)域,稱中斷向量表計(jì)算機(jī)主機(jī)和I/O設(shè)備之間進(jìn)行數(shù)據(jù)傳送的方法。重點(diǎn)掌握查詢方式完成數(shù)據(jù)傳送的流程,要會(huì)編程。查詢傳送的特點(diǎn)是:工作可靠,適用面寬,但傳送效率低查詢輸入接口(考電路):代碼如下:movdx,8000h;dx指向狀態(tài)端口Status:inal,dx;讀狀態(tài)端口testal,01h;測(cè)試標(biāo)志位D0jzstatus;D0=0,未就緒,繼續(xù)查詢incdx;D0=1,就緒,DX指向數(shù)據(jù)端口inal,dx;從數(shù)據(jù)端口輸入數(shù)據(jù)中斷傳送:中斷傳送是一種效率更高的程序傳送方式;中斷過程的完成由中斷系統(tǒng)(硬件,如8259和CPU)和中斷服務(wù)程序(軟件)共同控制完成中斷工作過程:中斷請(qǐng)求(外設(shè))2、中斷響應(yīng)(CPU)3、關(guān)中斷(CPU)4、斷點(diǎn)保護(hù)(CPU)5、中斷識(shí)別(軟件/硬件)6、現(xiàn)場(chǎng)保護(hù)(用戶)7、中斷服務(wù)(用戶)8、恢復(fù)現(xiàn)場(chǎng)(用戶)9、開中斷(用戶/CPU)10、中斷返回(IRET/用戶)最小組態(tài)的寫總線周期時(shí)序:如何限制只能輸入小寫字母(61h~7Ah,課本P22),否則要求重新輸入。 .datamsgdb'notalowercase,inputagain', db 0dh,0ah,'$'input: movah,1 ;輸入小寫字母 int21h cmpal,61h jlonce-again cmpal,7Ah jaonce-again jmpconvertonce-again: movdx,offsetmsg movah,9 int21h jmpinput convert: subal,20h;轉(zhuǎn)換為大寫字母 ……采用查表法,實(shí)現(xiàn)一位16進(jìn)制數(shù)轉(zhuǎn)換為ASCII碼顯示04h——34h(4)0bh——42h(B)ASCII db30h,31h,32h,33h,34h,35h,36h,37h,38h,39h ;對(duì)應(yīng)0~9的ASCII碼 db41h,42h,43h,44h,45h,46h ;對(duì)應(yīng)A~F的ASCII碼hex db04h,0bh ;假設(shè)兩個(gè)16進(jìn)制數(shù);代碼段movbx,offsetASCII;BX指向ASCII碼表moval,hex ;AL取得一位16進(jìn)制數(shù);恰好就是ASCII碼表中的位移andal,0fh ;只有低4位是有效的,高4位清0xlat;換碼:AL←DS:[BX+AL]movdl,al ;欲顯示的ASCII碼送DLmovah,2 ;2號(hào)DOS功能調(diào)用int21h ;顯示一個(gè)ASCII碼字符moval,hex+1 ;轉(zhuǎn)換并顯示下一個(gè)數(shù)據(jù)andal,0fhxlatmovdl,almovah,2int21h編寫一個(gè)源程序,在鍵盤上按一個(gè)鍵,將從AL返回的ASCII碼值顯示出來(lái),如果按下ESC鍵則程序退出。(可調(diào)用書中的HTOASC子程序)HTOASC proc andal,0fh;al低四位保存待轉(zhuǎn) ;換的16進(jìn)制數(shù) cmpal,9 jbehtoasc1 addal,37h ;是A~F,加37H ret ;子程序返回htoasc1: addal,30h ;0~9,加30H ret ;子程序返回HTOASC endppushaxmovcl,4roral,clcallHTOASCcalldisp_a_charpopaxcallHTOASCcalldisp_a_char把從鍵盤輸入的一個(gè)小寫字母用大寫字母顯示出來(lái)(大小寫字母轉(zhuǎn)換)。movah,1 ;輸入小寫字母 int21h subal,20h ;轉(zhuǎn)換為大寫字母 movdl,al movah,2 int21h ;顯示寫一個(gè)子程序,根據(jù)入口參數(shù)AL=0、1、2,依次實(shí)現(xiàn)對(duì)大寫字母轉(zhuǎn)換成小寫、小寫轉(zhuǎn)換成大寫或大小寫字母互換。欲轉(zhuǎn)換的字符串在string中,用0表示結(jié)束。lucase proc pushbx movbx,offsetstring cmpal,0 jecase0cmpal,1jzcase1cmpal,2jzcase2jmpdonecase0: cmpbyteptr[bx],0jedone cmpbyteptr[bx],’A’jbnext0 cmpbyteptr[bx],’Z’janext0 addbyteptr[bx],20hnext0: incbx jmpcase0case1: cmpbyteptr[bx],0 jedone cmpbyteptr[bx],’a’ jbnext1 cmpbyteptr[bx],’z’ janext1 subbyteptr[bx],20hnext1: incbx jmpcase1case2: cmpbyteptr[bx],0jedone cmpbyteptr[bx],’A’jbnext2 cmpbyteptr[bx],’Z’janext20 addbyteptr[bx],20h jmpnext2next20: cmpbyteptr[bx],’a’ jbnext2 cmpbyteptr[bx],’z’ janext2 subbyteptr[bx],20hnext2: incbx jmpcase2done: popbx retlucase endp循環(huán)累加(調(diào)用子程序)array db12h,25h,0f0h,0a3h,3,68h,71h,0cah,0ffh,90hcount equ$-array ;數(shù)組元素個(gè)數(shù)result db? ;校驗(yàn)和;代碼段(主程序) movbx,offsetarray ;BX←數(shù)組的偏移地址 movcx,count ;CX←數(shù)組的元素個(gè)數(shù) callchecksum ;調(diào)用求和過程 movresult,al ;處理出口參數(shù)checksum proc xoral,al ;累加器清0sum: addal,[bx] ;求和 incbx ;指向下一個(gè)字節(jié) loopsumRetChecksumendp計(jì)算AX中有符號(hào)數(shù)的絕對(duì)值cmpax,0 jgenonneg ;條件滿足(AX≥0),轉(zhuǎn)移 negax ;條件不滿足,求補(bǔ)(即絕對(duì)值P43)nonneg:movresult,ax ;保存結(jié)果;不恰當(dāng)?shù)姆种?cmpax,0 jlyesneg ;條件滿足(AX<0),轉(zhuǎn)移 jmpnonnegyesneg: negax ;條件滿足,求補(bǔ)nonneg: movresult,ax ;保存結(jié)果設(shè)置兩個(gè)變量maxay和minay存放最大和最小值array dw10 dw-3,0,20,900,587,-632,777,234,-34,-56maxay dw? ;存放最大值minay dw? ;存放最小值leasi,array movcx,[si] ;取得元素個(gè)數(shù) deccx ;減1后是循環(huán)次數(shù) addsi,2movax,[si] movbx,ax maxck: addsi,2 cmp[si],ax ;與下一個(gè)數(shù)據(jù)比較 jleminck movax,[si] ;AX取得更大的數(shù)據(jù) jmpnextminck: cmp[si],bx jgenext movbx,[si] ;BX取得更小的數(shù)據(jù)next: loopmaxck ;計(jì)數(shù)循環(huán) movmaxay,ax ;保存最大值 movminay,bx ;保存最小值挑出數(shù)組中正數(shù)(不含0)和負(fù)數(shù),分別形成正、負(fù)數(shù)組DATASSEGMENTcountequ10arraydw23h,9801h…ayplusdwcountdup(0)ayminusdwcountdup(0)DATASENDSSTACKSSEGMENTSTACKSENDSCODESSEGMENTASSUMECS:CODES,DS:DATAS,SS:STACKSSTART:MOVAX,DATASMOVDS,AXmovsi,offsetarraymovdi,offsetayplusmovbx,offsetayminusmovax,dsmoves,axmovcx,count cldagain:lodsw cmpax,0 jlminus jznextminus:xchgbx,di stosw xchgbx,dinext:loopagainMOVAH,4CHINT21HCODESENDSENDSTART8259A的初始化程序段(7.8)moval,13H;寫入ICW1:設(shè)定邊沿觸發(fā)方式,單片方式movdx,0FFDCHoutdx,aljmpintr1intr1:moval,90H;寫入ICW2:設(shè)定IR0的中斷向量號(hào)為90hmovdx,0FFDEHoutdx,aljmpintr2intr2:moval,1;寫入ICW4:設(shè)定普通嵌套方式,普通中斷方式movdx,0FFDEHoutdx,al8259的初始化編程:主片:moval,11h ;寫入ICW1 out20h,alintr1: moval,08h ;寫入ICW2 out21h,alintr2: moval,04h ;寫入ICW3 out21h,alintr3: moval,05h ;寫入ICW4 out21h,al從片:moval,11h ;寫入ICW1 out0a0h,al intr5: moval,70h ;寫入ICW2 out0a1h,al intr6: moval,02h ;寫入ICW3 out0a1h,al intr7: moval,01h ;寫入ICW4 out0a1h,al試按如下要求分別編寫8253的初始化程序,已知8253的計(jì)數(shù)器0~2和控制字I/O地址依次為204H~207H。⑶使計(jì)數(shù)器2工作在方式2,計(jì)數(shù)值為02F0H。 moval,0b4h movdx,207h outdx,al movax,02f0h movdx,206h outdx,al ;先寫入低字節(jié) moval,ah outdx,al ;后寫入高字節(jié)8255的初始化編程要求:A口:方式1輸入、CH口:輸出、CL口:輸入、B口:方式0輸出方式控制字:10110001B或B1H初始化的程序段: movdx,0fffeh ;假設(shè)控制端口為FFFEH moval,0b1h ;方式控制字 outdx,al ;送到控制端口某系統(tǒng)中8253芯片中計(jì)數(shù)器的0-2和控制字端口地址分別是FFF0H~FFF3H。編寫8253兩個(gè)計(jì)數(shù)器初始化程序及兩個(gè)計(jì)數(shù)器的連通圖。計(jì)數(shù)器0的計(jì)數(shù)值:5M/1K=5000=1388H 方式控制字:00100101=25H、2DH、35H、3DH (十進(jìn)制計(jì)數(shù)) 00100100=24H、2CH、34H、3CH (二進(jìn)制計(jì)數(shù)) 計(jì)數(shù)器1的計(jì)數(shù)值:1000 方式控制字:01101001=69H、79H (十進(jìn)制計(jì)數(shù)) 01101000=68H、78H (二進(jìn)制計(jì)數(shù))MOVDX,0FFF3HMOVAL,25H;通道0,只寫高字節(jié),方式2,十進(jìn)制OUTDX,ALMOVDX,0FFF0HMOVAL,50H;計(jì)數(shù)初值5000OUTDX,ALMOVDX,0FFF3HMOVAL,69H;通道1,方式4OUTDX,ALMOVDX,0FFF1HMOVAL,10H;計(jì)數(shù)初值1000OUTDX,AL3、某字符輸出設(shè)備(如打印機(jī)),其數(shù)據(jù)口和狀態(tài)口的地址均為80H。在讀取狀態(tài)時(shí),當(dāng)標(biāo)志位D7=0時(shí),表明該設(shè)備閑,可以接收一個(gè)字符,請(qǐng)編寫利用查詢方式進(jìn)行數(shù)據(jù)傳送的程序段。要求將存放于符號(hào)地址addr處的一串字符(以$為結(jié)束標(biāo)志)輸出給該設(shè)備。movbx,offsetaddr;利用offset操作符,可在匯編過程中得到addr的偏移地址again: movah,[bx] cmpah,’$’ jzdonestatus: inal,80h ;查詢一次 testal,80h;兩個(gè)80h不一樣 jnzstatus;D7=1,表示設(shè)備忙,繼續(xù)查詢 moval,ah out80h,al ;輸出一個(gè)字節(jié) incbx jmpagain ;循環(huán)done: ……如圖10.23為用一片8255A控制8個(gè)8段共陰極LED數(shù)碼管的電路。現(xiàn)要求按下某個(gè)開關(guān),其代表的數(shù)字(K1為1,K2為2,…K8為8)在數(shù)碼管從左到右循環(huán)顯示(已有一個(gè)延時(shí)子程序delay可以調(diào)用),直到按下另一個(gè)開關(guān)。假定8255A的數(shù)據(jù)端口A、B、C及控制端口的地址依次為FFF8H~FFFBH。編寫完成上述功能的程序,應(yīng)包括8255A的初始化、控制程序和數(shù)碼管的顯示代碼表;顯示代碼表table db0c0h ;對(duì)應(yīng)0(任意) db0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h ;對(duì)應(yīng)1~8;8255A初始化 movdx,0fffbh moval,10001001b ;=89h outdx,al;控制程序again0: movdx,0fffah ;輸入開關(guān)狀態(tài) inal,dx movcx,8 ;確定哪個(gè)開關(guān)閉合 movah,01h ;movah,08hagain1: shral,1 ;shlal,1 jncdisp0 incah ;decah loopagain1 jmpdisp1 ;顯示字段disp0: movbx,offsettable moval,ah xlat movdx,0fff8h outdx,al ;輸出段碼disp1: movcx,8 ;循環(huán)顯示8位 moval,01h movdx,0fff9hdisp2: outdx,al ;輸出位碼 calldelay shlal,1 loopdisp2 jmpagain0 ;寫入方式字 moval,100×00×1b ;=81h movdx,控制口地址 ;0fffeh outdx,al ;加入下一段更好,使L0~L3全亮 moval,0fh movdx,端口C地址 ;0fffch outdx,al ;控制程序段 movdx,端口C地址 ;0fffch inal,dx ;讀入PC0~PC3 movcl,4 shlal,cl ;左移4位 outdx,al ;控制PC4~PC7以8255的B口作輸入口、連接邏輯電平開關(guān);以8255的A口作輸出口、連接發(fā)光二極管電路。要求:當(dāng)輸入不是全0時(shí),輸出與輸入保持一致(即高電平時(shí)點(diǎn)亮);當(dāng)輸入是全0時(shí),令發(fā)光二極管循環(huán)點(diǎn)亮(或閃爍告警)。begin:movdx,portc;8255初始化moval,82h ;A組方式0,A口出, ;B組方式0,B口入 outdx,al movah,0ffh movbl,0lp: movdx,portb;B口讀入開關(guān)狀態(tài) inal,dxtestal,ah;與ffh比較,看是否8個(gè)開關(guān)全閉合(0信號(hào)) jzshift movdx,porta;A口輸出開關(guān)狀態(tài) notal outdx,al jmplpshift:moval,bl;bl初值為0 movdx,porta notal outdx,al calldelay ;延時(shí) shlbl,1;移位 testbl,ah;ah初值為ffh jnzlp movbl,1 jmplp2、如果有一個(gè)輸入設(shè)備,其數(shù)據(jù)口地址為FFE0H,狀態(tài)口地址為FFE2H,當(dāng)狀態(tài)標(biāo)志D0=1時(shí),表明一個(gè)字節(jié)的輸入數(shù)據(jù)就緒,請(qǐng)編寫利用查詢方式進(jìn)行數(shù)據(jù)傳送的程序段。要求從該設(shè)備讀取100個(gè)字節(jié)并寫到從2000H:2000H開始的內(nèi)存中。通過讀取狀態(tài)寄存器的標(biāo)志位來(lái)檢查外設(shè)是否就緒。若不就緒就繼續(xù)查詢,即程序不斷循環(huán);直至就緒。然后,進(jìn)行下一步的傳送工作。movbx,2000h movds,bx movcx,100again: movdx,0ffe2hstatus: inal,dx ;讀入狀態(tài)標(biāo)志D0 testal,01h;al&01h jzstatus movdx,0ffe0h inal,dx ;輸入一個(gè)字節(jié) mov[bx],al;al→ds:[bx],寄存器間接尋址 incbx查詢方式完成數(shù)據(jù)傳送。1、編程實(shí)現(xiàn)以下功能:當(dāng)K0鍵單獨(dú)按下時(shí),發(fā)光二極管L0~L7將流水點(diǎn)亮(Ln→Ln+1),每個(gè)維持200ms;當(dāng)K1鍵單獨(dú)按下時(shí),發(fā)光二極管L0~L7將反向流水點(diǎn)亮(Ln←Ln+1),每個(gè)也維持200ms;在其他情況下各發(fā)光二極管均不點(diǎn)亮。假定有延時(shí)200ms的子程序DELAY可直接調(diào)用。again:movdx,8000h;8000h是I/O端口地址inal,dx ;讀入端口數(shù)據(jù)notal;開關(guān)閉合,讀入數(shù)據(jù)是0

溫馨提示

  • 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ù)覽,若沒有圖紙預(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論