微机原理与接口课程设计报告模板(参考)

合集下载

《微机原理及接口》课程设计报告-简单的动画设计

《微机原理及接口》课程设计报告-简单的动画设计

一、设计任务1.程设计的目的更深入的了解汇编这门语言,并从中学到东西掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力。

提高我们对学习认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。

培养我们从资料文献、科学实验中获得知识的能力,提高我们从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。

培养我们勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。

学习汇编语言综合应用程序设计方法,提高汇编语言实际应用能力,充分了解计算机硬件和软件,完成理论到实践的推进过程。

2.课程设计要求(1)根据微机软、硬件条件,每人选定一个具有一定综合性的程序设计题目A对题目进行模块分析B 系统设计实用,功能全面C 按时按量完成任务(2)按时间上机完成调试任务3.设计任务在DOS环境中编程完成以下任务:(1)以滚动方式输出下车动态行驶图形(2)小车在公路上动态行驶,从屏幕左侧驶向屏幕右侧后,在到达屏幕右侧后,公路下降。

(3)段距离并改变颜色,然后小车继续由左向右行驶(4)当下降到屏幕底部时,再返回到屏幕顶部重复上述过程(5)直到有键按下时,程序运行结束(6)设计说明书:设计思想、参考程序的程序流程图和源程序4.设备IBM—PC微型计算机一台二、设计方案1、设计思想主程序思想:使用BIOS中断调中显示器控制用子程序,要求显示动态效果图像即为一辆小车在公路上动态行驶,到达屏幕右方时,公路下降并改变颜色,小车又从左向右行驶以此循环,直至有键按下时结束程序。

2、主程序流程框图3、源程序代码data segmentline dw 10 ;定义行变量color db 1 ;定义公路颜色color1 db 0 ;定义小车颜色corlum dw 2 ;定义列变量count1 dw 0count2 dw 0count3 dw 0 ;车体模型car_8 db 00000011b,11100000bdb 00000010b,01010000bdb 00000110b,01011000bdb 01111111b,11111110bdb 11111111b,11111111bdb 11111011b,11101111b2db 00001010b,00101000bdb 00000100b,00010000bdata endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov dx,80mov ah,0fhint 10hmov ax,0004hint 10hmov ah,0bhmov bh,1 ;选择1号调色板mov bl,0int 10hll: mov al,color ;设置公路颜色inc alcmp al,3jbe tt2sub al,3tt: mov color1,al ;设置小车颜色cmp al,1jz tt3inc alcmp al,3jz tt2tt3: inc altt2: mov color,almov ax,line ;计算机行坐标add ax,10cmp ax,180jbe tt1sub ax,180tt1: mov line,axmov ah,0ch ;写像素mov dx,lineadd dx,8 ;计算公路坐标mov cx,0mov al,color ;设置公路颜色repet: mov bx,3push axint 10h ;画公路pop axinc cxcmp cx,319 ;未到屏幕最右转jnz repetmov ah,0ch ;画车模mov dx,line ;设置行坐标mov cx,corlum ;设置列坐标mov si,offset car_8 ;取车模首坐标mov count1,8 ;8行retry1: mov count2,2 ;每行2字节retry2: mov count3,8 ;每字节8位retry3: rol byte ptr[si],1mov al,0 ;此位为0,置背景颜色jnc nextmov al,color1 ;此位为1,置背景颜色next: push axpush cxint 10h ;画一个点pop cxpop axinc cx ;列加1dec count3jnz retry3 ;未画完8个点转inc si ;取下一个字节的车模信息dec count2jnz retry2 ;车模信息未转完inc dxmov cx,corlumdec count1jnz retry1 ;未画完8行转mov count1,320-18 ;设置移动总次数mov cx,corlumadd cx,15 ;小车最右点的列坐标送cxrepet1: push cx ;小车横向有16个点,外加1个空白点mov count2,16+1repet2: mov dx,line ;车模向右移动1 个像素位mov count3,8repet3: mov ah,0dhint 10h ;读当前点mov ah,0chpush cxinc cxint 10h ;写当前右边的点pop cxinc dx ;行坐标加1dec count3 ;车模向右移动1个像素位未完转jnz repet3dec cx ;修改列坐标dec count2 ;小车移动1个车体位未完转jnz repet2pop cxinc cx ;修改列坐标mov ah,1int 16hjnz exit ;有键按下,转退出dec count1jnz repet1mov dx,line ;清除公路和车模call clearsjmp ll ;无键按下,继续执行exit: mov ah,0 ;恢复文本显示方式mov al,2int 10hmov ah,4chint 21hclears proc nearpush axpush cxpush bxmov ax,0c00hmov bx,10cls0: mov cx,0cls1: int 10hinc cxcmp cx,320jnz cls1inc dxdec bxjnz cls0pop bxpop cxpop axretclears endpcode endsend start三.程序的调试与运行1、程序的调试程序的分析、代码的编写完成后,开始对代码进行编译和调试,我们采用DOS 环境对所编代码进行调式、编译。

