汇编语言与接口技术实验报告_第1页
汇编语言与接口技术实验报告_第2页
汇编语言与接口技术实验报告_第3页
汇编语言与接口技术实验报告_第4页
汇编语言与接口技术实验报告_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上汇编语言与接口技术实验报告学 院: 信息与电子工程学院 专 业: 班 级: 学 号: 姓 名: 浙江科技学院2012-2013学年 第1学期实验1 汇编语言程序设计一、实验目的1. 熟悉MASM 6.11汇编语言程序开发环境。2. 掌握汇编语言程序的调试方法和常用的调试工具。二、实验内容1. 安装MASM 6.11。2. 设在内存中首地址为BLOCK的区域存有一批数据:61H,84H,93H,0C4H,17H,0FFH,52H,2AH。分别按下列要求编写汇编语言程序:(1) 视该批数据为8位无符号数,采用冒泡法将其按升序排序;(2) 视该批数据为8位有符号数,采用冒泡

2、法将其按升序排序。三、实验要求1. 根据实验内容编写程序。2. 上机调试程序。3. 记录并分析程序运行结果。开始四、程序说明和程序流程图读入数据N个计数N-1是N小于0否结束否是对比数据为第i个数据(初始i=0)i<7和第i+1个数据比较两数交换位置i+1五、程序代码1. 8位无符号数冒泡法排序程序如下:.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

3、,0loop2: mov al,blockbxcmp al,blockbx+1jna continuexchg al,blockbx+1mov blockbx,alcontinue: add bx,1loop loop2mov cx,dxloop loop1.exitend2、8位有符号数冒泡排序程序如下.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,0l

4、oop2: mov al,blockbxcmp al,blockbx+1jle continuexchg al,blockbx+1mov blockbx,alcontinue: add bx,1loop loop2mov cx,dxloop loop1.exitend六、程序运行结果及分析在命令行debug,反汇编找到初始程序入口0017查看cup寄存器的内容实验2 系统中断接口实验一、实验目的1. 熟悉可编程中断控制器8259A的使用方法。2. 掌握软、硬件中断的编程技术。二、实验内容1. 软件中断 自定义一个软件中断,中断类型码为78H。在中断服务程序中,完成ASCII码到压缩的BCD码的

5、转换,ASCII码内存首地址为ASCADDR,长度为NUMBER,转换后的BCD码存放在以BCDADDR为首地址的存储区中。2. 硬件中断 设IRQ10 IRQ12(中断类型号为72H74H)接外部硬件中断源13,外部中断源的中断请求通过按数字键“1”“3”模拟产生。在中断服务程序中显示“Interrupt service routine n(n=13) is running”字样。三、实验要求1. 编写主程序和中断服务程序。2. 上机调试程序。3. 记录并分析程序运行结果。四、程序说明和程序流程图开始开始设置外部硬件中断定义软件中断ASC压缩否是否按数字键?是否是否压缩完成?显示字样是结束结

6、束硬件中断软件中断五、程序代码实验1代码:dseg segment ascaddr db ''number 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 asc

7、addr 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 'Interrup

8、t 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 isradd

9、2 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,b 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

10、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

11、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.

12、了解键盘接口的工作原理。2. 掌握直接在硬件基础上编写键盘处理程序的方法。3. 熟悉键盘的BIOS和DOS功能调用。二、实验内容设计一个中断方式的用户键盘处理程序,其功能是直接从数据端口(8255的PA端口,地址为60H)读取键盘的扫描码,并通过换码指令XLAT将扫描码转换为ASCII字符显示在屏幕上。当程序运行时,可通过键入ESC键,使键盘的管理在用户键盘处理程序和系统键盘处理程序(INT 09H)之间进行切换。三、实验要求1. 编写主程序和中断服务程序。2. 上机调试程序。3. 记录并分析程序运行结果。四、程序说明和程序流程图键盘扫描有键闭合延时去键抖动扫描键盘找到闭合键计算键值建立有效标

13、志闭合键释放建立有效标志返回五、主程序和中断服务程序代码cseg segment org 100h assume cs:csegstart: jmp installflag db 0oldint dd ?scantab db 0,0,'-=',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 d

14、s 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

15、 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,b out 21h,al sti mov dx,offset

16、 install int 27hcseg ends end start六、程序运行结果及分析1.当执行程序后,输入小写字母显示大写,键入ESC后切换到操作系统自己的中断,输入小写显示小写。实验4 显示器接口实验一、实验目的1. 了解显示器接口的工作原理。2. 熟悉显示器的BIOS和DOS功能调用。二、实验内容在屏幕上显示一张移动的“笑脸”。“笑脸”字符的ASCII码为01H或02H,要使“笑脸”动起来,可按如下步骤编程:1. 屏幕上显示“笑脸”;2. 延迟一段时间;3. 清除“笑脸”(可用清除部分屏幕或在“笑脸”位置显示空字符的方法实现);4. 改变“笑脸”的行、列坐标;5. 返回第1步,重复

17、上述过程。三、实验要求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

18、_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

19、六、程序运行结果及分析实验5 串行通信接口实验一、实验目的1. 熟悉可编程串行通信接口8250A的使用方法。2. 掌握串行通信接口的编程技术。二、实验内容1. 两台微机利用COM1(串行口1)进行查询式通信,可采用三线式连接方法。双机通信的要求如下:7位数据位、偶校验、1位停止位、波特率为9600;双机同时运行通信程序,一方键入的字符在另一方的屏幕上显示,当按下字符'q'时,结束通信返回DOS。2. 用中断方式实现上述1的功能。3. 用BIOS调用发送和接收字符。三、实验要求1. 编写查询式通信程序。2. 编写中断式通信程序。3. 编写用BIOS调用实现的自发自收的通信程序。4

20、. 上机调试程序。5. 记录并分析程序运行结果。初始化8250四、程序说明和程序流程图读LSR再次发送D5=1?YN发送一个字符N发送完毕?Y暂时结束查询方式发送初始化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 'ccom'start proc far

21、assume cs:ccom,ss:scom,ds:dcom push ds xor ax,ax push ax mov dx,3fbh mov al,b 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,b out dx,al inc dx mov al,b out dx,al mov dx,3f9h mov al,0 out dx,alcont: mov dx,3fdh in al,dx test al,b jnz error test al,b jnz delre test al,b 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,b push ax mov bl,0 mov ah,0eh i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论