微机原理及应用实验报告81487
微机原理及应用课程设计报告

微机原理及应用课程设计设计题目: 基于PC机串行通信的点到点文件传输系统专业讣算机科学与技术班级计104学生 D指导教师2013 年秋季学期LI录U录 2实验LI3的二实验内容及要求 3、三课设基本思想 3、程序流程图以及程序设讣 5四、五. 实验结果截图6六. 程序源代码7七. 课程设计心得体会14A.参考文献151、实验目的1.学习虚拟串口的使用方法。
2.学会在windows平台上进行串口通信的方法。
二、实验内容及要求1•基本要求:采用VB,VC,C#或其他开发工具设计一个简易的聊天系统。
用户可以设置波特率或釆用自动协商机制。
界面如下图:接收信息|Text1发送信息Text22.设汁提示:在Windows平台上通过API或MSComn控件实现串行通信。
3.进一步设计要求:采用多线程完成通信任务。
三、课设基本思想1.在.\ET平台下使用C#创建串口通信程序,.NET2.0提供了串口通信的功能,其命名空间是System. 10. PortSo这个新的框架不但可以访问计算机上的串口,还可以和串口设备进行通信。
我们将使用标准的RS 232 C在PC间通信。
它丄作在全双工模式下,而且我们不打算使用任何的握手或流控制器,而是使用无modem连接。
2.串口的硬件知识:在数据传输的时候,每个字节的数据通过单个的电缆线传输。
包包括开始位,数据,结束为。
一旦开始位传出,后面就会传数据,可能是5, 6, 7或8位, 就看你的设定了。
发送和接收必须设定同样的波特率和数据位数。
3.关于本程序使用SerialPort的一些属性和方法:4、程序流程图以及程序设计开始、程序流程图:使用函数获取系统、“|前的可用串口初始化串JI初始化波特率建立串11连接并通信是否发送…进制文件发送二进制文件(二)、程序设计思想:首先需要定义一个SerialPort对象,添加DataReceived事件响应收到数据。
然后利用系统提供函数获取当前端口号,以及用户选择的波特率,对对象进行初始化。
精石油大学《微机原理及应用》实验报告

2、复习内存分段概念、数据类型伪指令语句中的表达式、无进位加法和带进位加法的实现、多位10进制数带进位加法的实现、简单循环的实现;
3、观察数据段和代码段的位置和大小。
四、编写完整的程序代码
DATA SEGMENT ;定义数据段
X DB 32,-43,76,95,-1
代码段的大小:0001FH规范字节
C:\masm>LINK TEST3;
C:\masm>DEBUG TEST3.EXE;
其中TEST3为源程序的名字
2.写出程序的数据段、代码段的位置和大小
数据段位置:
起始地址:00000H,终止地址:0000EH,
数据段的大小:0000FH规范字节
代码段的位置:
起始地址:00010H,终止地址:0002EH,
Y DB -78,127,-128,-125,88
S DB 5 DUP(?)
DATA ENDS
CODE SEGMENT ;定义代码段
ASSUME CS: CODE, DS:DATA
START: MOV AX,DATA;数据段初始化
MOV DA,AX
MOV CL,5
MOV BX,0
NEXT MOV AL,X[BX]
中国石油大学(华东)现代远程教育
实验报告
课程名称:微机原理及应用
实验名称:循环程序设计
实验形式:在线模拟+现场实践
提交形式:在线提交实验报告
学生姓名:学 号:
年级专业层次:1606级机械设计制造及其自动化专升本
学ห้องสมุดไป่ตู้中心:青岛直属学习中心
提交时间:2017年12月20日
微机原理实训报告完整

