




已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
匯編語言與接口技術實驗報告 2012-2013學年 第1學期匯編語言與接口技術實驗報告學 院: 信息與電子工程學院 專 業(yè): 班 級: 學 號: 姓 名: 浙江科技學院2012-2013學年 第1學期實驗1 匯編語言程序設計一、實驗目的1. 熟悉MASM 6.11匯編語言程序開發(fā)環(huán)境。2. 掌握匯編語言程序的調試方法和常用的調試工具。二、實驗內容1. 安裝MASM 6.11。2. 設在內存中首地址為BLOCK的區(qū)域存有一批數(shù)據:61H,84H,93H,0C4H,17H,0FFH,52H,2AH。分別按下列要求編寫匯編語言程序:(1) 視該批數(shù)據為8位無符號數(shù),采用冒泡法將其按升序排序;(2) 視該批數(shù)據為8位有符號數(shù),采用冒泡法將其按升序排序。三、實驗要求1. 根據實驗內容編寫程序。2. 上機調試程序。3. 記錄并分析程序運行結果。開始四、程序說明和程序流程圖讀入數(shù)據N個計數(shù)N-1是N小于0否結束否是對比數(shù)據為第i個數(shù)據(初始i=0)i7和第i+1個數(shù)據比較兩數(shù)交換位置i+1五、程序代碼1. 8位無符號數(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位有符號數(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六、程序運行結果及分析在命令行debug,反匯編找到初始程序入口0017查看cup寄存器的內容實驗2 系統(tǒng)中斷接口實驗一、實驗目的1. 熟悉可編程中斷控制器8259A的使用方法。2. 掌握軟、硬件中斷的編程技術。二、實驗內容1. 軟件中斷 自定義一個軟件中斷,中斷類型碼為78H。在中斷服務程序中,完成ASCII碼到壓縮的BCD碼的轉換,ASCII碼內存首地址為ASCADDR,長度為NUMBER,轉換后的BCD碼存放在以BCDADDR為首地址的存儲區(qū)中。2. 硬件中斷 設IRQ10 IRQ12(中斷類型號為72H74H)接外部硬件中斷源13,外部中斷源的中斷請求通過按數(shù)字鍵“1”“3”模擬產生。在中斷服務程序中顯示“Interrupt service routine n(n=13) is running”字樣。三、實驗要求1. 編寫主程序和中斷服務程序。2. 上機調試程序。3. 記錄并分析程序運行結果。四、程序說明和程序流程圖開始開始設置外部硬件中斷定義軟件中斷ASC壓縮否是否按數(shù)字鍵?是否是否壓縮完成?顯示字樣是結束結束硬件中斷軟件中斷五、程序代碼實驗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實驗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六、程序運行結果及分析實驗1內存結果實驗2:實驗3 鍵盤接口實驗一、實驗目的1. 了解鍵盤接口的工作原理。2. 掌握直接在硬件基礎上編寫鍵盤處理程序的方法。3. 熟悉鍵盤的BIOS和DOS功能調用。二、實驗內容設計一個中斷方式的用戶鍵盤處理程序,其功能是直接從數(shù)據端口(8255的PA端口,地址為60H)讀取鍵盤的掃描碼,并通過換碼指令XLAT將掃描碼轉換為ASCII字符顯示在屏幕上。當程序運行時,可通過鍵入ESC鍵,使鍵盤的管理在用戶鍵盤處理程序和系統(tǒng)鍵盤處理程序(INT 09H)之間進行切換。三、實驗要求1. 編寫主程序和中斷服務程序。2. 上機調試程序。3. 記錄并分析程序運行結果。四、程序說明和程序流程圖鍵盤掃描有鍵閉合延時去鍵抖動掃描鍵盤找到閉合鍵計算鍵值建立有效標志閉合鍵釋放建立有效標志返回五、主程序和中斷服務程序代碼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六、程序運行結果及分析1.當執(zhí)行程序后,輸入小寫字母顯示大寫,鍵入ESC后切換到操作系統(tǒng)自己的中斷,輸入小寫顯示小寫。實驗4 顯示器接口實驗一、實驗目的1. 了解顯示器接口的工作原理。2. 熟悉顯示器的BIOS和DOS功能調用。二、實驗內容在屏幕上顯示一張移動的“笑臉”?!靶δ槨弊址腁SCII碼為01H或02H,要使“笑臉”動起來,可按如下步驟編程:1. 屏幕上顯示“笑臉”;2. 延遲一段時間;3. 清除“笑臉”(可用清除部分屏幕或在“笑臉”位置顯示空字符的方法實現(xiàn));4. 改變“笑臉”的行、列坐標;5. 返回第1步,重復上述過程。三、實驗要求1. 根據實驗內容編寫程序。2. 上機調試程序。3. 記錄并分析程序運行結果。四、程序說明和程序流程圖開始在屏幕上顯示笑臉延遲一段時間清除笑臉改變笑臉的行、列坐標是是否返回?否結束五、程序代碼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六、程序運行結果及分析實驗5 串行通信接口實驗一、實驗目的1. 熟悉可編程串行通信接口8250A的使用方法。2. 掌握串行通信接口的編程技術。二、實驗內容1. 兩臺微機利用COM1(串行口1)進行查詢式通信,可采用三線式連接方法。雙機通信的要求如下:7位數(shù)據位、偶校驗、1位停止位、波特率為9600;雙機同時運行通信程序,一方鍵入的字符在另一方的屏幕上顯示,當按下字符q時,結束通信返回DOS。2. 用中斷方式實現(xiàn)上述1的功能。3. 用BIOS調用發(fā)送和接收字符。三、實驗要求1. 編寫查詢式通信程序。2. 編寫中斷式通信程序。3. 編寫用BIOS調用實現(xiàn)的自發(fā)自收的通信程序。4. 上機調試程序。5. 記錄并分析程序運行結果。初始化8250四、程序說明和程序流程圖讀LSR再次發(fā)送D5=1?YN發(fā)送一個字符N發(fā)送完畢?Y暫時結束查詢方式發(fā)送初始化8250讀LSR再次驗收YYND4D1=0?D0=1?接收一個字符接收完畢?暫時結束處理錯誤NYN查詢方式驗收五、程序代碼實驗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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 深耕新質生產力
- 浙江國企招聘2025紹興市城北物業(yè)經營管理有限公司招聘8人筆試參考題庫附帶答案詳解
- 2025年中國電動機臺數(shù)據監(jiān)測報告
- 航天器電推進系統(tǒng)與離子發(fā)動機考核試卷
- 煤氣化技術的創(chuàng)新與優(yōu)化考核試卷
- 眼鏡店隱形眼鏡配適考核試卷
- 管道配件在智能家居中的應用考核試卷
- 市場營銷與寵物護理服務考核試卷
- 電氣設備的繼電保護與控制考核試卷
- 染整企業(yè)品牌形象塑造與傳播策略實施考核試卷
- 廣州廣州市天河區(qū)華陽小學-畢業(yè)在即家校共話未來-六下期中家長會【課件】
- 公司事故隱患內部報告獎勵制度
- 大學生創(chuàng)新創(chuàng)業(yè)基礎(創(chuàng)新創(chuàng)業(yè)課程)完整全套教學課件
- 液化天然氣接收站安全管理規(guī)定
- GB/T 23468-2009墜落防護裝備安全使用規(guī)范
- 影像診斷與手術后符合率統(tǒng)計表
- 2023年北京亦莊國際投資發(fā)展有限公司招聘筆試題庫及答案解析
- ansys電磁場分析經典教程
- 美國數(shù)學競賽AMC8講座課件
- 2020年國家義務教育質量測查德育科目模塊一模擬試題含參考答案
- 導管固定-PPT課件
評論
0/150
提交評論