汇编程序及接口技术实验报告

合集下载

汇编语言与接口技术实验报告

汇编语言与接口技术实验报告

汇编语言与接口技术实验报告学院:信息与电子工程学院专业:班级:学号:姓名:浙江科技学院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位有符号数,采用冒泡法将其按升序排序。

三、实验要求1. 根据实验内容编写程序。

2. 上机调试程序。

3. 记录并分析程序运行结果。

五、程序代码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,0loop2: mov al,block[bx]cmp al,block[bx+1]jna continuexchg al,block[bx+1]mov block[bx],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,0loop2: mov al,block[bx]cmp al,block[bx+1]jle continuexchg al,block[bx+1]mov block[bx],alcontinue: add bx,1loop loop2mov cx,dxloop loop1.exitend六、程序运行结果及分析在命令行debug,反汇编找到初始程序入口0017查看cup寄存器的内容实验2 系统中断接口实验一、实验目的1. 熟悉可编程中断控制器8259A的使用方法。

汇编语言程序设计实验报告

汇编语言程序设计实验报告

汇编语言程序设计实验报告汇编语言程序设计实验报告引言:汇编语言是计算机中最基本的语言,通常用于处理硬件相关问题。

在这个实验中,我们学习了汇编语言的基础知识和编程技巧,并实践了用汇编语言编写程序的方法和技巧。

以下是我们的实验报告。

正文:1. 实验环境我们使用的实验环境是Intel 8086微处理器与高级汇编语言。

微处理器使用的是PCB-512主板,而高级汇编语言是MASM。

2. 实验目的我们的实验目的主要是学习汇编语言的基础知识和编程技巧,包括了汇编语言的寄存器、指令、内存管理等方面的知识。

我们的另一个目的是掌握汇编语言的常用编程技巧,能够独立完成一些简单的汇编程序。

3. 实验内容我们的实验内容主要包括以下几点:(1)学习汇编语言的基础知识,包括寄存器、指令、内存管理等方面的知识。

(2)掌握汇编语言的常用编程技巧,包括数据输入输出、运算、跳转等基本操作。

(3)实践用汇编语言编写程序,如计算器、菜单等实用程序。

(4)了解8086微处理器的结构和原理。

4. 实验过程在这个实验过程中,我们完成了以下几个程序:(1)计算器计算器是一个简单的程序,主要用于实现两个数之间的加、减、乘、除等基本运算。

我们通过输入输出指令、存储指令等指令实现了这个程序的功能。

(2)菜单菜单是一个实用程序,主要用于展示一个简单的菜单并实现用户选择相关功能的功能。

我们使用了汇编语言中的跳转指令、输入输出指令等实现了这个程序。

5. 实验结果在我们的实验中,我们成功完成了上述两个程序。

我们通过输入输出指令、存储指令等指令实现了这个程序的功能。

6. 实验总结在这个实验过程中,我们学习汇编语言的基础知识和编程技巧,并实践了用汇编语言编写程序的方法和技巧。

我们通过编写计算器和菜单等简单实用程序,加深了对汇编语言的理解和认识。

我们认为这个实验对我们今后的学习和工作都有很大的帮助。

结论:通过这个实验,我们学习了汇编语言的基础知识和编程技巧,并实践了用汇编语言编写程序的方法和技巧。

汇编实验报告七

汇编实验报告七

计算机组成与汇编语言实验报告
通过结果说明程序运行结果正确。

2.调试程序2的运行结果如下。

说明程序实现的功能是查找0第一次出现的位置。

通过结果说明程序运行结果正确。

1.编写程序1运行结果如下。

4.编写程序2运行结果如下。

5.编写程序3运行结果如下。

实验情况与体会:通过本次上机实验,学习了数值转换。

实验过程中,遇到很多问题,比如程序一的编写,基本上都是学习书本以及依靠书本多做题才编出来的,仅有的几次上机实验,要抓紧时间学习和交流,时间挺少的。

在今后的学习和生活中,我们都需要相互学习、相互交流,共同进步。

学习是一个循序渐进的过程。

通过这次实验,使我了解到运行调试程序的不易,今后一定更加努力,把程序做到最好!对于不足之处,会积极改正。

汇编程序及接口技术实验报告

汇编程序及接口技术实验报告

汇编程序及接口技术实验报告
一、实验目的
本实验的主要目的是了解汇编语言程序的编写和调试方法,并掌握接口技术的应用。

二、实验内容
1.编写一个求给定数的阶乘的汇编程序。

2.利用串口实现汇编程序的输入输出。