《微机原理与接口技术》课设报告正文

《微机原理与接口技术》课设报告正文

目录摘要 (2)1 设计概述 (3)1.1设计任务及要求分析 (3)1.2方案比较及认证说明 (3)1.3系统原理阐述 (4)2 程序设计关键资料 (4)2.1 BIOS中断的显示输出管理(INT 10H) (4)2.1.1设置显示方式 (5)2.1.2文本方式 (5)2.1.3 置光标位置AH=02H (6)2.1,4 屏幕的上下移动AH=06H/07H (6)2.2 DOS功能调用(INT21H) (6)2.2.1调用方法 (7)2.2.2常用的系统功能调用(设计中使用) (7)3 程序流程图及代码分析 (7)3.1 主程序 (8)3.2显示姓名子程序 (9)3.3 延时子程序 (11)3.4 清屏子程序 (12)4 程序调试及结果分析 (14)4.1 程序调试及问题处理 (14)4.2 调试结果分析 (14)结束语 (16)参考资料 (17)附件:源程序清单及调试屏幕界面 (18)摘要本设计是编写汇编语言并在在Masm for windows的汇编软件环境之下使屏幕上显示我自己的名字“韦增泰”并使其从右向左循环移动。

其中应用到BIOS 中断中INT10的多个调用,方便程序编写。

本次课程设计的程序由一个主程序和若干个子程序(延时子程序、清屏子程序、显示姓名子程序)来完成设计任务所要求的功能。

并运行汇编软件进行调试。

课程设计是培养和锻炼学生在学习完本门课后综合应用所学理论知识解决实际工程设计和应用问题的能力的重要教学环节,是培养在校工科大学生理论联系实际、独立自主解决设计实践中遇到的各种问题能力的一种好方法。

关键词:BIOS中断 INT10 汇编语言程序显示名字字样的程序设计1 设计概述1.1设计任务及要求分析对任务书进行分析可知,本课程设计的任务用汇编语言设计显示自己姓名“韦增泰”的程序,并且要求姓名在屏幕上从右往左移动且按 Q键退出程序。

课程设计的基本要求为了解设计任务需求,收集有关资料、查阅有关书籍,在掌握原理、理清思路、认真分析的前提下进行程序编写,同时进行认真调试。

微机原理与接口技术-课程设计报告参考模板

微机原理与接口技术-课程设计报告参考模板

《微机原理与接口技术》课程设计报告姓名:时翰学号:040210129同组实验者:仇健指导教师:张颖日期:2005.6步进电机控制系统设计一、实验目的1、利用PC机和实验箱设计并实现给定步进电机的控制。

2、进一步掌握微机硬件和软件综合设计方法。

二、实验内容1、基本要求(1)控制步进电机转动,要求转速1步/秒。

(2)基于实验箱,设计并实现接口和驱动电路。

(3)用汇编语言编制程序。

2、提高要求(1)改善步进电机的控制性能,控制步进电机转/停;正转/反转;改变转速(至少3档);单步。

(2)改善人机接口。

三、总体设计1、8253定时控制步进速度。

2、8255输出控制脉冲,再经75452驱动电机。

3、系统运行时,首先显示主菜单,选择子菜单(设置参数)或控制工作,或返回DOS。

四、硬件设计因采用了PC机和PC总线接口应用平台,硬件电路相对简单,除利用了PC机本身资源外(如中断资源),还利用了平台上的8253计数/定时器、8255并行接口单元,再加上外围驱动电路,便构成可步进电机控制电路,硬件原理图如图1:图中75452元件是正与非驱动器,OC门输出,所以加上拉电阻;8253的作用是输出定时信号向CPU申请中断要求输出电机走步的控制信号。