资料范本本资料为word版本,可以直接编辑和打印,感谢您的下载微机原理实训报告完整地点:__________________时间:__________________说明:本资料适用于约定双方经过谈判,协商而共同承认,共同遵守的责任与义务,仅供参考,文档可直接下载或修改,不需要的部分可直接删除,使用时请详细阅读内容一、设计目的通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。
通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。
为以后学生结合专业从事微机应用设计奠定基础。
二、设计的原始资料及依据(1)查阅微机原理及应用、汇编语言程序设计等书籍;(2)掌握字符串的输入,输出和排序。
三、设计的主要内容及要求内容:从PC键盘输入5个字符串,排序及显示要求1)输入5个字符串。
2)对输入的字符串进行排序并正确显示。
四、对设计说明书撰写内容、格式、字数的要求1.课程设计说明书(论文)是体现和总结课程设计成果的载体,一般不应少于3000字。
2.学生应撰写的内容为:目录、正文、参考文献等。
课程设计说明书(论文)的结构及各部分内容要求可参照《沈阳工程学院毕业设计(论文)撰写规范》执行。
应做到文理通顺,内容正确完整,书写工整,装订整齐。
3.说明书(论文)手写或打印均可。
手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时按《沈阳工程学院毕业设计(论文)撰写规范》的要求进行打印。
4. 课程设计说明书(论文)装订顺序为:封面、任务书、成绩评定表、目录、正文、总结、参考文献。
五、设计完成后应提交成果的种类、数量、质量等方面的要求;提交课程设计说明书一份。
在说明书中要有设计原理、硬件电路接线图、设计的程序及必要注释等。
六、时间进度安排;沈阳工程学院微机原理及汇编语言程序设计程设计成绩评定表系(部):信息学院班级:学生姓名:目录TOC \o "1-3" \h \z \uHYPERLINK \l "_Toc359478386" 第1章绪论 PAGEREF_Toc359478386 \h 1HYPERLINK \l "_Toc359478387" 1.1 背景 PAGEREF_Toc359478387 \h 1HYPERLINK \l "_Toc359478388" 1.2 设计目的与任务 PAGEREF _Toc359478388 \h 1HYPERLINK \l "_Toc359478389" 1.2.1 本课程设计的目的 PAGEREF _Toc359478389 \h 1HYPERLINK \l "_Toc359478390" 1.2.2 本课程设计的任务 PAGEREF _Toc359478390 \h 1HYPERLINK \l "_Toc359478391" 第2章汇编语言的运行环境及运行步骤 PAGEREF _Toc359478391 \h 2HYPERLINK \l "_Toc359478392" 2.1 汇编语言的起源 PAGEREF _Toc359478392 \h 2HYPERLINK \l "_Toc359478393" 2.2 汇编语言的特点 PAGEREF _Toc359478393 \h 2HYPERLINK \l "_Toc359478394" 2.2.1 能够保持机器语言的一致性,直接、简捷 PAGEREF _Toc359478394 \h 2HYPERLINK \l "_Toc359478395" 2.2.2 目标代码简短,占用内存少,执行速度快 PAGEREF _Toc359478395 \h 2HYPERLINK \l "_Toc359478396" 2.2.3 汇编语言是面向机器的PAGEREF _Toc359478396 \h 2HYPERLINK \l "_Toc359478397" 2.2.4 难于从汇编语言代码上理解程序设计意图,可维护性差 PAGEREF _Toc359478397 \h 2HYPERLINK \l "_Toc359478398" 2.2.5 高速度和高效率 PAGEREF _Toc359478398 \h 2HYPERLINK \l "_Toc359478399" 2.3 汇编语言的运行环境 PAGEREF _Toc359478399 \h 3HYPERLINK \l "_Toc359478400" 2.4 汇编语言的运行步骤 PAGEREF _Toc359478400 \h 3HYPERLINK \l "_Toc359478401" 第3章总体设计思路 PAGEREF _Toc359478401 \h 6HYPERLINK \l "_Toc359478402" 3.1 功能设计分析 PAGEREF_Toc359478402 \h 6HYPERLINK \l "_Toc359478403" 3.1.1 设计思路分析 PAGEREF _Toc359478403 \h 6HYPERLINK \l "_Toc359478404" 3.1.2 系统功能分析: PAGEREF _Toc359478404 \h 6HYPERLINK \l "_Toc359478405" 3.2 总体设计分析 PAGEREF_Toc359478405 \h 6HYPERLINK \l "_Toc359478406" 3.2.1 系统功能模块图 PAGEREF _Toc359478406 \h 6HYPERLINK \l "_Toc359478407" 3.2.2 具体设计方案 PAGEREF _Toc359478407 \h 6HYPERLINK \l "_Toc359478408" 第4章程序实现 PAGEREF_Toc359478408 \h 8HYPERLINK \l "_Toc359478409" 4.1 运行程序 PAGEREF_Toc359478409 \h 8HYPERLINK \l "_Toc359478410" 4.1.1 单步运行 PAGEREF_Toc359478410 \h 8HYPERLINK \l "_Toc359478411" 4.1.2 暂停执行程序 PAGEREF _Toc359478411 \h 8HYPERLINK \l "_Toc359478412" 4.1.3 连续运行程序 PAGEREF _Toc359478412 \h 8HYPERLINK \l "_Toc359478413" 4.2 各个模块程序流程图设计PAGEREF _Toc359478413 \h 9HYPERLINK \l "_Toc359478414" 4.2.1 第一模块输入字符串PAGEREF _Toc359478414 \h 9HYPERLINK \l "_Toc359478415" 4.2.2 第二模块字符串排序PAGEREF _Toc359478415 \h 9HYPERLINK \l "_Toc359478416" 4.2.3 第三模块输出字符串PAGEREF _Toc359478416 \h 10HYPERLINK \l "_Toc359478417" 第5章遇到问题及解决方法PAGEREF _Toc359478417 \h 12HYPERLINK \l "_Toc359478418" 5.1 所遇到的问题 PAGEREF_Toc359478418 \h 12HYPERLINK \l "_Toc359478419" 5.2 对应问题的解决方法 PAGEREF _Toc359478419 \h 12HYPERLINK \l "_Toc359478420" 总结 PAGEREF_Toc359478420 \h 13HYPERLINK \l "_Toc359478421" 致谢 PAGEREF_Toc359478421 \h 14HYPERLINK \l "_Toc359478422" 参考文献 PAGEREF_Toc359478422 \h 15HYPERLINK \l "_Toc359478423" 附录 PAGEREF_Toc359478423 \h 16HYPERLINK \l "_Toc359478424" 源程序代码: PAGEREF_Toc359478424 \h 16第1章绪论1.1 背景计算机技术作为信息化的核心技术受到全社会的普遍重视。
微机原理与应用课程实验报告