三、实验步骤
1.阅读8086汇编语言的使用手册,了解汇编语言的基本语法和指令集。

2.编写一个求阶乘的汇编程序。

程序的基本思路是利用循环和累加的方法来实现阶乘的计算。

3.编写串口输入输出的汇编程序。

使用串口的输入输出功能,实现程序与外部设备的交互。

4.将阶乘程序与串口输入输出程序进行整合,测试程序的功能是否正常。

五、实验结果与分析
经过调试和测试,本实验成功实现了求阶乘的功能,并能通过串口与外部设备进行交互。

实验结果与预期一致。

六、实验总结
通过本次实验,我对汇编语言的编写和调试方法有了更深的了解。

同时,我们也学会了如何利用接口技术来实现程序与外部设备的交互。

这对我们以后的学习和工作都将有很大的帮助。

汇编语言实验报告_6

汇编语言实验报告_6

青岛理工大学课程实验报告
课程名称汇编语言程序设计班级实验日期
2013.11.3
姓名学号实验成绩
实验
名称
子程序
实验目的及要求1.掌握子程序设计相关指令和伪指令的使用方法
2.掌握子程序设计方法, 特别是参数传递方法
3.掌握主程序和子程序之间的调用关系和调用方法
4.熟悉循环和子程序结合应用解答问题的思路
实验环境1.命令行方式
2.MASM.EXE LINK.EXE DEBUG.EXE
实验内容1.设DATA1开始的内存单元中, 存放着一串带符号字数据, 要求采用冒泡排序算法(Bubble Sort)按照从小到大的顺序排序并将排好序的数据存在DATA1开始的单元。

然后在显示器输出排好序的数据, 中间用’,’隔开。

2.输出数据使用子程序方式。

算法描述及实验步骤步骤:
(1)设置数据段地址
(2)设置堆栈段地址
(3)设置堆栈指针
(4)调用9号功能, 输出一个提示性字符串。

(5)循环进入子程序, 输出原始数据。

(6)在子程序内循环输出每一位的十进制数字。

(7)主程序进行内外循环, 进行冒泡排序。

(8)再一次调用子程序输出排序后的结果。

调试过程及实验结果调试过程:
(2)(1)在输出时, 调用DOS 9号功能, 并不是只要语句MOV AH,09H
(3)它是存在入口条件的, 入口条件:DS:DX=输出字符缓冲区首地址。

所以前面必须加上MOV DX,OFFSET NOTE1。

(4)汇编语言是不会再输出汉字的。

(5)子程序结束时一定要有RET
(6)冒泡排序也遇到一些困难。

调试结果:。

汇编实验报告

汇编实验报告

汇编语言实验报告学院:计算机学院专业:网络工程指导老师:纪平实验一汇编语言程序调试方法一、实验目的,1,熟悉汇编语言运行环境和方法2,了解如何使用汇编语言编制程序3,熟悉debug有关命令的使用方法4,利用debug掌握有关指令的功能5,利用debug运行简单的程序段二、实验内容1,学会输入、编辑汇编语言程序2,学会对汇编语言程序进行汇编、连接和运行3,进入和退出debug程序4,学会debug中的D命令、E命令、R命令、T命令、A命令、G命令等的使用。

对于U命令、N命令、W命令等,也应试一下。

三、实验准备1,仔细阅读有关汇编语言环境的内容,事先准备好使用的例子。

2,准备好程序清单、设计好调试步骤、测试方法、对运行结果的分析3,编写一个程序:比较2个字符串所含的字符是否相同。

若相同则显示’Match.’,否则显示’No match!’。

4,仔细阅读有关debug命令的内容,对有关命令,都要事先准备好使用的例子。

四、实验步骤1,在DOS提示符下,进入masm目录。

2,在MASM目录下启动edit编辑程序,输入源程序,并对其进行汇编、连接和运行。

(1)调用edit输入、编辑源程序并保存在指定的目录中。

例:edit abc.asm(2)用汇编程序masm对源程序汇编产生目标文件obj。

例:masm abc(3)用连接程序link产生执行文件exe。

例:link abc(4)执行程序3,详细记录每一步所用的命令,以及查看结果的方法和具体结果。

