




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微机原理与接口技 术实验教案 申明 自动化学院电气工程系 实验一 求最大值程序 一、实验目的 1.掌握条件判断指令的用法。 2.掌握循环程序的设计方法。 3.学习在屏幕上显示字符的方法。 4.学习在pc机上建立、汇编、链接、调试和运行汇编语言的过程 。 二、实验内容 在首地址为data1的数组中找出最大值,并在屏幕上显示出来。 实验一 求最大值程序 三、程序框图 实验一 求最大值程序 四、实验步骤及要求 (1)输入程序,进行调试,运行出求最大值程序的结果。 (2)熟悉td调试环境下,在td环境下单步运行本程序,以加深对程序 指令的理解。 (3)如果为有符号数,其最大值、最小值怎么求取。 实验一 求最大值程序 五、程序理解介绍 要理解这个程序,需要理解以下几点: 1.程序完成的任务有:定义及初始化、求最值、显示最值。 2.如果显示alfah,先al暂存bl,对al逻辑右移4位,再判断是不是大于9, 若大于9加37h,否则加30h,然后送去显示。取出暂存的bl送al,然后与 0fh相与,再判断是不是大于9,若大于9加37h,否则加30h,再送去显示。 3.怎么显示字符?利用int 21h的ah=02h号子功能,显示dl的内容。 4.返回dos可用int 21h的ah=4ch号子功能。 5.宏定义介绍 disx macro x mov dl,x mov ah,02 int 21h endm 实验一 求最大值程序 六、实验程序 disx macro x mov dl,x mov ah,02 int 21h endm stack segment sta db 512 dup(?) top equ length sta stack ends data segment buf db max number:,0dh,0ah,$ data1 db 35h,07h,0abh,56h,12h db 98h,0cdh,76h,0fah,0bfh block db 10 data ends code segment assume cs:code,ds:data,ss:stack start: mov ax,stack mov ss,ax mov sp,top mov ax,data mov ds,ax mov dx,offset buf mov ah,09 int 21h mov si,offset block mov cx,si dec cx mov si,offset data1 mov al,si max1: inc si cmp al,si ja next mov al,si;al中定义为最大 值 实验一 求最大值程序 next: loop max1 mov bl,al mov cl,04 shr al,cl cmp al,09 ja max4 add al,30h max2: disx al mov al,bl and al,0fh cmp al,09 ja max5 add al,30h max3: disx al mov ah,4ch int 21h max4: add al,37h jmp max2 max5: add al,37h jmp max3 code ends end start 实验一 求最大值程序 七、实验报告要求(包含预习报告要求和最终报告要求) 1.实验名称: 注意实验项目名称应与实验大纲中的实验项目名称相符 。 2.实验目的 3.实验内容及要求 预习 最终 4.程序设计(求最大值) 报告要求报告要求 包含流程图和源程序,源程序必须加必要注释。 5.实验结果及结果分析 6.实验中出现的问题及解决方法 7.回答思考题 实验二 两个多位十进制数相加的程序 一、实验目的 1.学习宏指令的编写方法。 2.学习在屏幕上显示字符串的方法。 3.学习子程序的调用方法。 4.掌握数据传送和算术运算指令的用法。 5.掌握多位十进制数加(减)程序的编制方法 。 6.学习在pc机上建立、汇编、链接、调试和运 行汇编语言的过程。 实验二 两个多位十进制数相加的程序 二、实验内容 将两个5位十进制数相加,要求被加数与 加数均以ascii码形式各自顺序存放在 data1和data2为首的5个内存单元中,结 果送data3处,并在屏幕上显示出来。 4 7 1 9 3 2 8 0 5 6 7 5 2 4 9 实验二 两个多位十进制数相加的程序 三.程序理解介绍 1.加数与被加数均以ascii码形式存在内存中,在进行运算之前,先 转换为十六进制数的形式(只要减去30h即可)。 2.多位数的加法要用带进位的加法指令adc,并且在首次相加之前 要注意先清进位位。 3.因为是非组合的bcd码(或ascii码)的运算,所以用十进制调 整指令aaa对运算结果加以修正。 4.运算结果在送显示之前应转换为 用ascii码表示的数字串( 加上 30h即可)。 5.在屏幕上显示结果可利用int 21h的02号子功能,因该功能一次 只能显示一个字符,故对于显示数字串来说,要编写一段显示子程 序,反复使用02h号子功能。 6.加数与被加数为5位,而和可能为5位或6位,即考虑到带进位和 不带进位的情况。在显示和数时最好按实际情况显示,而不要出现0 。 实验二 两个多位十进制数相加的程序 四.实验程序 disx macro x mov dl,x mov ah,02h int 21h endm data segment mess db two mulbit decimal numbers add,0dh,0ah db 0dh,0ah,$ data1 db 33h,39h,31h,37h,34h data2 db 36h,35h,30h,38h,32h data3 db 6 dup(?) data ends stack segment sta db 20 dup(?) top equ length sta stack ends 实验二 两个多位十进制数相加的程序 code segment assume cs:code,ds:data,ss:stack,es:data start: mov ax,data mov ds,ax mov ax,stack mov ss,ax mov ax,top mov sp,ax mov dx,offset mess mov ah,09h int 21h mov si,offset data1 mov bx,05 call displ disx 2bh mov si,offset data2 mov bx,05 call displ mov si,offset data1 mov di,offset data2 call adda disx 3dh mov si,offset data3 mov bx,05 call displ disx 0dh disx 0ah mov ah,4ch int 21h displ proc near ds1: disx si+bx-1 dec bx jnz ds1 ret displ endp 实验二 两个多位十进制数相加的程序 adda proc near mov dx,si mov bp,di mov bx,05 ad1: sub byte ptr si+bx-1,30h sub byte ptr di+bx-1,30h dec bx jnz ad1 mov cx,05 clc mov bx,offset data3 ad2: mov al,si mov ah,di adc al,ah aaa mov bx,al inc si inc di inc bx loop ad2 mov si,offset data3 mov bx,05 ad3: add byte ptr si+bx-1,30h dec bx jnz ad3 ret adda endp code ends end start 实验二 两个多位十进制数相加的程序 五.实验要求 先完成不考虑最高位相加产生进位的程序的调试 ,然后改写程序完成考虑进位相加,并能正常显示 的程序。 4 7 1 9 3 6 8 0 5 6 1 1 5 2 4 9 实验二 两个多位十进制数相加的程序 六、实验报告要求(包含预习报告要求和最终报告要求) 1.实验名称: 注意实验项目名称应与实验大纲中的实验项目名称相符 。 2.实验目的 3.实验内容及要求 预习 最终 4.程序设计(求最大值) 报告要求报告要求 包含流程图和源程序,源程序必须加必要注释。 5.实验结果及结果分析 6.实验中出现的问题及解决方法 7.回答思考题 实验三 二进制数与十进制数相互 转换的程序 一、实验目的 1.掌握数制转换的基本原理。 2.学会编写二进制数与十进制数相互转换的程 序。 3.掌握键入字符串的接收方法 。 4.掌握在屏幕上显示字符的方法 。 实验三 二进制数与十进制数相互 转换的程序 二、实验内容 1.将十进制数转化为二进制数,假定数的范围为065535,要求通过键 盘输入,并且将转换后的二进制数以十六进制形式显示在屏幕上。 十翻二所采用的基本公式为( 065535 转化为 h ) : 高位10低位 例如:十进制数135(010)1103105 2. 将二进制数转化为十进制数,假定二进制数为16位(即十六进制 数4位),要求通过键盘输 入,并且将转换后的十进制在屏幕上显示之。 二翻十采用的方法( h 转化为 065535 ): 二进进制数10000商1(万位)。余数1 余数1 1000 商2(千位)。余数2 余数2 100 商3(百位)。余数3 余数3 10 商4(十位)。余数4(个位) 实验三 二进制数与十进制数相互 转换的程序 三、实验实验 程序 1、十进进制转换为转换为 二 进进制数 disx macro x mov ah,02 mov dl,x int 21h endm crlf macro disx 0dh disx 0ah endm stack segment sta db 512 dup (?) top equ length sta stack ends data segment buf db 6 db ? db 6 dup (?) mes1 db input decimalist number:,$ mes2 db output:,$ mes3 db input error!,$ data ends 实验三 二进制数与十进制数相互 转换的程序 code segment assume cs:code,ds:data,es:data,ss:st ack start: mov ax,data mov ds,ax mov es,ax mov ax,stack mov ss,ax mov sp,top mov dx,offset mes1 mov ah,09h int 21h mov dx,offset buf mov ah,0ah int 21h crlf crlf mov si,offset buf mov cl,si+1 xor ch,ch xor ax,ax clc sfe1: mov bx,10 mul bx ;(ax)*(cx)=dx:ax cmp dx,0 jne erro mov dl,si+2 cmp dl,30h jb erro cmp dl,39h ja erro and dl,0fh xor dh,dh add ax,dx jc erro inc si loop sfe1 实验三 二进制数与十进制数相互 转换的程序 push ax mov dx,offset mes2 mov ah,09h int 21h pop ax call disup jmp sfe2 crlf erro: mov dx,offset mes3 mov ah,09h int 21h sfe2: mov ah,4ch int 21h disup: mov ch,02h mov bx,ax disup1: mov al,bh mov cl,04 shr al,cl cmp al,09 ja disup4 add al,30h disup2: disx al mov al,bh and al,0fh cmp al,09 ja disup5 add al,30h disup3: disx al dec ch jnz disup6 disx 48h ret 实验三 二进制数与十进制数相互 转换的程序 disup4: add al,37h jmp disup2 disup5: add al,37h jmp disup3 disup6: mov bh,bl jmp disup1 code ends end start 2、二进进制转换为转换为 十进进制 程序同学们们自己编编写 实验三 二进制数与十进制数相互 转换的程序 四、实验报告要求 1、实验名称 2、实验目的 3、实验内容及要求 4、实验程序及其注释 5、实验结果及结果分析 6、实验中出现的问题及解决方法 实验四 8259中断控制系统 一、实验目的 掌握8259中断控制器的接口方法。 掌握8259中断控制器的应用编程。 二、实验内容 编制程序,利用8259芯片的ir7作为中断 源,产生单一中断,系统显示中断号“7” 实验四 8259中断控制系统 三、实验电路 实验四 8259中断控制系统 四、程序框图 实验四 8259中断控制系统 五、实验程序 code segment assume cs:code,ds:code,es:code org 3400h h8: jmp p8259 zxk equ 0ffdch zwk equ 0ffddh led db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h db 88h,83h,0c6h,0a1h,86h,8eh,0ffh,0ch,0deh,0f3h buf db ?,?,?,?,?,? port0 equ 0ffe0h port1 equ 0ffe1h 实验四 8259中断控制系统 p8259: cli call wp ;初始化显示“p.” mov ax,offset int8259 mov bx,003ch mov bx,ax mov bx,003eh mov ax,0000h mov bx,ax call for8259 mov si,0000h sti con8: call dis jmp con8 for8259: mov al,13h mov dx,port0 out dx,al mov al,08h mov dx,port1 out dx,al mov al,09h out dx,al mov al,7fh ;irq7 out dx,al ret 实验四 8259中断控制系统 int8259:cli mov bx,offset buf mov byte ptr bx+si,07h inc si cmp si,0007h jz x59 xx59: mov al,20h mov dx,port0 out dx,al mov cx,0050h xxx59: push cx call dis pop cx loop xxx59 pop cx mov cx,3438h push cx sti iret x59: mov si,0000h call wp jmp xx59 wp: mov buf,11h ;初始 化显示“p.” mov buf+1,10h mov buf+2,10h mov buf+3,10h mov buf+4,10h mov buf+5,10h ret 实验四 8259中断控制系统 dis: mov cl,20h mov bx,offset buf dis1: mov al,bx push bx mov bx,offset led xlat pop bx mov dx,zxk out dx,al mov al,cl mov dx,zwk out dx,al push cx mov cx,0100h delay: loop $ pop cx cmp cl,01h jz exit inc bx shr cl,1 jmp dis1 exit: mov al,00h mov dx,zwk out dx,al ret ;- code ends end h8 实验四 8259中断控制系统 六、实验报告要求 1、实验名称 2、实验目的 3、实验内容及要求 4、实验线路图 5、实验程序及其注释 6、实验结果及结果分析 7、实验中出现的问题及解决方法 实验五 8255并行接口 一、实验目的 1掌握8255a和微机接口方法。 2掌握8255a的工作方式和编程原理。 二、实验内容 用8255的pa口作开关量输入口,pb口作 输出口。 实验五 8255并行接口 三、实验电路 实验五 8255并行接口 四、实验程序流程图 实验五 8255并行接口 五、实验程序 code segment assume cs:code,ds:code,es:code org 32e0h pa equ 0ffd8h pb equ 0ffd9h pc equ 0ffdah pctl equ 0ffdbh h2: mov dx,pctl mov al,90h out dx,al p2: mov dx,pa in al,dx inc dx out dx,al jmp p2 code ends end h2 实验五 8255并行接口 六、实验报告要求 1、实验名称 2、实验目的 3、实验内容及要求 4、实验线路图 5、实验程序及其注释 6、实验结果及结果分析 7、实验中出现的问题及解决方法 七、思考题 用8255的pa口作开关量输出口,pb口作输入口,程序 应如何修改。 实验六 8253定时计数器 一、实验目的 1学会8253芯片和微机接口原理和方法 。 2掌握8253定时器/计数器的工作方式和 编程原理。 二、实验内容 8253的通道0工作在方式3,产生方波。 实验六 8253定时计数器 三、实验接线 实验六 8253定时计数器 四、程序流程 实验六 8253定时计数器 五、实验程序 code segment assume cs:code,ds:code,es:code org 3490h h9: mov dx,0ffe3h mov al,36h out dx,al mov dx,0ffe0h mov al,00h out dx,al mov al,10h out dx,al jmp $ code ends end h9 实验六 8253定时计数器 六、实验报告要求 1、实验名称 2、实验目的 3、实验内容及要求 4、实验线路图 5、实验程序及其注释 6、实验结果及结果分析 7、实验中出现的问题及解决方法 七、思考题 用8253的通道2输出周期为1秒的方波,实验线路和程 序如何修改? 实验七 串口通信实验 一实验目的 1了解串行通信的一般原理。 2了解rs232串行接口标准及ttl电路的连接方法。 3掌握利用pc机用串行口来实现通信的编程及使用方法。 二实验内容 利用pc机串行口 1、运行串口程序(sscom32.exe),在发送00h、ffh、55h时, 用数字示波器观察串口输出波形,并记录输出波形结果。 可以完成串行通信(注意要至少画出一帧数据格式) 2、编写程序汇编程序,实现通过串行线来交换两机上的 数据。即就是将从甲机键盘上输入的字符送到乙机子上, 并显示。 实验七 串口通信实验 三实验线路 四实验仪器设备 计算机两台,一条串口线。 2 3 txd rxd txd rxd gndgnd 5 2 3 5 甲机乙机 实验七 串口通信实验 五实验程序 s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版绿色建筑土建工程承包合作协议
- 2025年度制造业短期生产线操作人员劳务派遣合同
- 2025聘请全职律师合同范本
- 红酒柜知识培训课件
- 红酒基本知识培训内容
- 语文知识书籍培训课件
- 红茶品鉴培训课件
- 2025年租车服务免责合同协议书
- 2025年劳动合同法实践:员工擅自解约公司有权提起劳动仲裁
- 生产流程标准化操作指南
- 砍树 栽树劳务合同范本
- 避免车祸安全知识培训课件
- 胸腰椎压缩骨折课件
- 音乐课简谱教学课件
- 2025年放射工作人员培训考试试题及答案
- 2025-2026学年统编版(2024)小学语文一年级上册教学计划及进度表
- 中小学教师中高级职称答辩备考试题及答案(50题)
- 剖析我国公立医院管理体制:问题洞察与改革路径探究
- 2025年法院书记员招聘考试笔试试题附答案
- 未成年人违法犯罪警示教育
- 医务人员艾滋病知识培训
评论
0/150
提交评论