图1 硬件原理图五、软件设计本设计通过软件编程使8253输出定时信号申请中断,CPU发出命令由8255的下C口输出脉宽信号来控制步进电机的走步。

电机的转动和停止则是通过8255的A0端子输出高低电平来继续或暂停8253的计数从而控制中断申请来实现的。

8253的定时时间决定了电机转动的快慢。

相对简单的硬件电路,使软件设计成为本设计课题的中心内容。

1、设计思路控制系统分五个功能模块,分别是转速设置、转向设置、固定步数转动、连续转动、退出系统,在前四个功能块中都设置了ESC键来取消或暂停执行当前操作。

程序中同时提供五个操作界面,一个主菜单和四个子菜单界面,进行可视控制。

(1)转速设置根据赋给计数器的计数初值,我们可以计算出步进电机各相脉宽信号的频率和电机转速,也可以反过来根据对电机转速要求,计算并调整计算初值。

微机原理与接口技术课设报告

微机原理与接口技术课设报告

微机原理与接口技术课程设计报告2012年 12 月 15目录一、课程设计目的和意义 (3)二、设计任务 (3)三、设计思想 (3)四、设计原理 (3)1.8254 可编程间隔定时器 (4)2、8255可编程外围接口芯片 (6)3、音符与频率对照关系 (7)五、软件流程图 (8)六、硬件接线图 (9)七、心得体会 (10)八、代码 (10)一、课程设计目的和意义通过本次课程设计要掌握8254、8255芯片使用的方法,灵活运用课本知识,加深所学的知识,对所学的相关芯片的原理、内部结构、使用方法等有更加深刻的了解,学会利用课本知识联系实际应用及编程。

同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后搞设计时逻辑更加清晰。

二、设计任务利用微机原理试验箱,设计简易电子琴,要求至少可以弹出7个音节,弹出音节可在计算机屏幕和数码管显示。

三、设计思想本系统设计的电子时钟以8086微处理器作为CPU,用8254做定时计数器产生时钟频率,8255做可编程并行接口显示弹奏音节。

在此系统中,8254的功能是定时计数,接入8254的CLK信号为周期性时钟信号。

8254采用计数器0工作于方式0和方式3。

四、设计原理本程序的主要设计原理是键盘数字键1~7按下控制选择不同的频率,实现计时结果的数码管和计算机屏幕显示,按SPACE退出程序。

程序先判断按键是否合法(在1~7),合法则键盘数字键1~7分别对应不同的子程序,8254写入不同的计数值,产生不同的频率,输出到发声单元发声。

1.8254 可编程间隔定时器图1 8254初始化字由此,本设计中的8254的初始化为:MOV AL, 30H ;采用计数器0,方式0,MOV DX, MY8254_ModeOUT DX, ALMOV AL, 37H ;计数器0,方式3MOV DX, MY8254_ModeOUT DX, AL8254 是Intel 公司生产的可编程间隔定时器。

微机原理与接口技术课程设计报告

微机原理与接口技术课程设计报告

课程设计任务书学生姓名:专业班级:电子信息工程2班指导教师:工作单位:题目:电子报警器设计一、设计条件:1.运用所学的微机原理和接口技术知识;2.微机原理和接口技术实验室的实验箱设备。

二、主要任务:(包括课程设计工作量及其技术要求以及说明书撰写等具要求)设想制作一个防盗器件。

具体要求:程序运行时扬声器发出警报声,使得8个LED指示灯不停光闪,光闪周期为2秒,14秒倒计时结束后液晶显示器显示相关警报信息。

警报信息出现后LED灯熄灭,程序按任意键退出后声不响光不闪。

根据设计任务和要求,在设计前必须对微机原理与接口技术中的8255和8253芯片熟悉了解和掌握。

设计中主要要完成的是发声报警和发光报警这两个部分功能,故在程序设计中只要设计触动键盘中的数字键即8个LED不停光闪,同时内扬声器发出警报声,且在屏幕上显示警报信息。

在设计发声报警时利用了8253可编程定时记数器。

在设计发光报警时利用了8255芯片。

在程序设计中利用INT 10H实现在屏幕上显示相关的警报信息。

三、时间安排:指导教师签名:年月日基于微机原理电子警报器的设计摘要在当今高速发展的中,人们对自身所处的环境越来越关心,居家安全已成为当今小康之家优先考虑的。