2014-2015秋学期微机原理与应用课程实验报告实验分工:报告人(签名)姓名:学号:班级:同组人(签名)姓名:学号:班级:实验时间:微机原理与应用课程设计报告一、设计目的1.熟悉emu8086的使用方法。
2.掌握汇编语言设计和调试方法。
3. 提高编程设计能力,掌握结构化编程的方法。
二、课程设计任务及其分析、流程图、代码本课程设计采用自上而下的结构化编程方法,将整个课程设计分为5个任务,并将第4、5个任务都分成第一步和第二步,依次完成这些任务。
先对DS、ES等初始化,再给这5个任务编写5个子程序,其中第4、5个子程序又分成两步。
最后,返回DOS系统,程序结束。
流程图:代码:title 1104520121陈冬冬_课程设计源程序page 60,132.model small.stack 64.data.codemain proc farmov ax,0100hmov ds,axmov es,axcall sub1call sub2call sub3call sub4call sub5mov ax,4chint 21h;返回dos系统main endp(二)每个设计任务及其分析、流程图、代码1.在数据段首址为0100H开始的内存区1按从大到小的顺序顺次存入二进制数15~0共16个字节的数据;分析:任务1要求将15~0共16个字节的数据存入首址为0100H的内存区1。
首先,将内存区1的首址赋给数据段地址偏移寄存器SI。
显然,不能将立即数一个一个立即数存入内存区1,这样在编程上是不现实的。
所以,我先用一个寄存器AL来存放这些数,再将AL的值存入内存区1。
可以先给AL赋值15,然后存入内存区1,以后每次AL自减1,内存区地址加1,这样就用少量代码实现了任务1。
流程图:NY代码:mov si,0100h;内存区1的偏移地址 mov cx,0010h;循环次数,十进制数为16 mov al,0fh;将要赋的值15~0放在al 中 intram:mov [si],al inc si开始初始化目标内存区首址SI=0100H循环次数CX=0100H 初始化将要赋值的寄存器AL=000FH 目标单元赋值 目标内存区SI<—SI-1要赋的值AL<—AL-1 CX<—CX-1 CX=0? 结束dec al;每循环一次,地址加1,数据减1loop intram2.将上述源区内容传送到目的内存区2(首址为1100H)中;分析:任务2要求将内存区1的内容传送到内存区2中。
(完整版)北航微机原理实验报告