五、实验结果1,输入sample.asm的源码;PROGRAM TITLE GOES HERE--Compare string;************************************************************************** **datarea segment ;define data segmentstring1 db 'Move the cursor backward.'string2 db 'Move the cursor backward.';mess1 db 'Match',13,10,'$'mess2 db 'No match!',13,10,'$'datarea ends;************************************************************************** **program segment ;define code segment;----------------------------------------------------------------------------main proc farassume cs:program,ds:datarea,es:datareastart: ;starting execution address;set up stack for returnpush ds ;save old data segmentsub ax,ax ;put zero in AXpush ax ;save it on stack;set DS register to current data segmentmov ax,datarea ;datarea segment addrmov ds,ax ;into DS registermov es,ax ;into ES register;MAIN PART OF PROGRAM GOES HERElea si,string1lea di,string2cldmov cx,25repz cmpsbjz matchlea dx,mess2jmp short dispmatch:lea dx,mess1disp:mov ah,09int 21hret ;return to DOSmain endp ;end of main part of program;--------------------------------------------------------------------program ends ;end of code segment;****************************************************************** **end start ;end assembly2,汇编生成目标文件3,连接生成exe文件4,执行程序5,调试程序-g命令在debug环境下运行该文件-d0(-d ds:ea)命令显示指定数据段地址中的内容-u命令显示汇编源程序-e ds:ea更改指定位置的内容实验二用DEBUG编程使用堆栈段AX和BX的内容进行交换等一、实验目的:1、熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。

汇编语言实验报告

汇编语言实验报告

汇编语言实验报告
1. 实验简介
本次实验是针对汇编语言的学习和实践,在实验中,我们将学习如何使用汇编语言编写程序、调试程序,并通过一系列实例来练习和巩固所学知识。

2. 实验目的
(这一部分可以根据实际情况来写,列举实验的具体目的和要求)
3. 实验环境及工具
(介绍实验所使用的软件环境和工具,如:编译器、调试器)
4. 实验步骤
(根据实验内容具体描述实验步骤,可以分为多个小节)
4.1 准备工作
在开始实验之前,需要进行一些准备工作,包括安装编译器、创建工作环境等。

4.2 实验一:简单的汇编程序
本实验通过编写一个简单的汇编程序来熟悉汇编语言的基本语法和指令集,包括数据传送、算术运算、逻辑运算等。

4.3 实验二:汇编程序的调试
在实验二中,我们将学习如何使用调试器对汇编程序进行调试,包括设置断点、查看变量值、单步执行等操作。

4.4 实验三:汇编程序的优化
本实验将通过优化代码来提高程序的执行效率,包括减少指令的使用、优化循环结构等。

5. 实验结果与分析
(对实验的结果进行总结和分析,可以包括程序的输出结果、性能分析等)
6. 实验总结
(针对本次实验的收获和心得体会进行总结,可以包括对汇编语言的理解、解决问题的思路等)
7. 实验感想
(对本次实验的感想和建议,如实验过程中遇到的困难、改进的方向等)
8. 参考文献
(列出本报告中所引用的参考文献)
注:该文章只是按照题目提示给出了一个大致的框架和构思,实际根据具体的实验内容和要求来编写每个小节的详细内容。

希望对你有所帮助!。

汇编实验报告(适合初学者)

汇编实验报告(适合初学者)

汇编实验报告(适合初学者)汇编语言程序设计一、实验目的与要求1.熟悉汇编语言运行、调试环境及方法。

2.掌握简单汇编语言程序的设计方法。

3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。

二、实验内容根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。

1.若X、Y、R、W是存放8位带符号数字节单元的地址,Z是16位字单元的地址。

试编写汇编程序,完成Z<-((W-X)/5-Y)某(R+2)①.程序算法流程图。

开始初始化AL=(W-X)AL=(W-X)/5CL=(W-X)/5-YAL=(R+2)Z=((W-X)/5-Y)某(R+2)结束②.源程序清单。

DATASEGMENTXDB1H;数据定义YDB0HRDB3HWDB6HZDW?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX;段寄存器定义MOVAL,WSUBAL,X;求(W-X)CBW;字节转换为字MOVCL,5IDIVCL;(W-X)/5MOVCL,ALMOVAL,Y;(W-X)/5-YSUBCL,ALMOVAL,RADDAL,2;(R+2)IMULCL;((W-X)/5-Y)某(R+2)MOV[Z],AXADDAL,30H;输出结果MOVDL,AL;MOVAH,2INT21HMOVAH,4CHINT21HCODEENDSENDSTART③.程序运行结果。

④.调试过程中遇到的问题和解决的方法。

还未能实现动态的输入数据,对指令的不熟悉,以至于在程序中经常性出错,得掌握固定的程序功能。

2.试编写一个程序,测试数是否是奇数。

如该数是奇数,则把DL的第0位置1,否则将该位置0。

①.程序算法流程图。

开始AL=XAL右移一位得CF否CF==1是DL与000000001B相或DL与11111110B相与结束②.源程序清单。