当您上班家中无人,或者仅有老人孩子在家,或者您晚上在家熟睡,您必须确保家庭成员和财产的绝对安全。

众多住宅小区的安防防犯主要倚靠安装防盗窗、防盗门以及人工防犯。

这样不仅有碍美观,不符合防火的要求、而且不能有效地防止坏人的侵入。

随着生活水平的不断提高,人们的安全防范意识也在不断的增强,各种智能防盗报警器应运而生,并不断地向各个领域深入,报警器是一种为防止或预防某事件发生所造成的后果,以声音、电话提醒等形式来警示或提醒我们应当采取某种行动的电子产品。

随着科技的进步,家居安防中的机械式报警器越来越多地被先进的电子报警器代替,如防盗报警器、防火报警器、煤气天然气泄露报警器等。

并且电子报警器在安全智能家居监控报警系统起越来越重要的作用。

微机原理与接口技术课程设计报告

微机原理与接口技术课程设计报告

实验一 接收年、月、日信息显示 一、课程(软件)设计内容显示输入提示信息并响铃一次,然后接收键盘输入的月/日/年信息,并显示。

若输入月份日期不对,则显示错误提示并要求重新输入。

二、程序框图一三、程序及分析CRLF MACRO MOV AH, 02H MOV DL, 0DH INT 21H MOV AH, 02HYY开 始初始化,清错标志 显示提示信息,响铃一次 调用键读入子信息,读月 有出错标志吗?调用键读入子信息,读日 有出错标志吗?有出错标志吗?调用键读入子信息,读年显示年、月、日返回DOSYNYN入口保持现场是回车或空格否输入字在1~9之间否返回DOS 中读取得键输入值将ASCII 码转换为四位十六进制数,存于DI返回置出错标志YMOV DL, 0AHINT 21HENDMDA TA SEGMENTMESS DB '按顺序输入月,日,年,每输完一样按回车(MM/DD/YY)',0DH,0AH,'$' MESS1 DB '月份错误,重新输入',0DH,0AH,'$'MESS2 DB '日期错误,重新输入',0DH,0AH,'$'ERROR DB '输入错误,重新输入',0DH,0AH,'$'MARK DB ?REG DW ?DA TA ENDSSTACK SEGMENTSTA DW 32 DUP ( ?)TOP DW ?STACK ENDSCODE SEGMENTASSUME CS: CODE, DS: DA TA,ES: DA TA,SS: STACKSTART: MOV AX, DA TAMOV DS, AXMOV ES, AXMOV SP,TOP ;初始化HEAD: MOV MARK,0 ;清错误标志MOV AH, 09HMOV DX, OFFSET MESSINT 21H ;显示提示信息MOV AH, 02HMOV DL, 07HINT 21H ;响铃1次CALL GETNUMJE HEADPUSH DXCALL GETNUMCMP MARK, 01HJNE K1POP DXJMP HEADK1: PUSH DXCALL GETNUM ;接收键入的月值,日值及年值CMP MARK, 01HJNE K2POP DXPOP DXJMP HEADK2: MOV AX, DXCALL DISP ;显示年值NOPMOV AH, 02HMOV DL,'-' ;显示`-`INT 21HPOP DXPOP AXPUSH DXMOV REG, AXAND AX, 00FFHCMP AX, 0012HJBE W1MOV AH, 09HLEA DX, MESS1JMP STARTW1: MOV AX, REGCALL DISPPMOV AH, 02HMOV DL,'-'INT 21HPOP AXMOV REG, AXAND AX, 00FFHCMP AX, 31HJBE W2MOV AH, 09HLEA DX, MESS2INT 21HJMP STARTW2: MOV AX, REGCALL DISPP ;显示日值MOV AX, 4C00HINT 21H ;返回DOS DISPP PROC NEARMOV BL, ALMOV DL, BLMOV CL, 04ROL DL, CLAND DL, 0FHCALL DISPLMOV DL, BLAND DL, 0FHCALL DISPLDISPP ENDPDISPL PROC NEARADD DL, 30HCMP DL, 3AHJB DDDADD DL, 27HDDD: MOV AH, 02HINT 21HRETDISPL ENDPDISP PROC NEARPUSH BXPUSH CXPUSH DXPUSH AXMOV AL, AHCALL DISPPPOP AXCALL DISPPPOP DXPOP CXPOP BXRET ;显示子程序DISP ENDPGETNUM PROC NEARPUSH CXXOR DX, DXGGG: MOV AH, 01HCMP AL, 0DHJZ PPPCMP AL, 20HJZ PPPSUB AL, 30HCMP AL, 0JB KKKCMP AL, 0AHJB GETSJMP KKKGETS: MOV CL, 04SHL DX, CLXOR AH, AHADD DX, AXJMP GGGKKK: PUSH AXPUSH DXMOV AH, 09HMOV DX, OFFSET ERRORINT 21HMOV MARK, 01HPOP DXPOP AXPPP: PUSH DXMOV AH, 02HMOV DX, 07HINT 21HCRLFPOP DXRETGETNUM ENDP CODE ENDSEND START四、课程设计总结掌握响铃符方法,掌握年、月、日输入方法,借以观察实验的结果。