微计算机原理及运用实验报告目录实验一:I/O地址译码实验 (4)一、实验目的 (4)二、实验原理和内容 (4)三、实验程序 (4)四.实验总结 (5)实验二:8255并行接口实验 (6)一、实验目的 (6)二、实验原理和内容 (6)三、程序框图 (7)四.实验程序 (7)五.实验总结 (8)实验三:键盘显示控制实验 (9)一、实验目的 (9)二、实验内容及原理 (9)三、流程图 (10)四.程序 (10)五.实验总结 (13)实验四:8254定时器/计数器实验 (14)一、实验目的 (14)二、实验原理和内容 (14)三、实验程序 (14)四.实验总结 (15)实验五:继电器控制实验 (16)一、实验目的 (16)二、实验原理和内容 (16)三、实验中使用的程序 (16)四.实验总结 (18)实验六:DMA传送 (18)一、实验目的 (18)二、实验原理和内容 (18)三、程序 (19)四.实验总结 (20)实验七:8259 中断控制实验 (20)一、实验目的 (20)二、实验原理和内容 (21)三、流程图 (21)四.程序 (21)五.实验总结 (25)实验八:8255中断实验 (25)一、实验目的 (25)二、实验原理和内容 (25)三.实验程序 (26)四.实验总结 (27)实验一:I/O地址译码实验一、实验目的掌握I/O地址译码电路的工作原理。
二、实验原理和内容实验电路如附图1所示,其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D触发器,74LS138为地址译码器。
译码输出端Y0~Y7在实验台上“I/O地址“输出端引出,每个输出端包含8个地址,Y0:280H~287H,Y1:288H~28FH,……当CPU执行I/O指令且地址在280H~2BFH范围内,译码器选中,必有一根译码线输出负脉冲。
附图1 I/O地址译码电路利用这个负脉冲控制L7闪烁发光(亮、灭、亮、灭、……),时间间隔通过软件延时实现。
微机原理与应用实验报告范文

微机原理与应用实验报告范文姓名:专业:学院:学号:指导老师:微机原理实验一一、实验目的1、熟悉汇编程序调试方法2、80某86指令运用及顺序结构程序设计二、实验设备80某86微型计算机三、实验内容1、编程并调试显示“HelloWord!”字符串的汇编程序STACKSSEGMENTSTACK;堆栈段DW128DUP()STACKSENDSDATASSEGMENT;数据段DATASENDSCODESSEGMENT;代码段ASSUMECS:CODES,DS:DATASSTART:MOVA某,DATAS;初始化MOVDS,A某OUTBUFDB'HelloWord!$'MOVD某,OFFSETOUTBUFMOVAH,9;显示在屏幕上INT21HMOVAH,4CH;退出程序INT21HCODESENDSENDSTART程序调试运行结果如下图:屏幕显示有“HelloWord!”字符串2、A、B、C、D、W是互不相等的在数据段中定义的16位有符号数,并假设加减运算不产生溢出。
编写一个完整段定义的汇编语言程序(包含必要的伪指令),计算W=(A+B)某(C—D)。
STACKSSEGMENTSTACK;堆栈段DW128DUP()STACKSENDSDATASSEGMENT;数据段ADW1HBDW2HCDW5HDDW6HWDW2DUP()DATASENDSCODESSEGMENT;代码段ASSUMECS:CODES,DS:DATASSTART:MOVA某,DATAS;初始化MOVDS,A某MOVA某,AADDA某,BMOVB某,CSUBB某,DIMULB某MOVW,A某MOVW+2,D某MOVAH,4CH;退出程序INT21HCODESENDSENDSTART调试验证结果:W=(A+B)某(C—D)=(1H+2H)某(5H-6H)=-3H,结果存于097E:0008开始的的4个单元里。
微机原理实验二一、实验目的1、熟悉80某86指令及汇编程序调试方法2、掌握分支和循环结构程序设计方法的运用二、实验设备80某86微型计算机三、实验内容3、设某、Y为在数据段中定义的有符号字变量。
微机原理(单片机汇编)实验报告

