已閱讀5頁(yè),還剩25頁(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)介
匯編語(yǔ)言與接口技術(shù)實(shí)驗(yàn)報(bào)告 2012-2013學(xué)年 第1學(xué)期匯編語(yǔ)言與接口技術(shù)實(shí)驗(yàn)報(bào)告學(xué) 院: 信息與電子工程學(xué)院 專 業(yè): 班 級(jí): 學(xué) 號(hào): 姓 名: 浙江科技學(xué)院2012-2013學(xué)年 第1學(xué)期實(shí)驗(yàn)1 匯編語(yǔ)言程序設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康?. 熟悉MASM 6.11匯編語(yǔ)言程序開(kāi)發(fā)環(huán)境。2. 掌握匯編語(yǔ)言程序的調(diào)試方法和常用的調(diào)試工具。二、實(shí)驗(yàn)內(nèi)容1. 安裝MASM 6.11。2. 設(shè)在內(nèi)存中首地址為BLOCK的區(qū)域存有一批數(shù)據(jù):61H,84H,93H,0C4H,17H,0FFH,52H,2AH。分別按下列要求編寫(xiě)匯編語(yǔ)言程序:(1) 視該批數(shù)據(jù)為8位無(wú)符號(hào)數(shù),采用冒泡法將其按升序排序;(2) 視該批數(shù)據(jù)為8位有符號(hào)數(shù),采用冒泡法將其按升序排序。三、實(shí)驗(yàn)要求1. 根據(jù)實(shí)驗(yàn)內(nèi)容編寫(xiě)程序。2. 上機(jī)調(diào)試程序。3. 記錄并分析程序運(yùn)行結(jié)果。開(kāi)始四、程序說(shuō)明和程序流程圖讀入數(shù)據(jù)N個(gè)計(jì)數(shù)N-1是N小于0否結(jié)束否是對(duì)比數(shù)據(jù)為第i個(gè)數(shù)據(jù)(初始i=0)i7和第i+1個(gè)數(shù)據(jù)比較兩數(shù)交換位置i+1五、程序代碼1. 8位無(wú)符號(hào)數(shù)冒泡法排序程序如下:.model small.datan dw 8block db 61h,84h,93h,0c4h,17h,0ffh,52H,2ah.stack 60h.code.startupmov ax,datamov ds,axmov cx,ndec cxloop1: mov dx,cxmov bx,0loop2: mov al,blockbxcmp al,blockbx+1jna continuexchg al,blockbx+1mov blockbx,alcontinue: add bx,1loop loop2mov cx,dxloop loop1.exitend2、8位有符號(hào)數(shù)冒泡排序程序如下.model small.datan dw 8block db 61h,84h,93h,0c4h,17h,0ffh,52H,2ah.stack 60h.code.startupmov ax,datamov ds,axmov cx,ndec cxloop1: mov dx,cxmov bx,0loop2: mov al,blockbxcmp al,blockbx+1jle continuexchg al,blockbx+1mov blockbx,alcontinue: add bx,1loop loop2mov cx,dxloop loop1.exitend六、程序運(yùn)行結(jié)果及分析在命令行debug,反匯編找到初始程序入口0017查看cup寄存器的內(nèi)容實(shí)驗(yàn)2 系統(tǒng)中斷接口實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?. 熟悉可編程中斷控制器8259A的使用方法。2. 掌握軟、硬件中斷的編程技術(shù)。二、實(shí)驗(yàn)內(nèi)容1. 軟件中斷 自定義一個(gè)軟件中斷,中斷類型碼為78H。在中斷服務(wù)程序中,完成ASCII碼到壓縮的BCD碼的轉(zhuǎn)換,ASCII碼內(nèi)存首地址為ASCADDR,長(zhǎng)度為NUMBER,轉(zhuǎn)換后的BCD碼存放在以BCDADDR為首地址的存儲(chǔ)區(qū)中。2. 硬件中斷 設(shè)IRQ10 IRQ12(中斷類型號(hào)為72H74H)接外部硬件中斷源13,外部中斷源的中斷請(qǐng)求通過(guò)按數(shù)字鍵“1”“3”模擬產(chǎn)生。在中斷服務(wù)程序中顯示“Interrupt service routine n(n=13) is running”字樣。三、實(shí)驗(yàn)要求1. 編寫(xiě)主程序和中斷服務(wù)程序。2. 上機(jī)調(diào)試程序。3. 記錄并分析程序運(yùn)行結(jié)果。四、程序說(shuō)明和程序流程圖開(kāi)始開(kāi)始設(shè)置外部硬件中斷定義軟件中斷ASC壓縮否是否按數(shù)字鍵?是否是否壓縮完成?顯示字樣是結(jié)束結(jié)束硬件中斷軟件中斷五、程序代碼實(shí)驗(yàn)1代碼:dseg segment ascaddr db 0123456789number db 10bcdaddr db 20 dup(?)dseg endscseg segment assume cs:cseg,ds:dsegstart: push ds xor ax,ax push ax mov ax,seg asc_bcd mov ds,ax mov dx,offset asc_bcd mov ax,2578h int 21h int 78h retfasc_bcd proc mov ax,dseg mov ds,ax mov si,offset ascaddr mov di,offset bcdaddr mov ch,number shr ch,1 mov cl,4cont: mov ax,si and al,0fh shl ah,cl or al,ah mov di,al add si,2 inc di dec ch jnz cont iretasc_bcd endpcseg ends end start實(shí)驗(yàn)2代碼:dseg segment disp1 db Interrupt service routine 1 is running.,0ah,0dh,$disp2 db Interrupt service routine 2 is running.,0ah,0dh,$disp3 db Interrupt service routine 3 is running.,0ah,0dh,$dseg endscseg segment assume cs:cseg,ds:dsegstart: push ds xor ax,ax push ax mov ax,seg isradd1 mov ds,ax mov dx,offset isradd1 mov ax,2572h int 21h mov ax,seg isradd2 mov ds,ax mov dx,offset isradd2 mov ax,2573h int 21h mov ax,seg isradd3 mov ds,ax mov dx,offset isradd3 mov ax,2574h int 21h in al,0a1h and al,11100011b out 0a1h,alkeyin: mov ah,0 int 16h cmp al,1 jz serve1 cmp al,2 jz serve2 cmp al,3 jz serve3 cmp al,q jz exit jmp keyinserve1: int 72h jmp keyinserve2: int 73h jmp keyinserve3: int 74h jmp keyinexit: retfisradd1 proc push ds push ax mov ax,seg disp1 mov ds,ax mov dx,offset disp1 mov ah,9 int 21h ; mov al,20h ; out 0a0h,al pop ax pop ds iretisradd1 endpisradd2 proc push ds push ax mov ax,seg disp2 mov ds,ax mov dx,offset disp2 mov ah,9 int 21h ; mov al,20h ; out 0a0h,al pop ax pop ds iretisradd2 endpisradd3 proc push ds push ax mov ax,seg disp3 mov ds,ax mov dx,offset disp3 mov ah,9 int 21h ; mov al,20h ; out 0a0h,al pop ax pop ds iretisradd3 endpcseg ends end start六、程序運(yùn)行結(jié)果及分析實(shí)驗(yàn)1內(nèi)存結(jié)果實(shí)驗(yàn)2:實(shí)驗(yàn)3 鍵盤(pán)接口實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?. 了解鍵盤(pán)接口的工作原理。2. 掌握直接在硬件基礎(chǔ)上編寫(xiě)鍵盤(pán)處理程序的方法。3. 熟悉鍵盤(pán)的BIOS和DOS功能調(diào)用。二、實(shí)驗(yàn)內(nèi)容設(shè)計(jì)一個(gè)中斷方式的用戶鍵盤(pán)處理程序,其功能是直接從數(shù)據(jù)端口(8255的PA端口,地址為60H)讀取鍵盤(pán)的掃描碼,并通過(guò)換碼指令XLAT將掃描碼轉(zhuǎn)換為ASCII字符顯示在屏幕上。當(dāng)程序運(yùn)行時(shí),可通過(guò)鍵入ESC鍵,使鍵盤(pán)的管理在用戶鍵盤(pán)處理程序和系統(tǒng)鍵盤(pán)處理程序(INT 09H)之間進(jìn)行切換。三、實(shí)驗(yàn)要求1. 編寫(xiě)主程序和中斷服務(wù)程序。2. 上機(jī)調(diào)試程序。3. 記錄并分析程序運(yùn)行結(jié)果。四、程序說(shuō)明和程序流程圖鍵盤(pán)掃描有鍵閉合延時(shí)去鍵抖動(dòng)掃描鍵盤(pán)找到閉合鍵計(jì)算鍵值建立有效標(biāo)志閉合鍵釋放建立有效標(biāo)志返回五、主程序和中斷服務(wù)程序代碼cseg segment org 100h assume cs:csegstart: jmp installflag db 0oldint dd ?scantab db 0,0,1234567890-=,08h,0 db QWERTYUIOP,0dh,0 db ASDFGHJKL;,0,0,0,0 db ZXCVBNM,./,0,0,0,20h db 13 dup(0) db 789-456+1230#kbint: push ax push bx push ds push cs pop ds sti mov bx,offset scantab in al,60h test al,80h jnz keyend push ax in al,61h or al,80h out 61h,al and al,7fh out 61h,al pop ax cmp al,01h jnz disp inc flagdisp: test flag,01h jz user pop ds pop bx pop ax jmp cs:oldintuser: xlat cmp al,0 jz keyend mov ah,14 int 10h mov al,0dh int 10h mov al,0ah int 10hkeyend: mov al,20h out 20h,al pop ds pop bx pop ax iretinstall:cli push cs pop ds mov ax,3509h int 21h cmp bx,offset kbint jnz load int 20hload: mov word ptr oldint,bx mov word ptr oldint+2,es mov dx,offset kbint mov ax,2509h int 21h in al,21h and al,11111101b out 21h,al sti mov dx,offset install int 27hcseg ends end start六、程序運(yùn)行結(jié)果及分析1.當(dāng)執(zhí)行程序后,輸入小寫(xiě)字母顯示大寫(xiě),鍵入ESC后切換到操作系統(tǒng)自己的中斷,輸入小寫(xiě)顯示小寫(xiě)。實(shí)驗(yàn)4 顯示器接口實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?. 了解顯示器接口的工作原理。2. 熟悉顯示器的BIOS和DOS功能調(diào)用。二、實(shí)驗(yàn)內(nèi)容在屏幕上顯示一張移動(dòng)的“笑臉”。“笑臉”字符的ASCII碼為01H或02H,要使“笑臉”動(dòng)起來(lái),可按如下步驟編程:1. 屏幕上顯示“笑臉”;2. 延遲一段時(shí)間;3. 清除“笑臉”(可用清除部分屏幕或在“笑臉”位置顯示空字符的方法實(shí)現(xiàn));4. 改變“笑臉”的行、列坐標(biāo);5. 返回第1步,重復(fù)上述過(guò)程。三、實(shí)驗(yàn)要求1. 根據(jù)實(shí)驗(yàn)內(nèi)容編寫(xiě)程序。2. 上機(jī)調(diào)試程序。3. 記錄并分析程序運(yùn)行結(jié)果。四、程序說(shuō)明和程序流程圖開(kāi)始在屏幕上顯示笑臉延遲一段時(shí)間清除笑臉改變笑臉的行、列坐標(biāo)是是否返回?否結(jié)束五、程序代碼stack segment db 256 dup(1)stack endscode segmentmove_face proc far assume cs:code,ds:stackstart: push ds sub ax,ax push ax mov ah,15 int 10h mov ah,0 mov al,1 int 10h mov cx,1 mov dx,0 stimove_cursor: mov ah,2 int 10h mov al,1 mov ah,10 int 10h call delay sub al,al mov ah,10 int 10h inc dh inc dl cmp dh,25h jne move_cursor retmove_face endpdelay proc push bx push cx push dx mov ah,0 int 1ah add dx,9 mov bx,dxredo: int 1ah cmp dx,bx jne redo pop dx pop cx pop bx retdelay endpcode ends end六、程序運(yùn)行結(jié)果及分析實(shí)驗(yàn)5 串行通信接口實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?. 熟悉可編程串行通信接口8250A的使用方法。2. 掌握串行通信接口的編程技術(shù)。二、實(shí)驗(yàn)內(nèi)容1. 兩臺(tái)微機(jī)利用COM1(串行口1)進(jìn)行查詢式通信,可采用三線式連接方法。雙機(jī)通信的要求如下:7位數(shù)據(jù)位、偶校驗(yàn)、1位停止位、波特率為9600;雙機(jī)同時(shí)運(yùn)行通信程序,一方鍵入的字符在另一方的屏幕上顯示,當(dāng)按下字符q時(shí),結(jié)束通信返回DOS。2. 用中斷方式實(shí)現(xiàn)上述1的功能。3. 用BIOS調(diào)用發(fā)送和接收字符。三、實(shí)驗(yàn)要求1. 編寫(xiě)查詢式通信程序。2. 編寫(xiě)中斷式通信程序。3. 編寫(xiě)用BIOS調(diào)用實(shí)現(xiàn)的自發(fā)自收的通信程序。4. 上機(jī)調(diào)試程序。5. 記錄并分析程序運(yùn)行結(jié)果。初始化8250四、程序說(shuō)明和程序流程圖讀LSR再次發(fā)送D5=1?YN發(fā)送一個(gè)字符N發(fā)送完畢?Y暫時(shí)結(jié)束查詢方式發(fā)送初始化8250讀LSR再次驗(yàn)收YYND4D1=0?D0=1?接收一個(gè)字符接收完畢?暫時(shí)結(jié)束處理錯(cuò)誤NYN查詢方式驗(yàn)收五、程序代碼實(shí)驗(yàn)1代碼:scom segment para stack scom db 256 dup(0)scom endsdcom segment db 50 dup(?)dcom endsccom segment para public ccomstart proc far assume cs:ccom,ss:scom,ds:dcom push ds xor ax,ax push ax mov dx,3fbh mov al,10000000b out dx,al mov dx,3f8h mov al,0ch out dx,al inc dx mov al,0 out dx,al mov dx,3fbh mov al,00011010b out dx,al inc dx mov al,00010011b out dx,al mov dx,3f9h mov al,0 out dx,alcont: mov dx,3fdh in al,dx test al,00011110b jnz error test al,00000001b jnz delre test al,00100000b jz cont mov ah,1 int 16h jz cont mov ah,0 int 16h cmp al,q jz return mov dx,3f8h out dx,al jmp contdelre: mov dx,3f8h in al,dx and al,01111111b push ax mov bl
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 專屬男方利益的2024離婚協(xié)議樣本一
- 二零二五版新能源企業(yè)短期員工聘用協(xié)議2篇
- 二零二五版房地產(chǎn)項(xiàng)目投資合作框架協(xié)議范本剖析6篇
- 2024鐵礦石銷售與倉(cāng)儲(chǔ)一體化管理合同范本3篇
- 二零二五年度企業(yè)財(cái)務(wù)戰(zhàn)略規(guī)劃與實(shí)施合同6篇
- 二零二五年時(shí)尚餐飲場(chǎng)地租賃管理協(xié)議2篇
- 2025年度樓頂風(fēng)力發(fā)電項(xiàng)目投資合作協(xié)議4篇
- 2024鐵礦石現(xiàn)貨交易市場(chǎng)參與方合作協(xié)議書(shū)3篇
- 2025年度云計(jì)算服務(wù)產(chǎn)品及服務(wù)購(gòu)銷合同正規(guī)范本4篇
- 2025年度建筑材料綠色采購(gòu)合作合同4篇
- 2025年河北供水有限責(zé)任公司招聘筆試參考題庫(kù)含答案解析
- Unit3 Sports and fitness Discovering Useful Structures 說(shuō)課稿-2024-2025學(xué)年高中英語(yǔ)人教版(2019)必修第一冊(cè)
- 農(nóng)發(fā)行案防知識(shí)培訓(xùn)課件
- 社區(qū)醫(yī)療抗菌藥物分級(jí)管理方案
- NB/T 11536-2024煤礦帶壓開(kāi)采底板井下注漿加固改造技術(shù)規(guī)范
- 2024年九年級(jí)上德育工作總結(jié)
- 2024年儲(chǔ)罐呼吸閥項(xiàng)目可行性研究報(bào)告
- 除氧器出水溶解氧不合格的原因有哪些
- 沖擊式機(jī)組水輪機(jī)安裝概述與流程
- 新加坡SM2數(shù)學(xué)試題
- 畢業(yè)論文-水利水電工程質(zhì)量管理
評(píng)論
0/150
提交評(píng)論