微机原理与接口技术课程设计报告

微机原理与接口技术课程设计报告

课程设计任务书学生姓名:专业班级:电子信息工程2班指导教师:工作单位:题目:电子报警器设计一、设计条件:1.运用所学的微机原理和接口技术知识;2.微机原理和接口技术实验室的实验箱设备。

二、主要任务:(包括课程设计工作量及其技术要求以及说明书撰写等具要求)设想制作一个防盗器件。

具体要求:程序运行时扬声器发出警报声,使得8个LED指示灯不停光闪,光闪周期为2秒,14秒倒计时结束后液晶显示器显示相关警报信息。

警报信息出现后LED灯熄灭,程序按任意键退出后声不响光不闪。

根据设计任务和要求,在设计前必须对微机原理与接口技术中的8255和8253芯片熟悉了解和掌握。

设计中主要要完成的是发声报警和发光报警这两个部分功能,故在程序设计中只要设计触动键盘中的数字键即8个LED不停光闪,同时内扬声器发出警报声,且在屏幕上显示警报信息。

在设计发声报警时利用了8253可编程定时记数器。

在设计发光报警时利用了8255芯片。

在程序设计中利用INT 10H实现在屏幕上显示相关的警报信息。

三、时间安排:指导教师签名:年月日基于微机原理电子警报器的设计摘要在当今高速发展的中,人们对自身所处的环境越来越关心,居家安全已成为当今小康之家优先考虑的。

当您上班家中无人,或者仅有老人孩子在家,或者您晚上在家熟睡,您必须确保家庭成员和财产的绝对安全。

众多住宅小区的安防防犯主要倚靠安装防盗窗、防盗门以及人工防犯。

这样不仅有碍美观,不符合防火的要求、而且不能有效地防止坏人的侵入。

随着生活水平的不断提高,人们的安全防范意识也在不断的增强,各种智能防盗报警器应运而生,并不断地向各个领域深入,报警器是一种为防止或预防某事件发生所造成的后果,以声音、电话提醒等形式来警示或提醒我们应当采取某种行动的电子产品。

随着科技的进步,家居安防中的机械式报警器越来越多地被先进的电子报警器代替,如防盗报警器、防火报警器、煤气天然气泄露报警器等。

并且电子报警器在安全智能家居监控报警系统起越来越重要的作用。

微机原理与接口课程设计报告

微机原理与接口课程设计报告

目录一.问题描述 (3)二.基本要求 (3)三.实现分析与程序 (3)四.流程图 (6)五.程序源代码 (9)六.程序运行界面 (18)七.测试结果 (20)八.心得体会 (22)一、问题描述:系统提示输入数字的个数,并且这些数字已无序的方式放着,利用已掌握的编程方式将其“由小到大”或者是“由大到小”排列,最后输出排列后的数字,一旦输入数字超出范围,则提示错误。

在编完排序的程序后,觉得有点简易些,于是想制作一个应用型用户软件。

于是在排序的基础上加入了进入程序必须输入密码,输入密码正确,进入用小车做的开机画面,然后再进入排序程序。

完成好这些还是觉得有点平易近人,想来一点创新的意识。

个人喜好音乐,于是想到了用音乐来表达出排序的效果。

利用所学的扬声器发声原理,将输入排好的数据用音乐的音符表达出来,自己乐在其中。