软件实验报告软件实验一一、实验目的1.熟悉软件实验的基本步骤和汇编程序的调试方法;2.了解内存块的移动方法;3.了解将十六进制数转换成ASCII值的方法。
二、实验原理用MOV和MOVX指令可以进行数据的赋值和移动,用循环可以完成大量数据的复制。
三、实验内容及步骤1、软件设置为模拟调试状态,在所建的Project文件中添加例程1的源程序进行编译,编译无误后,可以选择单步或跟踪执行方式或全速运行程序。
打开CPU窗口,观察CPU窗口各寄存器的变化。
打开View菜单中的Memory Window,可以观察内部RAM、外部RAM的数据和程序存储器中的程序。
在Address窗口输入X:8000H后回车,观察8000H-800FF起始的256个字节单元的内容。
2、新建一个Project文件,添加例程2的源程序进行编译,编译无误后,可以选择单步或跟踪执行方式或全速运行程序。
打开View菜单中的Memory Window,在Address 窗口的Memory#1输入X:3000H后回车,点击运行按钮后, 在Memory#2输入X:4000H后回车,观察外部RAM3000H和4000H中的内容。
3、添加将片内30H-3FH单元的内容复制片外片外1030H~103FH中的源程序,编译运行,观察比较30-3FH单元中的内容和片外1030H-103FH中的内容。
4、添加将30H、31H单元中的十六进制数,转换成ASCII码,存放到40H开始的4个单元中的源程序,编译运行,观察结果。
5、添加求内部RAM 30H—37H单元中8个无符号数的算术和的源程序,8个无符号数设定为25H,36H,4AH,65H,7FH,82H,9BH,1DH,观察39H,38H中的数字是否分别为02H,C3H。
四、实验结果1.步骤1的结果为8000H-80FFH的内容都为1.2.步骤2的结果为3000H起始的256个字节存储块与4000H起始的256个字节存储块各单元内数据对应相同。
微机原理及应用-汇编语言上机实验报告