DATASEGMENTXDB9H;数据定义DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX;段寄存器定义MOVAL,XSHR AL,1;利用右移一位得到cf值,JB判断 JB NEXT;为1则为奇数ANDDL,11111110B;偶数DL第一个数置为0JMPEXITNEXT:ORDL,000000001B;奇数DL第一个数置为1EXIT:MOVAH,4CHINT21HCODEENDSENDSTART③.程序运行结果。

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

微机汇编程序及接口技术实验报告汇编程序实验:一、实验目的1、熟悉汇编程序调试过程2、掌握算术运算指令运用3、掌握分支程序的编程和调试方法二、实验设备80X86微型计算机三、实验内容1、编程并调试显示“Hello Word!”字符串的汇编程序TITLE HELLODA TA SEGMENTSTR DB'Hello World!$'DA TA ENDSCODE SEGMENTASSUME DS:DATA,CS:CODESTART:MOV AX,DATAMOV DS,AXMOV DX,OFFSET STRMOV AH,9HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START2、A、B、C、D、W是互不相等的在数据段中定义的16位有符号数,并假设加减运算不产生溢出。

编写一个完整段定义的汇编语言程序,计算W=(A+B)×(C—D)。

title asmprogram1_1DA TA SEGMENTA DW 1HB DW 3HC DW 4HD DW 2HW DW 2 DUP(?)DA TA ENDS;CODE SEGMENTASSUME DS:DATA,CS:CODESTART:MOV AX,DATAMOV DS,AXMOV AX,AADD AX,BMOV BX,CSUB BX,DIMUL BXMOV W,AXMOV W+2,DXMOV AH,4CHINT 21HCODE ENDSEND START3、设X、Y为在数据段中定义的有符号字变量。

编写一个完整段定义的汇编语言程序(包含必要的伪指令,给出必要的注释)完成以下操作:若0<X且Y<1000,则AX=2000,BX=0;否则AX=0,BX=2000。

STACKS SEGMENT STACK;DEFINE STACKDW 128 DUP(?)STACKS ENDSDA TAS SEGMENTX DW 11HY DW 22HDA TAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATASSTART:MOV AX,DATASMOV DS,AXSUB X,0JNG L1SUB Y,1000JAE L1JMP L2L1:MOV AX,2000MOV BX,0L2:MOV AX,0MOV BX,2000MOV AH,4CHINT 21HCODES ENDSEND START4DA TA SEGMENTBLOCK1 DW 1200H,2000H,3200H,0H,5612H,23H,45H,89H,09H,10H BLOCK2 DW 100 DUP(?)DA TA ENDSCODE SEGMENTASSUME CS:CODE, DS:DA TASTART:MOV AX,DATAMOV DS,AXLEA SI,BLOCK1LEA DI,BLOCK2MOV CX,100REPT:MOV AX,[SI]CMP AX,0JZ NEXTMOV [DI],AXADD DI,2NEXT:ADD SI,2LOOP REPTMOV AH,4CHINT 21HCODE ENDSEND START5DA TA SEGMENTBLOCK1 DW 1200H,2000H,3200H,0H,5612H,23H,45H,89H,09H,10H BLOCK2 DW 100 DUP(?)DA TA ENDSCODE SEGMENTASSUME CS:CODE, DS:DA TASTART:MOV AX,DATAMOV DS,AXLEA SI,BLOCK1LEA DI,BLOCK2MOV CX,100REPT:MOV AX,[SI]CMP AX,0JZ NEXTMOV [DI],AXADD DI,2NEXT:ADD SI,2LOOP REPTMOV AH,4CHINT 21HCODE ENDSEND START微机原理及接口技术实验:实验一 8255并行接口实验一、实验目的1、学习并掌握8255的工作方式及其应用。

2、掌握8255典型应用电路的接法。

3、掌握程序固化及脱机运行程序的方法。

二、实验设备Pc机一台,TD-PITE实验装置一套。

三、实验内容基本输入输出实验。

编写程序,使8255的A口为输入,B口为输出,完成波动开关到数据灯的数据传输。

要求只要开关拨动,数据灯的显示就发生相应改变。

流水灯显示实验。

编写程序,使8255的A口和B口均为输出,数据灯D7-D0由左向右,每次仅亮一个灯,循环显示,D15-D8与D7-D0正相反,由右向左,每次仅点亮一个灯,循环显示。

四、实验原理:并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。

CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位或32位等。

8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0--基本输入/输出方式、方式1--选通输入/输出方式、方式6--双向选通工作方式。