二、基本要求:在考虑到输入输出程序的时候,应该利用“先进后出”的设计思路,试用堆栈技术,结合DOS的中断调用,实现输入字符串的显示,在考虑到由大到小或者是由小到大排序的时候,应该考虑到利用冒泡法。

在运用开机画面的时候,首先用DOS的中断调用,实现用字符组成的小车显示,然后实现小车的移动,表达类似windows开机的效果。

在运用扬声器发声的程序时,先输入计数初值,打开扬声器,将排序结果数字转换为音乐表中的对应数字,对应相应的发声频率,发车类似音乐的音调,达到想要的目的。

三、实现分析与程序冒泡排序分析:将被排序的记录数组R[1..n]垂直排列,每个记录R[i]看作是重量为R[i].key 的气泡。

根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R:凡扫描到违反本原则的轻气泡,就使其向上"飘浮"。

如此反复进行,直到最后任何两个气泡都是轻者在上,重者在下为止。

(1)初始R[1..n]为无序区。

(2)第一趟扫描从无序区底部向上依次比较相邻的两个气泡的重量,若发现轻者在下、重者在上,则交换二者的位置。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《微机原理与接口技术》课程设计报告班级:学号:姓名:201X年X月目录实验一显示程序实验 (2)实验二数据传送实验 (4)实验三数码转换程序实验 (6)实验四运算类程序实验 (15)实验五分支程序设计实验 (18)实验一显示程序实验一、实验目的1. 掌握在PC机上以十六进制形式显示数据的方法;2. 掌握部分DOS 功能调用使用方法;3. 熟悉Tddebug 调试环境和Turbo Debugger 的使用。

二、实验内容一般来说,程序需要显示输出提示运行的状况和结果,有的还需要将数据区中的内容显示在屏幕上。

本实验要求将指定数据区的数据以十六进制数形式显示在屏幕上,并通过DOS 功能调用完成一些提示信息的显示。

实验中可使用DOS 功能调用(INT 21H )。

(1) 显示单个字符输出入口:AH=02H调用参数:DL= 输出字符(2) 显示字符串入口:AH=09H调用参数:DS:DX=串地址,’$’为结束字符(3) 键盘输入并回显入口:AH=01H返回参数:AL= 输出字符(4) 返回DOS 系统入口:AH=4CH调用参数:AL= 返回码三、实验设备PC微机一台四、实验代码DATA SEGMENTMES DB 'Show a as hex:', 0AH,0DH,'$'SD DB 'a'DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATASTART: MOV AX, DATAMOV DS, AXMOV DX, OFFSET MES ;显示提示信息MOV AH, 09HINT 21HMOV DI, OFFSET SDMOV AL, DS:[DI]AND AL, 0F0H ;取高4位SHR AL,4CMP AL, 0AH ;是否是A以上的数JB C2ADD AL, 07HC2: ADD AL, 30HMOV DL, AL ;显示字符MOV AH, 02HINT 21HMOV AL, DS:[DI]AND AL, 0FH ;取低4位CMP AL, 0AHJB C3ADD AL, 07HC3: ADD AL, 30HMOV DL, AL ;显示字符MOV AH, 02HINT 21HMOV AX, 4C00H ;返回DOSINT 21HCODE ENDSEND START五、运行结果实验二数据传送实验一、实验目的1. 熟悉Tddebug调试环境和Turbo Debugger的使用;2. 掌握与数据有关的不同寻址方式。

二、实验所用设备1. PC微机一台。

三、实验内容将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符串到屏幕上。

