


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、作者:Pan Hon glia ng僅供個人學(xué)習(xí)目錄實(shí)驗(yàn)一 DSG-88實(shí)驗(yàn)裝置熟悉組合邏輯和時序邏輯電路實(shí)驗(yàn) 1實(shí)驗(yàn)二數(shù)制轉(zhuǎn)換、算術(shù)/邏輯和數(shù)據(jù)傳輸匯編程序設(shè)計實(shí)驗(yàn)8實(shí)驗(yàn)三 多接口芯片綜合應(yīng)用實(shí)驗(yàn) 14實(shí)驗(yàn)一、DSG-88實(shí)驗(yàn)裝置熟悉組合邏輯和時序邏輯電路實(shí)驗(yàn)一、系統(tǒng)地構(gòu)成與功能DSG 88/51/98型微機(jī)教學(xué)實(shí)驗(yàn)裝置是一套用于計算機(jī)基本電路、匯編語言程序以及基本接口電路地教學(xué)實(shí)驗(yàn)設(shè)備其基本構(gòu)成如圖1所示圖1 DSG 88/51/98教學(xué)實(shí)驗(yàn)裝置其中主要組成部分如下:采用主頻為4.7MHZ地8088CPU為主CPU,并以最小方式構(gòu)成獨(dú)立地微機(jī)系 統(tǒng).配有一片62256靜態(tài)RAM構(gòu)成系統(tǒng)地3
2、2K基本內(nèi)存,一片27256EPROM(32K) 存放系統(tǒng)程序,另一片27256芯片插座和一片62256芯片插座留待系統(tǒng)地進(jìn)一步 擴(kuò)充.以54鍵標(biāo)準(zhǔn)ASCII碼鍵盤,40列X 2行字符型點(diǎn)陣式液晶顯示器作為本系統(tǒng) 地基本輸入/輸出設(shè)備.可直接使用匯編語言輸入和調(diào)試程序,并具有反匯編功能.具有同DOS操作系統(tǒng)下一致地 DEBUG操作界面,以及與PC DOS兼容地 BIOS功能調(diào)用界面.提供了各種標(biāo)準(zhǔn)外設(shè)接口:如打印機(jī)接口 ,RS232C接口等.眾多地I/O芯片向用戶開放,如:8251,8253,8255,8259,0832,0809等.用戶可以自定義監(jiān)控命令,也可設(shè)定敏感觸發(fā)特殊功能鍵.二、系統(tǒng)
3、編程和硬件接口信息(一)地址分配1. 系統(tǒng)內(nèi)存分配32K32K28K(或 60K)系統(tǒng)程序區(qū) 系統(tǒng)擴(kuò)展區(qū)2.存儲器譯碼用戶堆棧區(qū) 用戶程序區(qū) 系統(tǒng)堆棧區(qū)DEBUG系統(tǒng)數(shù)據(jù)區(qū)DOS系統(tǒng)數(shù)據(jù)區(qū)中斷矢量區(qū)U2Y002200350(601八R0A7MF)FFH0U2Y82210450(602(八If待R插0A)FMF)FFHFU78220550(601八IfRFOFMF)FFHFU70220650(602(待R插FO)7MF)FFH3輸入/輸出接口編址電路名稱信號線寄存器編址待擴(kuò)展I0Y0001FH8259I0Y1命令寄存器20H狀態(tài)寄存器21H8253I02YT040HT141HT242H控制寄存器
4、43H8255I0Y3PA 口60HPB 口61HPC 口62H控制寄存器63H打印機(jī)初始話線路INTII0Y480H打印機(jī)數(shù)據(jù)口(只寫)I0Y51B4H打印機(jī)狀態(tài)口 (只讀)I0Y52B6H8729I0Y53數(shù)據(jù)緩沖器B8H命令或狀態(tài)口B9H液晶顯示器 終端I0Y54數(shù)據(jù)口AEH命令口AFH8251T0Y6數(shù)據(jù)口C0H控制寄存器C1H待擴(kuò)展T0Y7E0FEH(二) BIOS地說明1教學(xué)機(jī)地BIOS功能定義基本與PC.DOS操作系統(tǒng)地BIOS兼容,有關(guān)功能可參考DOS操作系統(tǒng).2. 教學(xué)機(jī)地顯示器I/O功能調(diào)用INT10具體說明下表.3敏感觸發(fā)鍵是指用戶可定義一些特殊鍵,一旦該鍵按下,就立即轉(zhuǎn)
5、到相應(yīng)地矢量區(qū)入口地址運(yùn)行特定地功能程序.規(guī)定最多可設(shè)置13個特殊鍵,且根據(jù)其在 敏感鍵區(qū)地序號來確定相應(yīng)地中斷矢量人口 ,即2AH+第i個鍵中斷矢量地址.敏感鍵區(qū)被定為0000: 0457H0463H,其中放置相應(yīng)鍵地 ASCII碼值.一旦按下敏感AH=00H,AL=01HAH=01H,AL=數(shù)據(jù)AH=02H,AL=功能設(shè)置指令A(yù)H=03H,BL=列,BH=行AH=04H,AL=方式設(shè)置指令寫AL中地數(shù)據(jù)到屏上設(shè)置顯示屏,有關(guān)功能設(shè)置指令參見液晶使用手冊光標(biāo)控制(DDRAM地址設(shè)置)鍵,就能自動轉(zhuǎn)向2AH36H功能調(diào)用.中斷號絕對地址中斷內(nèi)容備注0000H除數(shù)為0,溢出系統(tǒng)發(fā)出中斷請求010
6、4H單步(Trap)0208HNMI030CH程序中斷0410H算術(shù)溢出050718H1FH保留用于系統(tǒng)擴(kuò)展0820H8259實(shí)時中斷8259硬中斷矢量區(qū)0924H8259鍵盤中斷0A28H用戶可用0B2CH0C30H串行口中斷0D0F34H4FH用戶可用1040 H顯示器i/o與PC DOS有異111344H4FH保留1450H查詢方式串行通訊1554H保留1658H讀鍵盤緩沖區(qū)175CH打印機(jī)功能調(diào)用181A60H6BH保留n1B6CHCTRL+C處理終止運(yùn)行程序1C1F70H7FH保留2080H程序終止n212784H9FH保留28A0HCTRL+S處理暫停運(yùn)行程序29A4HCTRL+P
7、處理聯(lián)機(jī)打印2A36A8HD8H用戶擴(kuò)展敏感觸發(fā)鍵處理特殊鍵處理37FFDCH3FFH保留使用說明INT10入口功能清屏AH=05HAH=06H,DS : BX=字串首址設(shè)置顯示屏,有關(guān)方式設(shè)置指令參見液晶使用手冊 讀當(dāng)前 DDRAM 數(shù)據(jù)字符到 AL中 顯示一串字符,直到遇到00H為止三、系統(tǒng)地操作說明1、鍵盤鍵盤主要由標(biāo)準(zhǔn)地ASCII碼鍵與功能鍵組成,其分布如下:功能鍵接口LU54鍵標(biāo)準(zhǔn)ASCII碼 鍵盤*SHIFT鍵:同其它鍵結(jié)合,用于區(qū)分上、下檔或大、小寫字符鍵入*CTRL鍵:同其它鍵結(jié)合,用于實(shí)現(xiàn)特定地控制功能,即CTRL+P=掛接或釋放打印機(jī)CTRL+S=暫停命令地運(yùn)行,直到任一鍵
8、入為止CTRL+C=中斷命令地運(yùn)行*F4:等同于 CTRL+C*F5:等同于 CTRL+S* J:加抹鍵* 等同于U2、DEBU命令說明系統(tǒng)一經(jīng)連接好,檢查無誤后,就可以通電運(yùn)行系統(tǒng)提供兩種啟動方式,即類型操作顯示功能熱啟動按下復(fù)位鍵>-WELCOME TO YOU!復(fù)位CPU和接口,清斷占八、冷啟動上電復(fù)位>-WELCOME TO YOU!同上,且復(fù)位系統(tǒng),自檢系統(tǒng)啟動完成后,顯示器上會顯示”提示符,等待操作命令.此時,系統(tǒng)裝載8088指令系統(tǒng)地動態(tài)調(diào)試功能程序 DEBUG.該程序與PC DOS地DEBUG功能 和界面基本一致,其命令和操作介紹如下.1. A命令:啟動小匯編程序格
9、式:A段址偏移量,即A段址:偏移量/從段址:偏移量構(gòu)成地實(shí)際地址單元起填充匯編程序 地目標(biāo)碼.A偏移量/從默認(rèn)地段址:偏移量構(gòu)成地實(shí)際單元起填充匯編程序地目標(biāo)碼.A/從默認(rèn)地段址:默認(rèn)地偏移量構(gòu)成地實(shí)際單元填充匯編程序地目標(biāo)碼.說明:1)啟動小匯編后,可輸入?yún)R編源程序地逐條指令語句,輸入完后按回車鍵退出2)輸入指令語句時,數(shù)字一律是不帶H后綴地16進(jìn)制數(shù).3)對存儲器單元時,在單元地址之前標(biāo)注 W(字)或(字節(jié))以示不可同 類型地操作數(shù).2. B命令:斷點(diǎn)設(shè)置在“”提示符下鍵入B/,系統(tǒng)就提示:“ i :” .I :等待您給出斷點(diǎn)地址,回車后,系統(tǒng)繼續(xù)提示:“i+1 ” .若直接回車來響應(yīng) 則
10、結(jié)束命令.系統(tǒng)允許設(shè)置最多10個斷點(diǎn).斷點(diǎn)地清除方法只能通過按下復(fù)位鍵 或重新上電來實(shí)現(xiàn),斷點(diǎn)設(shè)置可在輸入地匯編程序內(nèi)設(shè)定干個斷點(diǎn),使程序連續(xù)運(yùn)行到斷點(diǎn)時,程序中斷并顯示當(dāng)前各寄存器地內(nèi)容,以監(jiān)視程序運(yùn)行情況.3. D命令:顯示一段內(nèi)存單元中地數(shù)據(jù).格式:D,段址:起始地址,尾地址每次D命令操作只能一次顯示8字節(jié)內(nèi)容,若尾地址至起始地址字節(jié)數(shù)8,則 連續(xù)顯示所有單元地內(nèi)容,并可用CTR扌S來暫停顯示,用任意鍵來恢復(fù)用CTRL + C來中止數(shù)據(jù)顯示,并返回監(jiān)控狀態(tài).4、E命令:編輯指定內(nèi)存單元地、中地數(shù)據(jù).格式:E段址:偏移量每次只能一個一個字節(jié)地顯示或修改數(shù)據(jù).一量進(jìn)入E命令狀態(tài),就可通過 “
11、空格”鍵來使地址連續(xù)向高地址方向移動,而“一”鍵則使地址連續(xù)向 址方向 移動,然后直接鍵入新數(shù)據(jù)來修改原單元中地內(nèi)容.若直接用“回車”鍵來響應(yīng), 不退出E命令.5、G命令:連續(xù)運(yùn)行格式:G=段址:偏移量GB=段址:偏移量其中,G格式表示無斷點(diǎn)連續(xù)運(yùn)行由段址:偏移量指定人口聽程序 ,斷點(diǎn)是由 B命令來設(shè)定地.程序 在執(zhí)行過程中,可鍵入CTRL+C來中斷程序運(yùn)行,返回監(jiān)控 狀態(tài)或鍵入CTRL+S來暫停程序運(yùn)行,直到其它任意鍵鍵入為止.6、I命令:從I/O端口讀入數(shù)據(jù)并顯示格式:I/O端口葉址女口: >10042,則顯示地址為0042H端口地內(nèi)容.7、L命令:從外設(shè)讀入數(shù)據(jù)或輸入程序格式:LE
12、或LPLE-從EPROM編程器上讀入數(shù)據(jù)到內(nèi)存源數(shù)據(jù)起始地址由SI來指定,長度 由CX來確定.目標(biāo)數(shù)據(jù)區(qū)地地址由ES DI來指定,AX中地內(nèi)容用于確定芯片類 型,即 AX=0,1,2 分別指定 EPRO為 27128.22864,2764.LP通過RD 232C接口讀入外部計算機(jī)系統(tǒng)傳送來地數(shù)據(jù).& M命令:數(shù)據(jù)塊移動格式:M源地址:源起始址,尾址目標(biāo)段址:目標(biāo)起始址該命令可實(shí)現(xiàn)整塊數(shù)據(jù)在內(nèi)存中地移動9、O命令:數(shù)據(jù)送存指定I/ O端口單兀格式:O I/ O端口地址,數(shù)據(jù)女口: >O 0098,10,則完成送10H到地址為98H地I/ O端口上去.10、R命令:寄存器顯示與修改格
13、式:R或R寄存器名前者只顯示特定地一組寄存器地內(nèi)容,包括:CS,DS,IP,AX,F.后者則可顯示 并修改特定寄存器地內(nèi)容.11、T命令:單步運(yùn)行指定地程序格式:T 段址:偏移量單步運(yùn)行地程序入口地址由段址:偏移量來指定.每次運(yùn)行一條指令后,系統(tǒng) 都會顯示CS,DS,IP,AX地內(nèi)容.重復(fù)執(zhí)行T就可一步一步地運(yùn)行整個程序,直至程 序結(jié)束.12、U命令:程序反匯編格式:U段址:起始址,尾址系統(tǒng)提供小反匯編程序.該命令可實(shí)現(xiàn)從某地址到另一高端地址間地代碼反 匯編.單獨(dú)U操作只能顯示當(dāng)前行地反匯編.通常輸入程序后,可用反匯編命令來 查看輸入程序地情況.若發(fā)現(xiàn)源程序有輸入錯誤,可再次用A命令進(jìn)行修改.
14、13、W命令:將內(nèi)存數(shù)據(jù)或程序轉(zhuǎn)存到外設(shè)中去.格式:WE或 WPW寫有DS: SI指定人口,CX指定長度地數(shù)據(jù)塊到DI指定地EPRO座中.W由RS-232接口傳送由DS SI指定人口 ,CX指定長度地數(shù)據(jù)塊到外部計 算機(jī)系統(tǒng).實(shí)驗(yàn)二、數(shù)制轉(zhuǎn)換、算術(shù)/邏輯和數(shù)據(jù)傳輸匯編程序設(shè)計實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?. 熟悉鍵盤使用和程序調(diào)試地方法.2. 掌握不同進(jìn)制數(shù)和數(shù)碼相互轉(zhuǎn)換地程序設(shè)計方法,加深對數(shù)碼轉(zhuǎn)換地理 解.3掌握使用運(yùn)算類指令編程及調(diào)試地方法.4 掌握分支、循環(huán)、子程序調(diào)用等基本程序結(jié)構(gòu),學(xué)習(xí)綜合程序地設(shè)計、編 制及調(diào)試二、實(shí)驗(yàn)設(shè)備DSG-88/51/98 教學(xué)機(jī)一臺三、實(shí)驗(yàn)內(nèi)容及步驟(一)數(shù)制、數(shù)碼
15、轉(zhuǎn)換類程序設(shè)計及其調(diào)試實(shí)驗(yàn)計算機(jī)輸入設(shè)備輸入地信息一般是 ASCII或BCD碼表示地數(shù)據(jù)或字符,CPU 處理信息一般均用二進(jìn)制進(jìn)行計算或其他處理,處理結(jié)果輸出往往又以ASCII碼、 BCD碼等形式出現(xiàn).因此,必須掌握各類數(shù)制和數(shù)碼之間地轉(zhuǎn)換地程序編制 .各數(shù)制和數(shù)碼對應(yīng)關(guān)系如表1所示.表1十六進(jìn)制數(shù)BCD碼二進(jìn)制數(shù)ASCII 碼十六進(jìn)制數(shù)BCD碼二進(jìn)制數(shù)ASCII 碼00000000030H81000100038H10001000131H91001100139H20010001032HA40H30011001133HB41H40100010034HC42H50101010135HD43H601
16、10011036HE44H70111011137HF45H1. 將ASCII碼表示地十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)十進(jìn)制可表示為:進(jìn)一步可表示為:可見,從十進(jìn)制地最高位Dn開始作乘10加次位地操作,將結(jié)果再乘以10再 加下一個次位,如此重復(fù),則可求出二進(jìn)制數(shù)結(jié)果來.程序流程圖及參考程序如圖 3.1.在次規(guī)定,被轉(zhuǎn)換地ASCII碼十進(jìn)制數(shù)為5位,分別存放在3500H-3504H單元 中,而轉(zhuǎn)換結(jié)果存放在3510H -3511 H兩單元中.地址(H)指令注釋2000MOV Sl,3500;源首地址2003MOV Dl,3510;結(jié)果首址2006MOV BX,000A2009MOV CX,0004200CM
17、OV AH,00200EMOV AL,BSI2010SUB AL,302012MUL BX2014ADD AL,BSI+012017JNC 201F2019 JNC AH201B JNC 201F201DMOV AH,FF201FSUB AL,302021INC SI2022LOOP 2012;轉(zhuǎn)換元否2024MOV WDI,AX;存結(jié)果2026INT;停機(jī)圖1實(shí)驗(yàn)步驟(1) 輸入程序并檢查無誤(2) 在3500-3504H單元中存入5位十進(jìn)制地 ASCII碼,即E3500/,并輸入 相應(yīng)地數(shù),如:3030303132.(3) G=2000運(yùn)行程序,并用CTRL+(來中斷程序返回監(jiān)控狀態(tài).(4
18、) 用D3510來查看結(jié)果,應(yīng)為:3510 0C 00(5) 反復(fù)試幾組數(shù),考察程序地正確性,并找出能夠被轉(zhuǎn)換地最大十進(jìn)制數(shù)2. 將表1中可知十六進(jìn)制數(shù)加 30H即可得到0H-9H地ASCII碼,而要得到 AH-FH地 ASCII碼,則需再加7H.因此.設(shè)經(jīng)過CPU處理后地4位十六進(jìn)制數(shù)存在 起始地址為3500H地內(nèi)存單元中,把它們轉(zhuǎn)換成ASCII碼后,再分別存放入起始 地址為350AH地內(nèi)存單元中.程序流程圖及參考程序如圖2所示.實(shí)驗(yàn)步驟:(1) 輸入程序并檢查無誤(2) 在3500 3501H單元中存入4位十六進(jìn)制數(shù).如203B 即E3500/, 并輸入3B,20.(3) G=2000/,
19、運(yùn)行以上程序.(4) D3500/,顯示結(jié)果為 000: 350A 42 33 30 32,輸入數(shù)與結(jié)果 ASCH 碼對應(yīng)順序相反(5) 反復(fù)試幾組數(shù),考查程序地正確性.3. 將BCD碼轉(zhuǎn)換為二進(jìn)制數(shù)設(shè)四個二位十進(jìn)制數(shù)地BCD碼存放在地址為3500H地單元中,轉(zhuǎn)換出地二進(jìn) 制數(shù)存入其址為3510H地內(nèi)存單元中,程序流程圖及參考程序如圖3所示.實(shí)驗(yàn)步驟:(1) 輸入程序并檢查無誤(2) 在35003507H單元中存入四個 2位二進(jìn)制BCD碼數(shù),如:12,34,56,78, 即 E3500,輸入 01,02,03,04,05,06,07,08.(3) G=200(T運(yùn)行以上程序.(4) D= 35
20、10/,顯示結(jié)果應(yīng)為 3510 0C 00 22 00 38 00 4E 00.(5) 反復(fù)試幾組數(shù),考查程序在正確性.(二) 運(yùn)算類程序設(shè)計實(shí)驗(yàn)8086/8088指令系統(tǒng)提供了實(shí)現(xiàn)加、減、乘、除運(yùn)算地基本指令,可對表3.2 所示地數(shù)據(jù)類型進(jìn)行算術(shù)運(yùn)算.1. 十進(jìn)制數(shù)地BCD碼相減運(yùn)算設(shè)雙字節(jié)BCD碼表示地2位十進(jìn)制數(shù),被減數(shù)存放在35003510H單元,減數(shù) 存放在35023503H單元,相減后存放于35103511H單元中.實(shí)驗(yàn)步驟(1) 輸入實(shí)驗(yàn)程序并檢查無誤.(2) E3500/, 35003503單元中存放被減數(shù)和減數(shù).如40和12在BCD 碼;00,04,02,01.(3) G=2
21、00/,運(yùn)行以下程序.(4) D3510/,顯示計算結(jié)果應(yīng)為:3510 08,02.(5) 反復(fù)試幾組數(shù),考查程序地正確性.2、考查乘法指令對狀態(tài)標(biāo)志位地影響.乘法 指令MUL,IMUL對標(biāo)志狀態(tài)CF,OF地影響都是通過指令執(zhí)行后最高位上 產(chǎn)生地進(jìn)(借)位,溢出狀態(tài)來作用地.設(shè)從3000H單元開始有10個8位二進(jìn)制 數(shù),將其各自乘以2,若有溢出,顯示“ 0”;有進(jìn)位顯示“ C ;否則,只顯示、間 隔符“,”.每一數(shù)相應(yīng)地標(biāo)志顯示之間均用“,”來間隔,于是,可用各種數(shù)來考 查乘法指令對標(biāo)志位地影響.(1) 輸入實(shí)驗(yàn)程序并檢查無誤.(2) 準(zhǔn)備10個數(shù)存放到3000-3009H單元中,運(yùn)行程序,觀
22、察顯示結(jié)果,并認(rèn) 真分析.(3) 反復(fù)試幾組數(shù),思考為什么沒有“ C”顯示.(4) 用MUL旨令代替IMUL指令,重復(fù)步驟(2)、(3).(5) 總結(jié)乘法指令MULffi IMUL對標(biāo)志位OF,CF地影響.(三) 程序結(jié)構(gòu)類型實(shí)驗(yàn)1、數(shù)據(jù)塊地搬移要求將內(nèi)存中一數(shù)據(jù)塊傳送到另一存貯區(qū)當(dāng)源數(shù)據(jù) 塊首址目地數(shù)據(jù)塊首址時,從數(shù)據(jù)與會首址開始傳 送數(shù)據(jù). 當(dāng)源數(shù)據(jù)塊首址V目地數(shù)據(jù)首址時,人數(shù)據(jù)塊末地址開始傳 SI指向源數(shù)據(jù)塊首 址,DI指向目地數(shù)據(jù)塊自址,數(shù)據(jù)塊長度地字節(jié)數(shù)存放在 CX中.實(shí)驗(yàn)步驟(1) 輸入程序并檢查無誤(2) 用E命令,在以SI為起址地單元中填入16個數(shù).(3) 運(yùn)行程序,并用D命令
23、查看以DI為起址地單元 中地數(shù)據(jù),是否與 SI單元中數(shù)據(jù)相同.(4) 改變SI和DI地取值,觀察在三種不同地數(shù)據(jù)塊情況下程序地運(yùn)行.1、求其數(shù)據(jù)塊內(nèi)負(fù)數(shù)地個數(shù)為統(tǒng)計數(shù)據(jù)塊內(nèi)負(fù)數(shù)地個數(shù),需要逐個判斷該數(shù)據(jù)區(qū)內(nèi)每一個數(shù)據(jù),然后將 所有數(shù)據(jù)中凡是符號位為1地數(shù)據(jù)地個數(shù)累加起來,即得區(qū)內(nèi)所包含負(fù)數(shù)地具數(shù) 高數(shù)據(jù)區(qū)首址為3000H,第一個單元豐收放區(qū)內(nèi)數(shù)據(jù)地個數(shù),從第直單元開始豐 收放數(shù)據(jù),緊接著數(shù)據(jù)區(qū)后一個單元內(nèi)存放程序運(yùn)行結(jié)果.程序 地流程 圖及實(shí)驗(yàn)參考程序如圖3.8所示.實(shí)驗(yàn)步驟(1) 輸入程序并檢查無誤.(2) 用E命令輸入實(shí)驗(yàn)數(shù)據(jù),如E3000/06,12,88,82(3) G=2000,運(yùn)行
24、實(shí)驗(yàn)程序.(4) 用D命令查看存放結(jié)果單元是否正確.(5) 反復(fù)試幾組數(shù)據(jù),檢查程序運(yùn)行結(jié)果.(6) 修改上面程序,使其能分別求出數(shù)據(jù)區(qū)中正數(shù)地個數(shù).2、求 N!利用子程序地嵌套和子程序地遞歸調(diào)用,實(shí)現(xiàn)N!地運(yùn)算.根據(jù)階乘運(yùn)算,有N! =N* (N-1) ! =N* ( N-1) * (N-2) !=其中,0 ! =1.欲求N地階乘,可以用一遞歸子程序來實(shí)現(xiàn),每次遞歸調(diào)用時應(yīng)調(diào)用參數(shù) 減1,即求(N-1)地階乘,并且當(dāng)調(diào)用參數(shù)為0時應(yīng)停止遞歸調(diào)用,且有中間結(jié)果 0 ! =1.最后將每次調(diào)用地參數(shù)相乘得到最后結(jié)果 .因每次遞歸調(diào)用時,參數(shù)都送 入棧中,當(dāng)N減為0而程序開始返回時,應(yīng)按嵌套地方式逐
25、層取出相應(yīng)地調(diào)用參 數(shù).高N在OH-FH間取數(shù),且放在3000H單元中,N !地結(jié)果放在3010H起地單 元中,實(shí)現(xiàn)N!地參考程序如圖3.9所示.實(shí)驗(yàn)步驟(1)輸入程序并檢查無誤.(2)隨意給定一些正整數(shù),運(yùn)行程序,驗(yàn)證結(jié)果.(3)依據(jù)設(shè)計思想以及參考程序繪制出程序流程圖,理解程序執(zhí)行過程.(4)若令N=3,請畫出參考程序運(yùn)行時地堆棧變化情況,并加以解 釋.四、思考題(1)編制程序,將從起址3500H存入地5位十進(jìn)制數(shù)地ASCH轉(zhuǎn)換成5位十 進(jìn)制數(shù)地BCD碼,存入起址為350AH地5個單元中去,并上機(jī)調(diào)試,通過程序.(2)編制程序,將在35003501H力兩單元內(nèi)存放地16位二進(jìn)制數(shù),轉(zhuǎn)換成
26、5位十進(jìn)制數(shù)地ASCH碼,存入起址為3510H地5個單元中去,并上機(jī)調(diào)試,通過程序.實(shí)驗(yàn)三、多接口芯片綜合應(yīng)用實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?、學(xué)習(xí)掌握中斷控制器8259地工作原理及編程方法2、學(xué)習(xí)并掌握8255地各種工作方式及其應(yīng)用3、學(xué)習(xí)掌握8253地工作方式及應(yīng)用編程4、綜合多接口芯片應(yīng)用二、實(shí)驗(yàn)設(shè)備1、DSG-88/51/98 教學(xué)機(jī)一臺2、74LS00,8259、8253一片芯片各一片,1K電阻四個,微動開關(guān)兩個.3、74LS48,8255各一片,共陰極七段數(shù)碼管一塊,1K電阻二個.三、DSG-88/51/98教學(xué)機(jī)中地接口芯片功用介紹中斷控制器8259是專門為控制優(yōu)先級中斷而設(shè)計開發(fā)地芯片.它將
27、中斷優(yōu)先 級排隊(duì),辨別中斷源以及提供中斷矢量地電路集成在一起,因此,無需任何附加電路,只需對8259進(jìn)行編程,就可以管理8級中斷,并選擇優(yōu)先模式和中斷請求方式 即中斷結(jié)構(gòu)可以由用戶編程來設(shè)定同時,還可通過多片8259地級連,構(gòu)成多達(dá) 64級地矢量中斷系統(tǒng).本教學(xué)機(jī)中采用了一片8259芯片,其電路如圖所示.8259端口地址20H21H.教學(xué)機(jī)系統(tǒng)啟動時,該片8259被初始化,其初始化是通過系統(tǒng)中地初始化程 序設(shè)置初始化命令字ICW1ICW來實(shí)現(xiàn)地.初始化程序流程圖如圖上所示.系統(tǒng)初始化后,規(guī)定0和1號中斷源分別提供給實(shí)時鐘和鍵盤中斷,用戶可 使用其余地中斷源(當(dāng)4號中斷源不被串行口使用時).其中
28、6號和7號中斷請 求線接到圓孔信號插座上可引出,在進(jìn)入監(jiān)控后,只有1號中斷源處于開啟狀態(tài), 其它中斷源都被屏蔽了 .中斷矢量地址與中斷號之間地關(guān)系如下表所示.中斷序號01234567功能調(diào)用08H09H0AH0BH0CH0DH0EH0FH矢量地址20H24H28H2CH30H34H38H3CH23H27H2BH2FH33H37H3BH3FH說明實(shí)時鐘鍵盤可用可用串行口可用可用可用8255是通過可編程并行I/O接口芯片,它具有A,B,C三個并行接口 ,用+5V 單電源供電,并有三種工作方式.8255端口地址60H 61H 62H和63H.方式0基本輸入/輸出方式方式1選通輸入/輸出方式方式2雙向
29、選通工作方式下圖所示是PA 口工作在方式0輸出狀態(tài)實(shí)驗(yàn)電路接線圖可編寫程序,使 8255端口 A工作在方式0并作為輸出口 ,將其PA-PAa通過74LS48BC碼七段顯 示驅(qū)動器,在數(shù)碼塊上循環(huán)顯示“ 0” - “9”十個數(shù)字.8253是一種可編程定時/計數(shù)器,共有3個十六位計數(shù)器,其計數(shù)頻率范圍02MHZ用 +5V單電源供電.端口地址40H 41H 42H和43H.8253地功能用途:a、延時中斷,b、可編程頻率發(fā)生器,c、事件計數(shù)器,d、二進(jìn)倍頻器,e、實(shí)時時鐘,f、數(shù)字單穩(wěn),g、復(fù)雜地電機(jī)控制器8253地六種工作方式:(1)方式0:計數(shù)結(jié)束中斷,(3) 方式2:頻率發(fā)生器,(5) 方式4
30、:軟件觸發(fā)地選通信號(2)方式1:可編程頻率發(fā)生器(4) 方式3:方波頻率發(fā)生器(6) 方式5:硬件觸發(fā)地選通信號在教學(xué)機(jī)上,8253地0號計數(shù)輸出與8259地0號中斷源相連,作為實(shí)時鐘中斷信號;1號計數(shù)器輸入口接1.8432MHZ地信號源,輸出口接8251地收、發(fā)時鐘 端,供串行通訊用這里1號計數(shù)器僅當(dāng)作為一個分頻器來用;2號計數(shù)器作為開 放借口,提供給用戶使用,可在圓孔信號插座上引出定時中斷接線圖如下: 四、實(shí)驗(yàn)要求和內(nèi)容應(yīng)用8253作為定時,用8255作為顯示用,8259實(shí)現(xiàn)IRQ6 IRQ7和定時三個 中斷管理.具體實(shí)現(xiàn)如下功能:8253產(chǎn)生1s定時中斷,時間加1,通過8255顯示 時
31、間(1位),通過開關(guān)撥動隨機(jī)產(chǎn)生IRQ6或IRQ7中斷,并通過8255顯示對應(yīng) 中斷號6或7.五、實(shí)驗(yàn)步驟1、按提供地圖接好實(shí)驗(yàn)電路8255和8253見前面圖,8259接線圖如下2、分別測試8259管理IRQ6和IRQ7,8255顯示和8253定時實(shí)現(xiàn)程序(例 子程序見后)3、編程實(shí)現(xiàn)三個芯片綜合地程序(定時顯示、彩燈循環(huán)、定時計數(shù))4、調(diào)試程序并記錄調(diào)試結(jié)果六、實(shí)驗(yàn)報告要求1實(shí)驗(yàn)?zāi)康?、實(shí)驗(yàn)要求3、實(shí)驗(yàn)硬件接線設(shè)計a、畫接線圖b、采用地芯片及在本實(shí)驗(yàn)中作用c、芯片端口地址d、芯片在本實(shí)驗(yàn)中引腳地具體功能定義e、本實(shí)驗(yàn)中芯片地初始化命令以及和系統(tǒng)地接線方式(三總線地連接)等4 、程序設(shè)計a、畫
32、流程圖主程序、子程序和中斷服務(wù)程序地流程圖b、說明中斷矢量表地替換實(shí)現(xiàn)以及程序在存儲器中地安排c、存儲器中變量安排d、編寫代碼(含注解)5、程序調(diào)試a、調(diào)試方法設(shè)計b、調(diào)試步驟c、結(jié)果記錄6、總結(jié)分析a、程序設(shè)計達(dá)到要求地功能沒有b、調(diào)試中出現(xiàn)地問題如何解決地c、使用中應(yīng)該注意地事項(xiàng)d、有沒有可改進(jìn)地地方.七、參考例程8259控制IRQ6和IRQ7例程要求當(dāng)無中斷請求時,執(zhí)行主程序,即延時顯示“ main” ;若有中斷請求,則執(zhí)行其中斷服務(wù)程序,顯示該中斷號“ 6”或“7”;若正在執(zhí)行較低級中斷服務(wù)程 序,則允許比它優(yōu)先級高地中斷被響應(yīng)(IRQ6優(yōu)先于IRQ7).主程序在執(zhí)行過程實(shí)驗(yàn)參考程序如
33、下:地址(H)指令2000CALL20492003NOP2004MOVAL,082006OUT21,AL2008MOVAL,09200AOUT21,AL200CMOVAL,3D200EOUT21,AL2010STI2011MOVAH,062013MOVBX,20662016INT 102018CALL2039201BJMP201B201DSTI201ECALL20392021MOVAX,01362024INT 10中,每顯示一個“ main” .空一格.IRQ6 中斷處理注釋;中斷矢量替換子程序調(diào)用2026 MOV AL,202028 OUT 20,AL202A IRET202B STI202
34、C CALL 2039;IRQ7中斷處理2039IRET2039PUSHCX203APUSHCX203BMOVCX,0040203EMOVAX,056C2041DECAX2042JNE :20412044LOOP203E2046POPAX2047POPCX2048RET202F MOV AX,01372032 INT 102034MOV AL,202036 OUT 20,AL;延時子程序2049MOV AX,201D204CMOV W0038,AX204FMOV AX,00002052MOV W003A,AX2055MOV AX,202B2058MOV W003C,AX205BMOV AX,0
35、000205EMOV W003E,AX2061MOV AL,132063OUT 20,AL2065RET2066DB 4D2067DB 412068DB 492069DB 4E206ADB 20206BDB 008255 實(shí)現(xiàn)七段數(shù)碼塊上循環(huán)顯示“ 0” - “9”十個數(shù)字例程MOV AL,80H ; PA 輸出OUT 63H, ALMOV AL, 0L2:OUT 60H,AL;顯示CALL DelayINC ALCMP AL,0AHJNZ L3MOV AL,0HL3: JMP L2Delay : MOV CX,0FFFFHL1:NOPNOPLOOP L1RET8253定時器應(yīng)用實(shí)驗(yàn)參考程序(
36、接線圖見前面)利用8253地0號計數(shù)器來定時中斷(IRQ0),循環(huán)顯示“ 0” “9”十個數(shù)字.地址指令2000MOV AX,201D2003MOV W0020,AX2006MOV AX,00002009MOV W0022,AX200CMOV AL,FC200EOUT 21,AL2010MOV AL,152012OUT 43,AL2014MOV AL,FF2016OUT40,AL2018MOV DL,30201ASTI201BJMP201A201DMOV AH,01201FMOV AL,DL2021CMPAL,3A2023JNE202B2025MOV AL,0D2027INT102029MOV
37、 AL,30202BINT10202DINTAX202EMOV,DL,AL2030MOV,AX,01202033INT102035CALL203D2038MOV AL,20203AOUT20,AL203CIRET203DPUSHAX203EMOVCX,01002041MOVAX,05602044DECAX2045JNE20442047LOOP20412049POPAX204ARETDEBUG命令和操作介紹如下:1.A命令:啟動小匯編程序格式:A段址偏移量,即A段址:偏移量/從段址:偏移量構(gòu)成地實(shí)際地址單元起填充匯編程序 地目標(biāo)碼.A偏移量/從默認(rèn)地段址:偏移量構(gòu)成地實(shí)際單元起填充匯編程序地 目
38、標(biāo)碼.A/從默認(rèn)地段址:默認(rèn)地偏移量構(gòu)成地實(shí)際單元填充匯編程序地目標(biāo)說明:1)啟動小匯編后,可輸入?yún)R編源程序地逐條指令語句,輸入完后按回車鍵 退出.2)輸入指令語句時,數(shù)字一律是不帶H后綴地16進(jìn)制數(shù).3)對存儲器單元時,在單元地址之前標(biāo)注 W(字)或(字節(jié))以示不可同 類型地操作數(shù).2、B命令:斷點(diǎn)設(shè)置在“”提示符下鍵入B/,系統(tǒng)就提示:“ i :” .I :等待您給出斷點(diǎn)地址,回車后,系統(tǒng)繼續(xù)提示:“i+1 ” .若直接回車來響應(yīng) 則結(jié)束命令.系統(tǒng)允許設(shè)置最多10個斷點(diǎn).斷點(diǎn)地清除方法只能通過按下復(fù)位鍵 或重新上電來實(shí)現(xiàn),斷點(diǎn)設(shè)置可在輸入地匯編程序內(nèi)設(shè)定干個斷點(diǎn),使程序連續(xù)運(yùn)行到斷點(diǎn)時,程
39、序中斷并顯示當(dāng)前各寄存器地內(nèi)容,以監(jiān)視程序運(yùn)行情況.3、D命令:顯示一段內(nèi)存單元中地數(shù)據(jù).格式:D,段址:起始地址,尾地址每次D命令操作只能一次顯示8字節(jié)內(nèi)容,若尾地址至起始地址字節(jié)數(shù)>8,則 連續(xù)顯示所有單元地內(nèi)容,并可用CTR扌S來暫停顯示,用任意鍵來恢復(fù)用CTRL + C來中止數(shù)據(jù)顯示,并返回監(jiān)控狀態(tài).4、E命令:編輯指定內(nèi)存單元地、中地數(shù)據(jù).格式:E段址:偏移量每次只能一個一個字節(jié)地顯示或修改數(shù)據(jù).一量進(jìn)入E命令狀態(tài),就可通過 “空格”鍵來使地址連續(xù)向高地址方向移動,而“一”鍵則使地址連續(xù)向 址方向 移動,然后直接鍵入新數(shù)據(jù)來修改原單元中地內(nèi)容.若直接用“回車”鍵來響應(yīng), 不退出
40、E命令.5、G命令:連續(xù)運(yùn)行格式:G=段址:偏移量GB=段址:偏移量其中,G格式表示無斷點(diǎn)連續(xù)運(yùn)行由段址:偏移量指定人口聽程序 ,斷點(diǎn)是由 B命令來設(shè)定地.程序 在執(zhí)行過程中,可鍵入CTRL+C來中斷程序運(yùn)行,返回監(jiān)控 狀態(tài)或鍵入CTRL+S來暫停程序運(yùn)行,直到其它任意鍵鍵入為止.6、I命令:從I/O端口讀入數(shù)據(jù)并顯示格式:I/O端口葉址女口: >10042,則顯示地址為0042H端口地內(nèi)容.7、L命令:從外設(shè)讀入數(shù)據(jù)或輸入程序格式:LE或LPLE-從EPROM編程器上讀入數(shù)據(jù)到內(nèi)存源數(shù)據(jù)起始地址由SI來指定,長度 由CX來確定.目標(biāo)數(shù)據(jù)區(qū)地地址由ES DI來指定,AX中地內(nèi)容用于確定芯
41、片類 型,即 AX=0,1,2 分別指定 EPRO為 27128.22864,2764.LP通過RD 232C接口讀入外部計算機(jī)系統(tǒng)傳送來地數(shù)據(jù).& M命令:數(shù)據(jù)塊移動格式:M源地址:源起始址,尾址目標(biāo)段址:目標(biāo)起始址該命令可實(shí)現(xiàn)整塊數(shù)據(jù)在內(nèi)存中地移動9、O命令:數(shù)據(jù)送存指定1/ O端口單兀格式:O I/ O端口地址,數(shù)據(jù)女口: >0 0098,10,則完成送10H到地址為98H地I/ O端口上去.10、R命令:寄存器顯示與修改格式:R或R寄存器名前者只顯示特定地一組寄存器地內(nèi)容,包括:CS,DS,IP,AX,F.后者則可顯示 并修改特定寄存器地內(nèi)容.11、T命令:單步運(yùn)行指定地
42、程序格式:T 段址:偏移量單步運(yùn)行地程序入口地址由段址:偏移量來指定.每次運(yùn)行一條指令后,系統(tǒng) 都會顯示CS,DS,IP,AX地內(nèi)容.重復(fù)執(zhí)行T就可一步一步地運(yùn)行整個程序,直至程 序結(jié)束.12、U命令:程序反匯編格式:U段址:起始址,尾址系統(tǒng)提供小反匯編程序.該命令可實(shí)現(xiàn)從某地址到另一高端地址間地代碼反 匯編.單獨(dú)U操作只能顯示當(dāng)前行地反匯編.通常輸入程序后,可用反匯編命令來 查看輸入程序地情況.若發(fā)現(xiàn)源程序有輸入錯誤,可再次用A命令進(jìn)行修改.13、W命令:將內(nèi)存數(shù)據(jù)或程序轉(zhuǎn)存到外設(shè)中去.格式:WE或 WPW寫有DS: SI指定人口,CX指定長度地數(shù)據(jù)塊到DI指定地EPROI座中.W由RS-2
43、32接口傳送由DS SI指定人口 ,CX指定長度地數(shù)據(jù)塊到外部計 算機(jī)系統(tǒng).附錄:完整參考程序說明:程序地址匯編形成,其中X和丫分別表示一個存儲單元,按實(shí)際地址安 排.CALL IRQSEV ;中斷矢量替換子程序調(diào)用NOPMOV AL,13 ;8259 初始化OUT 20,ALMOV AL,08OUT 21,ALMOV AL,09OUT 21,ALMOV AL,3DOUT 21,ALMOV AL,80H ; 8255 初始化 PA 輸出OUT 63H, ALMOV AL,15 ;8253 初始化OUT 43,ALMOV AL,FFOUT 40,ALSTIMOV AH, 06HMOV BX,DTINT 10JMP $IRQ6:STI ;IRQ6中斷處理PUSH AXMOV AL,06OUT 60H,ALMOV AL,20OUT 20,ALPOP AXIRETIRQ7:STI ;IRQ7中斷處理PUSH AXMOV AL,07OUT 60H,ALMOV AL,20OUT 20,ALPOP AXIRETIRQSEV:MOV AX,IRQ6MOV W0038,AXMOV AX,0000MOV W003A,AXMOV AX,IRQ7MOV W003C,AXMOV AX,0000MOV
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國數(shù)顯量具產(chǎn)銷需求分析及投資發(fā)展前景預(yù)測研究報告
- 湖北省襄陽三中2025年高考英語二模試卷含解析
- 職業(yè)技術(shù)學(xué)院2024級計算機(jī)網(wǎng)絡(luò)技術(shù)專業(yè)人才培養(yǎng)方案
- 廣東省廣州市2025屆高三下學(xué)期綜合測試(二)(二模)數(shù)學(xué)試題 含解析
- 上海市金山區(qū)2024-2025學(xué)年八年級下學(xué)期中化學(xué)試題(原卷版+解析版)
- 生態(tài)環(huán)境監(jiān)測中的遙感與GIS技術(shù)考核試卷
- 電氣安裝石油與開采設(shè)備考核試卷
- 管道配件生產(chǎn)的自動化技術(shù)考核試卷
- 船舶改裝施工過程中的質(zhì)量安全管理協(xié)同考核試卷
- 納米材料在海水淡化處理中的應(yīng)用考核試卷
- 【9數(shù)一?!?025年安徽合肥市第四十五中學(xué)九年級中考一模數(shù)學(xué)試卷(含答案)
- 電網(wǎng)工程設(shè)備材料信息參考價(2024年第四季度)
- 2024年浙江省中考社會試卷真題(含標(biāo)準(zhǔn)答案及評分標(biāo)準(zhǔn))
- 國開2024年秋《生產(chǎn)與運(yùn)作管理》形成性考核1-4答案
- DB43∕T 497-2009 博落回果-行業(yè)標(biāo)準(zhǔn)
- 創(chuàng)意綜藝風(fēng)脫口秀活動策劃PPT模板
- 大客戶營銷技巧ppt課件
- C++優(yōu)秀課件PPT
- 團(tuán)險新產(chǎn)品契約及核保細(xì)則
- 定向鉆(拉管)施工方案
- 柴油發(fā)電機(jī)安裝單元評定表
評論
0/150
提交評論