8255的内部结构及引脚如图7-1所示,8255工作方式控制字和C口按位置位/复位控制字格式如图7-2所示。

图7-1 8255的内部结构和外部引脚(a)工作方式控制字(b)c口按位置位/复位控制字图7-2 8255控制字格式8255实验单元电路图如下图所示:图7-3 8255实验单元电路图实验步骤1. 基本输入输出实验本实验使8255端口A工作在方式0并作为输入口,端口B工作在方式0并作为输出口。

用一组开关信号接入端口A,端口B输出线接至一组数据灯上,然后通过对8255芯片编程来实现输入输出功能。

实验步骤:(1)实验接线图如图7-4所示,按图连接实验线路图;图7-4 8255基本输入/输出实验接线图(2)编写实验程序,经编译、连接无误后装入系统;实验源程序:;=========================================================; 文件名: A82551.ASM; 功能描述: A口为输入,B口为输出,将读入的数据输出显示; IOY1;=========================================================SSTACK SEGMENT STACKDW 32 DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODE, SS:SSTACKSTART: MOV DX, 0646HMOV AL, 90HOUT DX, ALAA1: MOV DX, 0640HIN AL, DXCALL DELAYMOV DX, 0642HOUT DX, ALJMP AA1DELAY: PUSH CXMOV CX, 0F00HAA2: PUSH AXPOP AXLOOP AA2POP CXRETCODE ENDSEND START(3)运行程序,改变拨动开关,同时观察LED显示,验证程序功能。

(4)点击“调试”下拉菜单中的“固定程序”项,将程序固化到系统存储器中。

实验总结:拨动开关K0-K7,数据灯D0-D7就依次点亮。

2. 流水灯显示实验使8255的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。

实验接线图如图7-5所示。

图7-5 8255流水灯实验接线图实验步骤:(1)按图7-5连接实验线路图;(2)编写实验程序,经编译、链接无误后装入系统;;=========================================================; 文件名: A82552.ASM; 功能描述: A口为输出,B口为输出,流水灯显示;=========================================================SSTACK SEGMENT STACKDW 32 DUP(?) SSTACK ENDSCODE SEGMENTASSUME CS:CODE START: MOV DX, 0646HMOV AL, 80HOUT DX, ALMOV BX, 8001H AA1: MOV DX, 0640HMOV AL, BHOUT DX, ALROR BH, 1MOV DX, 0642HMOV AL, BLOUT DX, ALROL BL, 1CALL DELAYCALL DELAYJMP AA1DELAY: PUSH CXMOV CX, 0F000HAA2: PUSH AXPOP AXLOOP AA2POP CXRETCODE ENDSEND START(3)运行程序,观察LED灯的显示,验证程序功能;(4)自己改变流水灯的方式,编写程序。

实验总结:数据灯D7-D0由左向右,每次仅亮一个灯,循环显示,D15-D8与D7-D0正相反,由右向左,每次仅点亮一个灯,循环显示。

实验二 8254计数/定时器实验一、实验目的1、掌握8254的工作方式及应用编程。

2、掌握8254典型应用电路的接法。

二、实验设备PC机一台,TD-PITE实验装置一套。

三、实验内容计数应用实验。

编写程序,应用8254的计数功能,使用单次脉冲模拟计数,使每当按“KK1+”5次后,产生一次计数中断,并在屏幕上显示一个字符“M”.实验原理:8254是Intel公司生产的可编程间隔定时器。

是8253的改进型,比8253具有更优良的性能。

8254具有以下基本功能:(1)有3个独立的16位计数器;(2)每个计数器可按二进制或十进制(BCD)计数;(3)每个计数器可编程工作于6种不同工作方式;(4)8254每个计数器允许的最高计数频率为10MHz(8253为2MHz);(5)8254有读回命令(8253没有),除了可以读出当前计数单元的内容外,还可以读出状态寄存器的内容;(6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。

计数初值公式为:其中是输入时钟脉冲的频率,是输出波形的频率。

图6-1是8254的内部结构框图和引脚图,它是由与CPU的接口、内部控制电路和三个计数器组成。

8254的工作方式如下述:(1)方式0:计数到0结束输出正跃变信号方式。

(2)方式1:硬件可重触发单稳方式。

(3)方式2:频率发生器方式。

(4)方式3:方波发生器。

(5)方式4:软件触发选通方式。

(6)方式5:硬件触发选通方式。

图6-1 8254的内部接口和引脚8254的控制字有两个:一个用来设置计数器的工作方式,称为方式控制字;另一个用来设置读回命令,称为读回控制字。

相关文档
最新文档