参考实验程序:DDATA SEGMENT ;定义源数据段MSR DB "HELLO,WORLD!$"LEN EQU $- MSRDDATA ENDSEXDA SEGMENT ;定义附加数据段MSD DB LEN DUP(?)EXDA ENDSMYSTACK SEGMENT STACK ;定义堆栈段DW 20 DUP(?)MYSTACK ENDSCODE SEGMENT ;定义代码段ASSUME CS:CODE, DS:DDATA, ES:EXDASTART: MOV AX, DDATAMOV DS, AX ;装载数据段寄存器MOV AX, EXDAMOV ES,AX ;装载附加数据段寄存器MOV SI, OFFSET MSR ;设置SIMOV DI, OFFSET MSD ;设置DIMOV CX, LENNEXT: MOV AL, [SI] ;开始传输数据INC SIINC DIDEC CXJNZ NEXTPUSH ESPOP DS ;将附加段寄存器的段值赋给数据段寄存器MOV DX, OFFSET MSDMOV AH, 9INT 21HMOV AX, 4C00H ;利用DOS功能调用返回DOS状态INT 21HCODE ENDSEND START将程序主体部分的寄存器间接寻址方式改为相对寻址方式,则如下所示:MOV BX, 0MOV CX, LENNEXT: MOV AL, MSR[BX]MOV ES:MSD[BX], ALINC BXLOOP NEXT四、实验步骤1.运行Tddebug软件,选择Edit菜单编写实验程序;2.使用Compile菜单中的Compile和Link对实验程序进行汇编、连接;3.使用Rmrun菜单中的Run,运行程序,观察运行结果;4.使用Rmrun菜单中的Debug,调试程序,观察调试过程中,数据传输指令执行后,各寄存器及数据区的内容;5.更改数据区中的数据,考察程序的正确性。

五、实验运行结果实验三数码转换程序实验一、实验目的掌握不同进制数及编码相互转换的程序设计方法。

二、实验所用设备PC微机一台。

三、实验内容计算机输入设备输入的信息一般是由ASCII码或BCD码表示的数据或字符,CPU用二进制数进行计算或其它信息处理,处理结果的输出又必须依照外设的要求变为ASCII码、BCD码或七段显示码等。

因此,在应用软件中,各类数制的转换和代码的转换是必不可少的。

计算机与外设间的数码转换关系如图3-1所示,数码对应关系如表3-1所示。

图3-1 计算机与外设间的数码转换关系1.将ASCII码表示的十进制数转换为二进制数十进制数可以表示为:Dn×10n+Dn-1×10n-1+…+D0×100=Di×10i 其中Di代表十进制数1、2、3…9、0。

上式可以转换为:ΣDi×10i=((…(Dn×10+Dn-1)×10)+Dn-2)×10+…+D1)×10+D0由上式可归纳十进制数转换为二进制的方法:从十进制数的最高位Dn开始作乘10加次位的操作,依次类推,则可求出二进制数结果。

《微机原理与接口技术》课程设计报告本实验要求将缓冲区中的一个五位十进制数00012的ASCII 码转换成二进制数,并将转换结果按位显示在屏幕上。

转换过程的参考流程如图3-2所示。

表3-1 数码转换对应关系2.将十进制数的ASCII 码转换为BCD 码本实验要求将键盘输入的一个五位十进制数54321的ASC II 码存放入数据区中,转换为 BCD 码后,并将转换结果按位分别显示于屏幕上。

若输入的不是十进制数的ASC II 码,则输出“FF”。

提示:一字节ASC II 码取其低四位即变为BCD 码。

转换部分的实验流程参见3-3。

3.将十六进制数的ASCII 码转换为十进制数十六位二进制数的值域为0-65535,最大可转换为五位十进制数。

五位十进制数可表示为: N D =D 4×104+D 3×103+D 2×102+D 1×10+D 0因此,将十六位二进制数转换为五位ASCII 码表示的十进制数,就是求D 1-D 4,并将它们转化为ASCII 码。

图3-2 十进制ASCII 转换为二进制数参考流程图3-3 十进制ASCII 转换为BCD 码参考流程本实验要求将缓冲区中存放的000CH 的ASCII 码转换成十进制数,并将转换结果显示在屏幕上。

转换部分的实验流程参见图3-4。

4.BCD 码转换为二进制码本实验要求将四个二位十进制数的BCD 码存放在某一内存单元中,转换出的二进制数码存入其后的内存单元中,转换结束,送屏幕显示。

转换部分的实验流程参见3-5。

四、实验步骤1. 运行Tddebug 软件,选择Edit 菜单编写实验程序;2. 使用Compile 菜单中的Compile 和Link 对实验程序进行汇编、连接;3. 使用Rmrun 菜单中的Run ,运行程序,观察运行结果;4. 使用Rmrun 菜单中的Debug ,调试程序,观察调试过程中,数据传输指令执行后,各寄存器及数据区的内容;5. 更改数据区中的数据,考察程序的正确性。