西南石油大学实验报告实验一一、实验目的熟悉汇编语言的上机过程,掌握各项工具软件的使用方法二、实验内容1.硬件:PC微机2.软件:DOS系统、EDIT.EXE、MASM.EXE、LINK.EXE、DEBUG.EXE三、实验过程1.前期准备:在开始进行汇编语言上机练习之前,建立并进入自己的工作子目录,准备好相关工具软件如MASM.EXE、LINK.EXE等,其后所有工作均在自己的子目录中进行,以避免因路径概念不清而导致的文件存取错误,以及对系统其它部分造成影响。
2.编写源程序:原则上可以用任何文字处理软件(如EDIT、写字板、甚至WORD)编写源程序,但必须注意,源程序应为ASCII码文件(或称纯文本文件),扩展名一般为.ASM。
因此,建议使用DOS环境下的EDIT软件。
3.汇编:利用MASM.EXE宏汇编程序,将已经存盘的ASCII码源程序翻译成二进制目标程序,其扩展名一般为.OBJ。
4.连接:利用LINK.EXE连接程序,将二进制目标程序整理成DOS系统下的可执行程序,其扩展名必须为.EXE。
5.运行:四、实验内容1、从键盘输入一个字符,进行大小写互换后显示。
源程序:结果:2、输入两个个位数字相加并显示结果。
代码:结果实验二一、实验目的:学习利用DEBUG调试程序的基本思想及方法二、实验环境:1.硬件:PC微机2.软件:DOS系统、EDIT.EXE、MASM.EXE、LINK.EXE、DEBUG.EXE三、实验内容与过程:利用DEBUG调试程序,可以将一个可执行程序(如.EXE、.COM等)装入内存中,并接管对程序运行的控制权,通过采取如反汇编、断点运行、单步执行、寄存器内容修改等方法,对可执行程序进行跟踪、调试,以找出其中的设计错误,然后再对源程序进行相应修改,重新生成正确的可执行程序。
1.准备被调试程序:假定所有有关文件均在当前路径C:\MYTEST>下,按照实验一的步骤生成一个被调试的可执行程序(如TEST.EXE)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实 验 报 告课 程 名 称实 验 名 称实 验 日 期学 生 专 业学 生 学 号学 生 姓 名教 师 姓 名成 绩南京理工大学机械工程学院微机原理及应用 实验1 DEBUG 操作实验 实验2 汇编程序设计实验 实验3 8253定时/计数器实验 实验4 8255 并行接口实验 年 月 日 至 年 月 日实验一DEBUG命令及其操作一、实验目的1.熟练掌握debug的常用命令,学会用debug来调试程序。
2.深入了解数据在存储器中的存取方法及堆栈中数据的压入与弹出。
3.掌握各种寻址方法以及简单指令的执行过程。
二、实验要求1.实验前要作好充分准备,包括汇编程序清单、调试步骤、调试方法以及对程序结果的分析等。
2.本实验要求在PC机上进行。
3.本实验只要求在DEBUG调试状态下进行,包括汇编程序,调试程序,执行程序。
三、实验内容●实验内容1:学习用DEBUG调试工具进行源程序的输入、汇编、调试和执行。
实验报告要求:1.写出运行结果;2.小结debug常用命令及使用体会答:1.原文已给出(略)2.a 汇编d显示内存单元内容e修改单元内存内容g执行命令t单步(或多步)调试n指定文件路径文件名(含扩展名)u反汇编r查看寄存器值及修改l加载程序w写盘命令体会:提升学习热情和动手能力有助于理解代码执行过程●实验内容2设AX=3000H,BX=5000H,请编一程序段将AX的内容和BX的内容进行交换。
请用堆栈作为两寄存器交换内容的中间存储单元,用DEBUG调试程序进行汇编与调试。
实验报告要求:1.写出完成上述功能的程序段;2.单步执行,并记录寄存器AX, BX及堆栈指针SP的值答:A100Mov ax,3000 ;ax:3000 bx:0000 sp:ffeeMov bx,5000 ;ax:3000 bx:5000 sp:ffeePush ax ;ax:3000 bx:5000 sp:ffecMov ax,bx ;ax:5000 bx:5000 sp:ffecPop bx ;ax:5000 bx:3000 sp:ffeeInt 20●实验内容3设DS=当前段地址,BX=0300H,SI=0002H,请用DEBUG的命令将存储器偏移地址300H~304H连续单元装入0AH,0BH,0CH,0DH,0EH。
在DEBUG状态下送入下面的程序,并用单步执行的方法,分析每条指令源地址的形成过程?当数据传送完毕时,AX中的内容是什么?实验报告要求:1.写出源操作数的寻址方式;2.单步执行,并记录相关寄存器及存储单元的值A100 ;给各内存单元赋值Mov di,0300Mov dx,0aMov cx,51oop1:mov[di],dxInc diInc dx1oop loop1程序清单如下:寻址方式和AX的内容MOV BX,0300 立即寻址MOV SI,0002 立即寻址MOV AX,BX 寄存器寻址AX: 0300MOV AX,0304H 立即寻址AX:0304MOV AX,[0304H] 存储器直接寻址AX:ds:0304 内存单元的内容0EHMOV AX,[BX] 寄存器间接寻址AX:ds:0300 内存单元的内容0AHMOV AX,0001[BX] 基址相对寻址AX:ds:0301 内存单元的内容0BHMOV AX,[BX][SI] 基址变址寻址AX:ds:0302 内存单元的内容0CHMOV AX,0001[BX][SI] 基址变址寻址AX:ds:0303内存单元的内容0DH●实验内容4设AX=0002H,编写程序将AX的内容乘10,要求用移位的方法完成。
写出实现上实验报告要求:1.述功能的程序段;2.单步执行程序,记录每条指令的机器码及相关寄存器的内容注意:左移指令用SHL,而不能使用SALA100Mov ax,2 机器码:b80200 ax:0002 dx:0000 cl:00Mov dx,0 机器码:ba0000 ax:0002 dx:0000 cl:00Shl ax,1 机器码:d1e0 ax:0004 dx:0000 cl:00Mov dx,ax 机器码:01d0 ax:0004 dx:0004 cl:00Mov cl,2 机器码:b102 ax:0004 dx:0004 cl:02Shl ax,cl 机器码:d3e0 ax:0010 dx:0004 cl:02Add ax,dx 机器码:01d0 ax:0014 dx:0004 cl:02Int 20 机器码:cd20 ax:0014 dx:0004 cl:02实验二简单程序的编写及汇编连接一、实验目的1.熟练掌握编写汇编语言源程序的基本方法和基本框架。
2.学会编写顺序结构、分支结构和循环结构的汇编程序,掌握宏定义与宏调用的方法。
3.掌握程序中数据的产生与数输出的方法。
4.熟悉建立源文件,进行汇编和连接的全过程,并对程序进行调试。
二、实验要求1.实验前准备①分析题目,将程序中的原始数据、中间结果和最终结果的存取方式确定好。
②写出算法或画出流程图。
③写出源程序。
④对程序中的结果进行分析,并准备好上机调试的过程。
2.本实验要求在PC机上进行。
3.汇编过程中出现问题,可用DEBUG进行调试。
三、实验内容1.实验内容1①编辑源程序(参考程序见下),建立.ASM文件;②用MASM程序汇编,生成.OBJ文件;查看.LST文件的内容③用LINK程序链接,生成.EXE文件;④使用DEBUG命令将.EXE文件调进内存,执行后查看程序运行结果;⑤使用DEBUG命令,检查各段在内存当中分配情况。
参考程序:; exercize21data segmentorg 0200hbuffer dw 0, 1, -5, 10, 256, -128, -100, 45, 6, 3,dw -15,-67, 39, 4, 20, -1668, -32766, 32765, -525,dw 300count equ ($-buffer)/2max dw ?data endsstack segment stack 'stack'db 100 dup ('s')stack endscode segment para 'code'assume cs:code, ds:data, ss:stacksta proc farpush dsxor ax, axpush axmov ax, datamov ds, axlea si, buffermov cx, countdec cxmov ax, [si]chkmax: add si, 2cmp [si], axjle nextmov ax, [si]next: loop chkmaxmov max, axretsta endpcode endsend sta实验报告要求:1.小结汇编语言源程序的编译及连接过程;2.记录数据段在程序执行前后的内容3.写出程序调试中出现的问题及解决方法;答:1.把待汇编的程序放在存放汇编、链接程序的文件夹里打开汇编程序输入待汇编的程序名字,以默认配置生成obj文件,再打开链接程序输入待链接的程序名字以默认配置生成exe文件2.执行前后buff数据数据块不变max执行前数据为0000H执行后为7ffdH3.很顺利作业:编程并且在计算机上调试。
①用汇编语言编写一个加法程序:1234+5678请用ASCII码的形式将加数与被加数存放在数据区DA TA1和DATA2中,并将相加的结果显示输出。
②假设有一组数据:5,-4,0,3,100,-51,……,请编一程序,判断每个数是否大于0,等于0,还是小于0,并输出判断结果。
即:1 当x>0y = 0 当x=0-1 当x<0①sstack segmentdw 32 dup(?)sstack endsdata segmentdata1 db ‘1234'data2 db ‘5678’data3 db 4 dup(?)data endscode segmentassume cs:code,ss:sstack,ds:data sta:push dsxor ax,axpush axmov ax,datamov ds,axlea si,data1lea di,data2lea bx,data3mov al,[si+3]mov ah,[di+3]and al,0fhand ah,0fhadd al,ahor al,30hmov [bx+3],almov al,[si+2]mov ah,[di+2]and al,0fhand ah,0fhadc al,ahor al,30hmov [bx+2],almov al,[si+1]mov ah,[di+1]and al,0fhand ah,0fhadc al,ahor al,30hmov [bx+1],almov al,[si]mov ah,[di]and al,0fhand ah,0fhadc al,ahor al,30hmov [bx],almov cx,4mov ah,2ha1:mov dl,[bx]int 21hinc bxloop a1retcode endsend sta②sstack segment stack 'stack'dw 32 dup(?)sstack endsdata segmentbuff db 12,-23,5,-4,0,3,100,-51,3,-45,9,2 data endscount equ $-buffcode segmentassume ss:sstack,ds:data,cs:codestart prog farpush dsxor ax,axpush axmov ax,datamov ds,axlea bx,bufflea si,countmov cx,[si]loop1:mov al,[bx]cmp al,0jz aa1and al,80hjz aa2mov ah,2mov dl,2dhint 21haa: inc bxloop loop1jmp ovaa1:mov ah,2mov dl,30hint 21hjmp aaaa2:mov ah,2mov dl,31hint 21hjmp aaov:retstart endpcode endsend start实验三8254定时/计数器应用实验一、实验目的1、掌握8254的工作方式及应用编程;2、掌握8254典型应用电路的接法。
二、实验设备PC机一台,TD-PIE实验装置一套,示波器一台。
三、实验内容1、计数应用实验。
编写程序,应用8254的计数功能,使用单次脉冲模拟计数,使每当按动‘KK1 +’5次后,产生一次计数中断,并在屏幕上显示一个字符‘M’。