五、实验代码1.将ASCII码表示的十进制数转换为二进制数DATA SEGMENTSTRING DB 'Input:','$'NUM DB 6, ?, 6 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA START: MOV AX, DATAMOV DS, AXCALL INPUTCALL CHANGECALL LIST_BXMOV AH, 4CHINT 21HINPUT PROCLEA DX , STRINGMOV AH , 09HINT 21HLEA DX , NUMMOV AH , 0AHINT 21HRETINPUT ENDPCHANGE PROCLEA SI, NUM+2MOV CL, NUM+1MOV CH, 0MOV AX, 0MOV DI, 10NEXT: MUL DIMOV BH, 0MOV BL, [SI]AND BL, 0FHADD AX, BXINC SILOOP NEXTZERO: MOV BX, AXRETCHANGE ENDPADD DL, 07HLIST_BX PROCMOV DL,0DHINT 21HMOV DL,0AHMOV AH,2INT 21HMOV CH, 4MOV CL, 4NEXT1: ROL BX, CLMOV DL, BLAND DL, 0FHADD DL, 30HCMP DL, 39HJLE PRINTPRINT: MOV AH, 2HINT 21HDEC CHJNZ NEXT1RETLIST_BX ENDPCODE ENDSEND START2.将十进制数的ASCII码转换为BCD码DATA SEGMENTD1 DB 6,?,6 DUP(?)D2 DB 5 DUP(?)D3 DB 'FF$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START: MOV AX,DATAMOV DS,AXMOV DX,OFFSET D1MOV AH,0AHINT 21HMOV DL,0DHMOV AH,2INT 21HMOV DL,0AHMOV AH,2INT 21HMOV CL,D1+1MOV CH,0L1: MOV AL,D1[SI+2]CMP AL,30HJB L2CMP AL,39HJA L2AND AL,0FHMOV D2[SI],ALINC SILOOP L1MOV CL,D1+1MOV SI,0L4: MOV DL,D1[SI+2]MOV AH,2INT 21HINC SILOOP L4JMP L3L2: MOV DX,OFFSET D3MOV AH,09HINT 21HL3: MOV AH,4CHINT 21HCODE ENDSEND START3.将十六进制数的ASCII码转换为十进制数DATA SEGMENTD1 DB '000C'C1 EQU $-D1D2 DW ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START: MOV AX,DATAMOV DS,AXMOV CX,C1MOV SI,OFFSET D1MOV BX,10HMOV AX,0L1: MOV DL,[SI]SUB DL,30HCMP DL,9JBE L2SUB DL,7H ;十六进制数大写,若小写,减27h L2: MOV DH, 0PUSH DXMUL BXPOP DXADD AX,DXINC SIDEC CXJNZ L1MOV D2,AXMOV BX,10000MOV DX,0DIV BXPUSH DXMOV DL,ALADD DL,30HMOV AH,2INT 21HPOP AXMOV BX,1000MOV DX,0DIV BXPUSH DXMOV DL,ALADD DL,30HMOV AH,2INT 21HPOP AXMOV BX,100MOV DX,0DIV BXPUSH DXMOV DL,ALADD DL,30HMOV AH,2INT 21HPOP AXMOV BX,10MOV DX,0DIV BXPUSH DXMOV DL,ALADD DL,30HMOV AH,2POP AXMOV DL,ALADD DL,30HMOV AH,24.BCD转换为二进制码DATA SEGMENTD1 DB 12H,34H,56H,78HC1 EQU $-D1D2 DB C1 DUP (?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START: MOV AX,DATAMOV DS,AXMOV CH,C1MOV CL,4MOV SI,0MOV BH,10L1: MOV AL,D1[SI]MOV BL,ALAND BL,0FHAND AL,0F0HSHR AL,CLMUL BHADD AL,BLMOV D2[SI],ALINC SIDEC CHJNZ L1L2: MOV DL,0DHMOV AH,2INT 21HMOV DL,0AHMOV AH,2INT 21HMOV AL,D2[SI]MOV DL,ALAND DL,0F0HSHR DL,CLADD DL,30HCMP DL,39HJNA L3ADD DL,7L3: PUSH AXINT 21HPOP AXAND AL,0FHMOV DL,ALADD DL,30HCMP DL,39HJNA L4ADD DL,7L4: MOV AH,2INT 21HINC SI六、实验运行结果1.2.3.4.实验四运算类程序实验一、实验目的1. 掌握运算类指令编程及调试方法;2. 掌握运算类指令对各状态标志位的影响及测试方法。

相关文档
最新文档