实验二_指令系统相关程序的编写与调试实验
PLC实验报告 基础指令实验
PLC实验报告基础指令实验一、实验目的本次 PLC 基础指令实验的主要目的是熟悉 PLC 的基本指令,掌握其编程方法和应用技巧,通过实际操作加深对 PLC 控制系统的理解,并提高解决实际问题的能力。
二、实验设备1、 PLC 实验台,型号为_____。
2、编程软件,版本为_____。
3、连接导线若干。
4、实验指导书。
三、实验内容(一)位逻辑指令实验1、常开触点和常闭触点指令编写一个简单的程序,实现当输入信号 I00 为 ON 时,输出信号Q00 为 ON。
当输入信号 I01 为 OFF 时,输出信号 Q01 为 ON。
2、取反指令设计一个程序,使得输入信号 I02 为 ON 时,经过取反指令,输出信号 Q02 为 OFF;输入信号 I02 为 OFF 时,输出信号 Q02 为 ON。
3、置位和复位指令编写程序,当输入信号 I03 产生一个上升沿时,使用置位指令将输出信号 Q03 置位为 ON,并保持。
当输入信号 I04 产生一个上升沿时,使用复位指令将输出信号 Q03 复位为 OFF。
(二)定时器指令实验1、接通延时定时器构建一个程序,当输入信号 I05 为 ON 时,接通延时定时器 TON 开始计时,设定时间为 5 秒。
5 秒后,输出信号 Q04 为 ON。
2、断开延时定时器设计程序,当输入信号 I06 由 ON 变为 OFF 时,断开延时定时器TOF 开始计时,设定时间为 3 秒。
3 秒内,如果输入信号 I06 重新变为ON,则定时器复位。
3 秒后,输出信号 Q05 为 OFF。
(三)计数器指令实验1、增计数器编写程序,当输入信号 I07 产生一个上升沿时,增计数器 CTU 的计数值加 1。
当计数值达到预设值 10 时,输出信号 Q06 为 ON。
2、减计数器构建一个程序,当输入信号 I10 产生一个上升沿时,减计数器 CTD 的计数值减 1。
当计数值减为 0 时,输出信号 Q07 为 ON。
实验二 汇编语言程序调试
实验二汇编语言程序设计与调试一、实验目的及要求本次实验的目的是通过阅读三段存在有不同错误的程序后,进行修改、调试、执行。
以达到提高阅读理解汇编语言程序和调试程序的目的,以便为设计程序打下基础。
要求独立完成。
二、实验设备Dais单片机仿真实验仪一台,计算机一台,导线若干条。
三、实验内容1、外部数据区数据传送程序:把R2、R3源RAM区首址内R6、R7字节数据传送到R4、R5目的RAM区。
先在R2、R3中输入源首址(例如0000H),R4、R5中输入目的地址(例如2000H),R6、R7中输入字节数(例如FFH)。
执行程序后检查0000H~00FFH中的内容是否和2000H~20FFH内容完全一致。
本段程序中有几处错误,先查出修正之后再编译、执行。
源程序清单如下:== 外部数据区数据传送子程序==ORG 07B0HMOV R2,00HMOV R3,#00HMOV R4,#10HMOV R5,#00HMOV R6,#00HMOV R7,#08HSE22: MOV DPL,R3MOV DPH,R2 ;建立源程序首址MOVX A,@DPTR ;取数MOV DPL,R5MOV DPH,R4 ;目的地首址MOVX @DPTR,A ;传送CJNE R3,#0F0H,LO42INC R2LO42: INC R3 ;源地址加1CJNE R5,#0FFH,LO43INC R4LO43: INC R5 ;目地址加1CJNE R7,#00H,LO44CJNE R6,#00H,LO45 ;字节数减1SJMP $NOPLO44: DEC R7SJMP SE22LO45: DEC R7DEC R6SJMP SE22 ;未完继续END2、片内(CPU内部存储器)、外数据区传送程序将片内RAM 40H~4AH单元分别置数为A0~AA(由程序自动置数),然后将40H~4AH单元的内容分别传送到外部RAM3000H~300AH;再将外部RAM3000H~300AH单元内的数分别送到片内RAM50H~5AH 单元。
实验二用机器指令和汇编指令编程实验总结
实验二用机器指令和汇编指令编程实验总结下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!实验二用机器指令和汇编指令编程实验总结1. 引言在本实验中,我们学习了使用机器指令和汇编指令编程的基本概念和技能。
可编程控制器的基本指令编程实验报告
可编程控制器的基本指令编程实验报告1. 引言本实验旨在研究可编程控制器的基本指令编程。
可编程控制器(Programmable Logic Controller,简称PLC)是一种专用计算机,常用于工业自动化领域。
通过编程,PLC可以根据输入信号的状态来判断并控制输出信号的状态,实现自动化控制。
2. 可编程控制器的基本指令可编程控制器的基本指令可以分为输入输出指令、变量指令和逻辑指令三大类。
2.1 输入输出指令输入输出指令用于读取输入信号和控制输出信号。
常见的输入输出指令包括:•XIC(eXamine If Closed)指令:用于检测输入信号是否为闭合状态,如果闭合则执行后续程序。
•XIO(eXamine If Open)指令:用于检测输入信号是否为开启状态,如果开启则执行后续程序。
•OTE(Output To External)指令:用于将输出信号设置为高电平或低电平状态,控制外部设备的运行。
2.2 变量指令变量指令用于对变量进行操作,包括赋值、比较、运算等。
常见的变量指令包括:•MOV(Move)指令:用于将一个值赋给一个变量。
•ADD(Addition)指令:用于对两个变量进行加法运算,并将结果保存到一个变量中。
•CMP(Compare)指令:用于对两个变量进行比较,判断它们的大小关系。
•INC(Increment)指令:用于对一个变量进行加1操作。
2.3 逻辑指令逻辑指令用于进行逻辑判断和控制流程。
常见的逻辑指令包括:•LIM(Less Than Immediate)指令:判断一个变量是否小于一个立即数,如果是则执行后续程序。
•JZ(Jump if Zero)指令:如果指定的变量为0,则跳转到指定的标签处继续执行程序。
•CTU(Counter Up)指令:用于实现计数功能,当一个变量达到设定值时,产生一个输出脉冲。
3. 实验过程本实验通过编程软件对一个简单的控制任务进行了模拟。
实验包括以下步骤:3.1 硬件准备搭建实验所需的硬件系统,包括输入设备、输出设备以及可编程控制器。
计算机组成原理实验报告
计算机组成原理实验报告实验目的,通过本次实验,深入了解计算机组成原理的相关知识,掌握计算机硬件的基本组成和工作原理。
实验一,逻辑门电路实验。
在本次实验中,我们学习了逻辑门电路的基本原理和实现方法。
逻辑门电路是计算机中最基本的组成部分,通过逻辑门电路可以实现各种逻辑运算,如与门、或门、非门等。
在实验中,我们通过搭建逻辑门电路并进行实际操作,深入理解了逻辑门的工作原理和逻辑运算的实现过程。
实验二,寄存器和计数器实验。
在本次实验中,我们学习了寄存器和计数器的原理和应用。
寄存器是计算机中用于存储数据的重要部件,而计数器则用于实现计数功能。
通过实验操作,我们深入了解了寄存器和计数器的内部结构和工作原理,掌握了它们在计算机中的应用方法。
实验三,存储器实验。
在实验三中,我们学习了存储器的原理和分类,了解了不同类型的存储器在计算机中的作用和应用。
通过实验操作,我们进一步加深了对存储器的认识,掌握了存储器的读写操作和数据传输原理。
实验四,指令系统实验。
在本次实验中,我们学习了计算机的指令系统,了解了指令的格式和执行过程。
通过实验操作,我们掌握了指令的编写和执行方法,加深了对指令系统的理解和应用。
实验五,CPU实验。
在实验五中,我们深入了解了计算机的中央处理器(CPU)的工作原理和结构。
通过实验操作,我们学习了CPU的各个部件的功能和相互之间的协作关系,掌握了CPU的工作过程和运行原理。
实验六,总线实验。
在本次实验中,我们学习了计算机的总线结构和工作原理。
通过实验操作,我们了解了总线的分类和各种总线的功能,掌握了总线的数据传输方式和时序控制方法。
结论:通过本次实验,我们深入了解了计算机组成原理的相关知识,掌握了计算机硬件的基本组成和工作原理。
通过实验操作,我们加深了对逻辑门电路、寄存器、计数器、存储器、指令系统、CPU和总线的理解,为进一步学习和研究计算机组成原理奠定了坚实的基础。
希望通过不断的实践和学习,能够更深入地理解和应用计算机组成原理的知识。
可编程控制器的基本指令编程实验报告
可编程控制器的基本指令编程实验报告一、实验目的本实验旨在让学生掌握可编程控制器(PLC)的基本指令编程方法,了解PLC的工作原理和应用场景。
二、实验设备1. 可编程控制器(PLC)2. 电源模块3. 输入模块4. 输出模块5. 交流电机6. 传感器等相关设备三、实验内容1. PLC的基本指令介绍可编程控制器是一种数字计算机,它能够根据预设程序对输入信号进行处理,并通过输出信号来控制执行器。
PLC的指令集包括逻辑指令、定时器指令、计数器指令等。
其中,逻辑指令主要用于对输入信号进行逻辑运算,如与门、或门、非门等;定时器指令用于时间延迟操作;计数器指令用于对输入信号进行计数操作。
2. PLC的基本编程方法介绍PLC的基本编程方法包括Ladder图和SFC图两种。
Ladder图是一种类似于电路图的形式,可以直观地表示程序执行过程;SFC图则是一种状态转移图,它能够更好地表示程序执行顺序和流程。
3. 实验步骤及结果分析(1)利用Ladder图编写一个简单的PLC程序,实现交流电机的正反转控制。
首先,将电源模块和输入模块连接到PLC上,然后将输出模块和交流电机连接。
接下来,在Ladder图中添加逻辑指令和输出指令,实现对交流电机的正反转控制。
最后,通过输入模块来控制程序执行。
实验结果:成功实现了交流电机的正反转控制。
(2)利用SFC图编写一个简单的PLC程序,实现传感器检测并控制输出信号。
首先,将传感器连接到PLC上,并在SFC图中添加相应的状态和转移条件。
接下来,在SFC图中添加输出指令,实现对输出信号的控制。
最后,通过输入信号来触发程序执行。
实验结果:成功实现了对传感器检测并控制输出信号。
四、总结本次实验让我初步了解了可编程控制器的基本指令编程方法,并通过实验验证了其在工业自动化领域中的重要性。
同时,在实验过程中也学习到了如何运用逻辑指令、定时器指令、计数器指令等来完成各种功能需求。
这些知识将对我的未来学习和工作产生积极的影响。
嵌入式实验报告
实验一 ARM汇编语言程序设计一、实验目的1.了解IAR Embedded Workbench 集成开发环境2.掌握ARM汇编指令程序的设计及调试二、实验设备1.PC操作系统WIN98或WIN2000或WINXP,ADSI.2集成开发环境,仿真驱动程序三、实验内容1.熟悉IAR Embedded Workbench 集成开发环境2.理解下列程序,新建工程,加入下面的程序,并观察实验结果,解释程序实现的功能分析:该程序实现的功能是程序功能:Y = A*B+C*D+E*F程序代码:AREA Examl, CODE,READONLY ;定义一个代码段ENTRY ;程序入口MOV R0,#0;设置R0寄存器的值为0MOV R8,#0;设置R8寄存器的值为0ADR R2,N;将R2寄存器的值设为数据域N的地址LDR R1,[R2];将以R2的值为地址的数据读入R1MOV R2,#0;设置R2的值为0ADR R3,C; 将R3寄存器的值设为数据域C的地址ADR R5,X; 将R5寄存器的值设为数据域X的地址LOOPLDR R4,[R3,R8];将R3+R8的数据读入R4LDR R6,[R5,R8];将R5+R8的数据读入R6MUL R9,R4,R6;R9 = R4*R6ADD R2,R2,R9;R2 = R2+R9ADD R8,R8,#4;R8 = R8+4ADD R0,R0,#1;R0 = R0+1CMP R0,R1;比较R0和R1的值BLT LOOP;R0<R1的话执行循环N DCD 0X03;C DCD 0X01,0X02,0X03,0X04,0X05,0X06;X DCD 0X01,0X02,0X03,0X04,0X05,0X06;END程序结果:各个寄存器的结果执行结果如下:3.实现1+2+3+4+····+100,求的值,并保存在地址0x90018的地址里面程序代码:MOV R0,#100;设置R0寄存器的值为100LDR R2,=0X90018;设置R2寄存器指向地址0x90018MOV R1,#0;设置R1的值为0MOV R3,#0;设置R3的值为0LOOPADD R3,R3,R0;R3 = R3+R0SUB R0,R0,#1;R0 = R0-1CMP R0,R1;将R0和R1的值比较BNE LOOP;不相等的话继续执行循环STR R3,[R2];将R3的值装入到R2指向的地址块中。
2010汇编语言上机实验二
;多字节BCD码乘2子程序 MULTI PROC LEA DI,BCDBUF+5 ;从低位开始 MOV CL,5 CLC MUL1: MOV AL,[DI] ;取BCD码 ADC AL,AL ;乘2 AAA ;十进制数运算校正 MOV [DI],AL ;存BCD码 DEC DI DEC CL JNE MUL1 RET MULTI ENDP COSEG ENDS END HEXBCD
汇编语言上机实验(二) 4学时
国家级计算机实验示范中心
实验二 数制、码制和子程序的编程与调试
一.实验目的: 实验目的: 1. 熟练掌握编写汇编语言原程序的基本方法和基本框架。 2. 熟练使用DEBUG调试程序。 3. 掌握十六进制数与ASCII码之间,ASCII码与BCD码之间的转换。 4. 掌握用DOS功能调用,实现字符的输入和显示。 5. 掌握子程序的编程与调试方法。 二.实验内容: 实验内容: 1、从键盘输入两个2位十进制正数转换成二进制数后,对这两个数进行相加相乘 运算,结果以十六进制数形式显示在屏幕上。 2、从键盘输入两个2位十进制正数转换成组合BCD码后,对这两个数进行相加 相乘运算,结果以十进制形式显示在屏幕上。 3、从键盘输入一个4位十进制正数并回显后,将其对应的十六进制数显示在屏幕 上。
实验要求一参考程序:
TITLE CONVERT HEXADECIMAL TO BCD DATA SEGMENT PROMPT DB "INPUT HEXADECIMAL(4DIGITS):$' HEXBUF DB 5,0,5 DUP(0) DISP DB 0AH,0DH BCDBUF DB 6 DUP(0),'$' DATA ENDS STACK1 SEGMENT PARA STACK DW 20H DUP(0) STACK1 ENDS COSEG SEGMENT ASSUME CS:COSEG,DS:DATA,SS:STACK1 HEXBCD: MOV AX,DATA MOV DS,AX
PLC原理与应用实验指导书
PLC原理与应用实验指导书课程性质:实验编写人:张国胜责任教授:武洪涛审定人:徐爱钧目录实验一PLC基本指令实验 (2)实验二PLC定时器/计数器实验 (6)实验三自动配料系统模拟控制实验 (8)实验四机械手模拟控制实验 (10)实验五天塔之光模拟控制实验 (12)实验六步进电机控制实验 (13)实验七电梯模拟控制实验 (14)实验八十字路口交通灯模拟控制实验 (15)实验一PLC基本指令实验一、实验目的1. 掌握常用基本指令的使用方法。
2. 熟悉编程器的指令编入、删除、插入、程序读出等操作。
3. 学会用基本逻辑与、或、非等指令实现基本逻辑组合电路的编程。
二、实验器材1. DICE-PLC01型可编程序控制器实验台/箱l台2. 编程电缆l根3. 连接导线若干三、实验内容及步骤三菱系列FX系列可编程序控制器基本指令有20多条(根据主机型号的不同,指令系统也有所差异),如下表所示。
本次实验进行常用基本指令LD、LDⅠ、LDP、LDF、AND、ANI、ANDP、ANDF、OR、ORI、ORP、ORF、ANB、ORB、OUT、END指令的编程操作训练。
(1)基本指令实验实验二PLC定时器/计数器实验一、实验目的l. 掌握定时指令的使用。
2. 掌握计数器的使用。
3. 掌握计数器/ 定时器内部时基脉冲参数的设置。
二、实验器材1. DICE-PLC01型可编程序控制器实验台/箱l台2. 编程电缆l根3. 连接导线若干三、实验内容与步骤1. 定时器指令FX1 s系列PLC有定时器63个(T0~T63),定时器的时基脉冲为l00ms(0.1s〕,每个定时器的定时范围从0.1s~3276.7s,定时指令占用步数3步。
当M8028被驱动时(即M8028=1),定时器T32~T62(30点)的时基脉冲为10ms(0.01s)即T32~T62的定时时基脉冲为0.01s。
对下列程序进行编程练习:2、计数器指令FX1s系列PLC的一般计数器个数为16个(C0~Cl5),停电锁存计数器16个(Cl6~C31),每个计数器均为16位,设定值范围在K1~K32767内.,该指令占步数为3步。
实验二、汇编语言程序的汇编与调试
实验二、汇编语言程序的汇编与调试一、实验目的掌握汇编语言程序的汇编与调试过程,熟悉MASM、LINK、DEBUG等程序的使用。
了解列表文件与交叉参考文件的基本内容。
二、实验原理编制好汇编语言的源程序后,若要在机器上运行,必须经过如图1- 1所示的几个步骤:1、编辑源程序图1- 1 汇编语言程序的上机过程可以使用任何一种文本编辑程序编辑汇编语言源程序,通常使用DOS提供的文本编辑程序EDIT,具体使用方法为:从Windows进入MS-DOS方式,在DOS提示符后键入:EDIT [文件名]进入EDIT后,对源程序进行全屏幕编辑。
编辑完成后选择File菜单的Save命令保存文件,选择File菜单的Exit命令退出EDIT。
对于汇编语言源程序,其文件的扩展名约定使用ASM。
2、汇编汇编程序的基本功能是把用汇编语言编写的源程序翻译成机器语言目标代码,同时生成列表文件及交叉参考文件。
汇编程序的操作步骤为:在DOS提示符后键入:MASM 源程序文件名或MASM 源程序文件名,列表文件名,交叉参考文件名其中文件名不必给出扩展名,汇编程序会按照默认情况处理或产生。
若汇编后出现警告错误或严重错误,应调用EDIT对源程序进行修改,再重新汇编,直至无错误为止。
列表文件[.LST]和交叉参考文件[.XRF]有助于程序的分析和错误的查找,根据需要可以生成这两个文件(缺省时无)。
其中列表文件是文本文件,可用EDIT打开。
交叉参考文件是二进制文件,通过执行程序CREF.EXE,将二进制交叉参考文件转换为索引列表文件[.REF],具体方法为在DOS提示符后键入:CREF 交叉参考文件名3、连接汇编以后的目标代码的地址还是可浮动的相对地址,需要经过连接才能生成可执行程序。
连接程序的功能是连接多个目标代码模块(如果有的话),确定每个程序段的地址,形成可执行程序文件[.EXE]。
连接程序的操作步骤为:在DOS提示符后键入:LINK 目标代码文件名当目标代码文件不止一个时,各个目标代码文件名之间用+(加号)连接;也可以用命令行方式运行LINK程序,其格式为:LINK 目标文件名,可执行程序文件名,内存映象文件名,库文件名4、调试程序通过汇编和连接,排除了语法错误,并不一定能正确执行,这就需要使用动态排错程序。
实验二 汇编语言程序上机过程及调试
实验报告二课程微机原理实验名称汇编语言程序上机过程以及调试第页专业电子信息班级__ __ 学号_ __ 姓名实验日期:2014 年 3 月10 日报告退发(订正、重做)一、实验目的学习汇编语言程序设计的基本步骤,即编辑(EDIT)程序、汇编(MASM)、连接(LINK)和运行,使对汇编语言程序设计有一个初步的认识。
二、实验内容1、学习使用全屏幕文本编辑软件EDIT。
用EDIT输入一段给定的源程序。
2、用MASM对已存盘的源程序进行汇编,形成目标文件(.OBJ);如有错误,再返回到EDIT进行修改。
3、用LINK对上述形成的目标文件进行连接,形成可执行文件(.EXE)4、在DOS提示符下运行该可执行文件。
[汇编语言程序的编写格式]汇编语言程序一般由几个段组成,它们分别是堆栈段,数据段,代码段。
任何一个源程序至少必须有一个代码段和一条作为源程序结束的伪指令END。
段的定义有两种格式,分述如下:1,完整的段定义格式:一个段由段头,段体,段尾组成,形式如下:段名SEGMENT[定位类型][组合类型][‘类别’]……段名ENDS其中SEGMENT后的参数一般可省略,详细说明参阅后面的有关章节。
2,简化的段定义格式(MASM5.0版本提供)每段以.开始后跟固定的段名,一般形式如下:DOSSEG.MODEL 存储类型;“存储类型”可选择为SMALL。
.STACK[大小];堆栈段,“大小”指定堆栈的字节数。
.DATA;数据段。
.CODE[名字];代码段;一般只有一个代码段,名字可缺少……例1:用完整的段定义编写一源程序。
NAME EXAM1;可以省略DATA SEGMENT;定义数据段,以下是数据段的内容STR1 DB “HELLO,WELCOME!”,13,10,‘$’STR2 DB “DO YOU LIKE COMPUTER?(Y/N)”,13 10,‘$’STR3 DB “NICE!”,13,10,‘$’STR4 DB “SORRY!”,13,10,‘$’STR5 DB “UNKNOW,ANSWER AGAIN!(Y/N)”,DB 13,10,‘$’STR6 DB “SEE YOU NEXT TIME!”,13,10,‘$’DA TA ENDS ;数据段结束CODE SEGMENT ;定义代码段ASSUME CS:CODE;DS:DATA;以下是代码段内容START:MOV AX,DA TA;给数据段寄存器赋值MOV DS,AXMOV AH,9;显示一字符串的功能号MOV DX,OFFSET STR1;显示字符串STR1的偏址INT 21H;DOS功能调用ASK :MOV DX,OFFFSET STR2;显示字符串STR2INT 21HMOV AH,1;键盘输入一字符的功能号INT 21H;键入的字符ASCⅡ码在ALNOT AL;求反TEST AL,‘Y’;是否按下‘Y’或‘y’键JE NEXT1TEST AL,‘y’JE NEXT1TEST AL,‘N’;是否按下‘N’键或‘y’键JE NEXT2TEST AL, ‘n’JE NEXT2MOV DX,OFFSET STR5;不是按上述键MOV AH,9INT 21HJMP ASK;再返回ASKNEXT1:MOV DX,OFFSET STR3;是按下‘Y’或‘y’键MOV AH,9INT 21HJMP BYENEXT2:MOV DX,OFFSET STR4;是按下‘N’或‘n’键MOV AH,9INT 21HBYE:MOV DX,OFFSET STR6INT 21HMOV DL,7;喇叭响的ASCⅡ码MOV AH,2INT 21HMOV AH,4CH;退回DOSINT 21HCODE ENDS;代码段结束END START;源程序结束注:源程序中的每一行注释语句前一定要加分号‘;’,下同。
实验报告 初级程序的编写与调试实验
实验1 初级程序的编写与调试实验(一)一.实验目的1.熟悉DEBUG命令;学会DEBUG中的D命令、E命令、R命令、T命令、A命令、G命令等的使用。
对于U命令、N命令、W命令等,也应该试用一下;2.掌握数据在内存中的存放方式和内存操作数的几种寻址方式,段寄存器和物理地址计算;3.熟悉数据传送指令、算术运算指令、逻辑指令、循环指令的使用。
4.掌握简单的汇编语言程序编写与调试。
二.实验内容1.内存操作数及各种寻址方式使用;2.求累加和程序;3.多字节加法程序;4.数据串搬家程序;5.段寄存器概念及字符串传送指令练习。
三.实验要求1.仔细阅读有关DEBUG命令的内容,对有关命令,要求事先准备好使用的例子;2.阅读数据传送指令、算术运算指令、逻辑指令、循环指令的使用方法3.用DEBUG的有关命令调试本实验中的求累加和程序、多字节加法程序、程序段四.实验环境PC微机;DOS操作系统或Windows 操作系统;MASM.EXE,LINK.EXE,或宏汇编集成环境。
五.实验内容和数据1.内存操作数及各种寻址方式使用MOV AX,1234MOV [1000],AXMOV BX,1002MOV BYTE PTR[BX],20MOV DL,39INC BXMOV [BX],DLDEC DLMOV SI,3MOV [BX+SI],DLMOV [BX+SI+1],DLMOV WORD PTR[BX+SI+2],2846步骤:(1) 用A命令键入上述程序,并用T命令逐条运行。
(2) 每运行一条有关内存操作数的指令,要用D命令检查并记录有关内存单元的内容并注明是什么寻址方式。
注意D命令显示结果中右边的ASCII字符及双字节数存放法。
2.求累加和程序:程序:MOV BX,1000MOV CX,10SUB AX,AXLOP:ADD AL,[BX]ADC AH,0INC BXJ:LOOP LOPINT 3步骤:(1)用A命令将程序键入到100H开始的内存中,在键入时记下标号LOP和J的实际地址,在键入LOOP指令时LOP用实际地址值代替;(2)用命令N AA 将此程序命名为文件AA(文件名可任取);(3)用R命令将BX:CX改为程序长度值(即最后一条指令后面的地址减去开始地址;(4)用命令W 100将此程序存到AA命名的磁盘文件中;(5)用命令Q退出DEBUG;(6)用命令DEBUG AA再次调入DEBUG和文件AA,可用U命令检查调入程序;若调入DEBUG时忘了加AA文件名,可用N命令和L命令将文件调入;(7)用E命令在内存地址1000H处键入16个数字;(8)用命令G=100 J(J用实际地址代替),使程序运行并停在断点J上,检查AX,BX的值是否符合你的预计值;(9)用T命令运行一步,观察程序方向(IP值)和CX值是否与你的估计一样,若不一样,检查程序是否有错;3.多字节加法程序程序:MOV DI,1000MOV CX,8MOV SI,2000CLCLOP:MOV AL,[SI]ADC [DI],ALINC SIINC DILOOP LOPINT 20步骤:(1)用命令键入此程序(2) 用E命令在1000H开始处键入一个8字节被加数,在2000H开始处键入一个8字节加数,均为低字节在前面。
实验二汇编语言程序的运行与调试一
实验二汇编语言程序的运行与调试一实验二汇编语言程序的运行与调试一.实验目的:1、掌握汇编语言源程序的书写格式。
2、掌握EDIT、MASM、LINK、DEBUG等软件的使用方法。
3、掌握上机编辑、汇编、连接及运行汇编语言程序。
二&实验环境:微型计算机一台DOS或WINDOWS操作系统,MASM开发套件。
三.实验原理:1、完整的段定义伪操作data segment ; 定义数据段…data endsextra segment ; 定义附加段…extra endsstack segment stack ; 定义堆栈段…stack endscode segment ; 定义代码段assume cs:code, ds:data, es:extrastart:mov ax, datamov ds, ax ; 段地址段寄存器...… ; 在代码段填入指令序列mov ah,4chint 21h ; 程序终止,返回DOS code endsend start ; 汇编结束2、汇编语言源程序的汇编过程汇编语言源程序的汇编过程是是利用汇编程序(MASM)对已编辑好的源程序文件(.ASM)进行汇编,将源程序文件中的助记符指令逐条翻译成机器码指令,并完成源程序中的伪指令所指出的各种操作,最后可以建立3个文件:扩展名为.OBJ的目标文件、扩展名为.LST 的列表文件和扩展名为.CRF 的交叉索引文件。
目标文件(.OBJ)是必须建立的,列表文件(.LST)和交叉索引文件(.CRF)两个文件可有可无,可以通过汇编时的命令加以选择。
3、目标程序的连接过程汇编后产生的目标程序(OBJ文件)并不是可执行程序文件(EXE文件),还不能直接运行,它必须通过连接程序(LINK)连接成一个可执行程序(EXE 文件)后,才能运行。
连接程序给出的“无堆栈段的警告性错误”并不影响程序的运行。
4、为运行汇编语言程序至少要在磁盘上建立以下文件:(1)编辑程序,如EDIT.EXE,编辑汇编源程序(2)汇编程序,如MASM.EXE,生成目标代码文件。
LINUX下C语言使用、编译与调试实验
LINUX下C语言使用、编译与调试实验LINUX 下C语言使用、编译与调试实验实验目的1、复习C语言程序基本知识2、练习并掌握UNIX提供的vi编辑器来编译C程序3、学会利用gcc、gdb编译、调试C程序实验内容1、用vi编写一个简单的、显示"Hello,World!"的C程序,用gcc 编译并观察编译后的结果2、利用gdb调试该程序3、运行生成的可执行文件。
实验指导一、C语言使用简介LINUX中包含了很多软件开发工具。
它们中的很多是用于C和C++应用程序开发的。
C是一种能在UNIX的早期就被广泛使用的通用编程语言。
它最早是由Bell 实验室的Dennis Ritchie为了UNIX的辅助开发而写的,从此C就成为世界上使用最广泛的计算机语言。
C能在编程领域里得到如此广泛支持的原因有:(1)它是一种非常通用的语言,并且它的语法和函数库在不同的平台上都是统一的,对开发者非常有吸引力;(2)用C写的程序执行速度很快;(3)C是所有版本UNIX上的系统语言;二、文件编辑器vivi是在UNIX 上被广泛使用的中英文编辑软件。
vi是visual editor 的缩写,是UNIX提供给用户的一个窗口化编辑环境。
进入vi,直接执行vi编辑程序即可。
例:$vi test.c显示器出现vi的编辑窗口,同时vi会将文件复制一份至缓冲区(buffer)。
vi先对缓冲区的文件进行编辑,保留在磁盘中的文件则不变。
编辑完成后,使用者可决定是否要取代原来旧有的文件。
1、vi的工作模式vi提供二种工作模式:输入模式(insert mode)和命令模式(command mode)。
使用者进入vi后,即处在命令模式下,此刻键入的任何字符皆被视为命令,可进行删除、修改、存盘等操作。
要输入信息,应转换到输入模式。
(1)命令模式在输入模式下,按ESC可切换到命令模式。
命令模式下,可选用下列指令离开vi::q! 离开vi,并放弃刚在缓冲区内编辑的内容:wq 将缓冲区内的资料写入磁盘中,并离开vi:ZZ 同wq:x 同wq:w 将缓冲区内的资料写入磁盘中,但并不离开vi:q 离开vi,若文件被修改过,则要被要求确认是否放弃修改的内容,此指令可与:w配合使用(2)命令模式下光标的移动H 左移一个字符J 下移一个字符K 上移一个字符L 右移一个字符0 移至该行的首$ 移至该行的末^ 移至该行的第一个字符处H 移至窗口的第一列M 移至窗口中间那一列L 移至窗口的最后一列G 移至该文件的最后一列W, W下一个单词 (W 忽略标点)B, B 上一个单词 (B 忽略标点)+ 移至下一列的第一个字符处- 移至上一列的第一个字符处( 移至该句首) 移至该句末{ 移至该段首} 移至该段末NG 移至该文件的第n列N+ 移至光标所在位置之后第n列n- 移至光标所在位置之前第n列(3)输入模式输入以下命令即可进入vi输入模式:a(append) 在光标之后加入资料A 在该行之末加入资料i(insert) 在光标之前加入资料I 在该行之首加入资料o(open) 新增一行于该行之下,供输入资料用O 新增一行于该行之上,供输入资料用Dd 删除当前光标所在行X 删除当前光标字符X 删除当前光标之前字符U 撤消·重做F 查找s 替换,例如:将文件中的所有"FOX"换成"duck",用":%s/FOX/duck/g"ESC 离开输入模式更多用法见 info vi三、GNU C编译器LINUX上可用的C编译器是GNU C编译器,它建立在自由软件基金会编程许可证的基础上,因此可以自由发布。
可编程序控制器(PLC)实验报告
可编程序控制器实验报告**:**学号:*************实验一认识FXGP与PLC一.实验目的:1.熟悉FXGP的操作界面2.熟悉FXGP菜单的显示和操作方式3.注意观察FXGP系统提供的信息4.学会设置路径、新建程序5.初步学习用指令表、梯形图方式编制PLC程序6.理解指令表和梯形图的对应关系7.掌握FXGP中的程序传送到PLC的方法8.通过实验了解和熟悉FX系列PLC的外部结构和外部接线方法9.熟悉简易编程器的使用。
10. 掌握调试程序的方法二.实验内容(一)使用FXGP软件编辑程序1.设置文件路径为C:\PLC12.进入FXGP软件3.新建一个序程序,指定正确的PLC类型,程序名称[untit101] 4.用梯形图形式编辑如下一段程序5、通过转换,在指令表形式下阅读程序:LD X000AND X001LDI X000AND X002ORBLD X007OR Y000ANBAND X006OUT Y000LDI X004AND X005MPSAND Y000OUT C0MRDAND X010OUT Y001MPPAND Y001RST C0AND C0OUT Y002END关于PLc的说明:PLC的硬件基本组成; (一)中央处理单元(CPU)(二)存储器(三)输入接口电路(四)输出接口电路(五)电源(六)编程器PLC的软件结构:(一)系统监控程序(二)用户程序PLC的供电电源是一般市电,也有用直流24伏供电的,PLC对电源稳定要求度不高,一般允许电源电压额定值在10%之间波动。
PLC的输入电路:一般有三种类型一种是直流12——24V输入,另一种是交流100——120,200——240V输入,第三种是交直流输入。
PLC的输出也有三种形式,即继电器输出,晶体管输出,晶闸管输出。
FX-20P-E手持式编程器(简称HPP)可以用于FX系列PLC,也可以通过转换器FX-20P-E-FKIT用于F1、F2系列PLC。
计算机0901,0902《微机原理与接口技术》课程实验教学大纲
《微机原理与接口技术》课程实验教学大纲课程编号:课程性质:专业必修课学分/学时:30/1先修/后续课程:计算机导论/计算机系统结构开课对象:计算机科学与技术专业课程简介:《微机与汇编语言》课程是计算机科学与技术专业重要的专业基础课,是学生学习掌握计算机硬件和软件(汇编语言)的入门课程。
一、教学任务和目的掌握典型微处理器的指令系统和运用汇编语言进行程序设计基本方法,是计算机科学与技术专业的一门专业核心课程之一,是突出计算机软件与硬件紧密结合、理论与实践相结合的一门课程。
微机原理与接口技术实验是微机原理与接口技术课程的重要组成部分。
本实验课程的教学目的和要求是使学生通过实验手段掌握微机接口的设计及其应用编程方法,也使学生系统科学地受到分析问题和解决问题的训练。
通过实验使学生对课程中的8253定时器,8255并行口,8259中断控制器,RAM6116,8251串行接口芯片,AD0809,AD0832的理解,能熟练掌握8253、8255、8251的编程与应用,促进对微机原理与接口技术理论课的学习。
二、教学基本要求要求学生掌握微机系统中主要部件(CPU、内存、I/O接口电路和总线等)的功能及连接方法;微处理器指令及其操作数的寻址方法;微机系统与外设之间I/O信息交换的基本方法;并进一步掌握典型微处理器的指令系统和运用汇编语言进行程序设计基本方法;掌握常用(可编程)I/O接口电路的性能特点和编程应用方法;了解计算机系统与外部设备的接口技术。
三、实验内容实验一DOS常用命令及8088/8086指令使用实验目的(1) DOS命令:CD、DIR、DEL、RENAME和C0PY。
(2) 8088指令:MOV,ADD、ADC、SUB、SBB、DAA和XCHG。
(3) DEBUG命令:A、D、E、F、H、R、T和U。
(4) BCD码、ASCII码及用十六进制数表示二进制码的方法。
(5) 8088寄存器:AX、BX、CX、DX、F和IP。
实验报告实验二熟悉汇编程序建立及其调试方式
微机原理实验报告实验二熟习汇编程序成立及其调试方式冉晨越姓名:吕迪学号:一、实验目的1.熟习汇编语言源程序的框架构造,学会编制汇编程序。
2.熟习汇编语言上机操作的过程,学会汇编程序调试方法。
二、实验内容1、学习编写汇编语言源程序的方法,认识数据寄存格式。
2、阅读给出的程序,找出程序中的错误。
3、经过调试给出的汇编语言源程序,认识汇编语言程序的成立、汇编、链接、调试、改正和运行等全过程。
三、实验程序( 一 ) 、源程序STACKSG: SEGMENT PARA STACK 'STACK'; 冒号DB256 DUP(?)STACKSG ENDSDATASG: SEGMENT PARA 'DATA'; 冒号BLOCK DW 0,-5,8,256,-128,96,100,3,45,6,512DW 23,56,420,75,0,-1024,-67,39,-2000COUNT EQU20MAX DW?CODESG: SEGMENT; 冒号BEGIN:MOV DS, DATASG LEA SI,BLOCKMOV CX,COUNTDEC CXMOV AX,[SI]CHKMAXADD SI,2CMP [SI],AXJLE NEXTMOV AX,[SI]DEC CX;; 应为; 应加冒号删除MOV AX,DATASG MOV DS,AXNEXT: LOOP CHKMAXMOV MAX,AXMOV AH,4CHINT 21HCODESG ENDSEND BEGIN(二)、改正后程序STACKSG SEGMENT PARA STACK 'STACK' DB 256 DUP(?)STACKSG ENDS; DATASG SEGMENT PARA 'DATA'; BLOCK DW 0,-5,8,256,-128,96,100,3,45,6,512定义货仓段定义数据段;BLOCK有 20个字DW 23,56,420,75,0,-1024,-67,39,-2000COUNT EQU 20;COUNT=20MAX DW ?;定义 MAX不赋值DATASG ENDSCODESG SEGMENT;定义代码段ASSUME SS:STACKSG , CS:CODESG ;定义 STACKG为货仓段 CODESG为代码段ASSUME DS:DATASG;定义 DATASG为数据段ORG 100H;偏移量 100HBEGIN:MOV AX, DATASG ; DATASG传入DSMOV DS, AXLEA SI ,BLOCK;取 BLOCK的有效地点给 SIMOV CX, COUNT ; COUNT传入CXDEC CX;CX=CX-1MOV AX , [SI];把 DS:[SI]内容传入 AXCHKMAX : ADD SI, 2:SI=SI+2CMP [SI] , AX;比较 DS:[SI]与 AX值的大小JLE NEXT;当 DS:[SI]<=AX时跳转到 NEXTMOV AX , [SI];不然将 DS:[SI]装入 AXNEXT:LOOP CHKMAX;CX=CX-1,CX为零循环 CHMAX,不然次序运转MOV MAX ,AX;将 AX内容装入 MAXMOV AH, 4CH;结束INT21H;退出CODESG ENDSEND BEGIN(三)程序功能比较 20 个数的大小,找出最大的数字。
实验二 初级程序的编写与调试
实验二初级程序的编写与调试一、实验目的1、熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。
2、深入了解数据在存储器中的存取方法及堆栈中数据的压入与弹出。
3、掌握各种寻址方法及简单指令的执行过程。
二、程序(调试)说明1、设堆栈指针SP=2000H,AX=3000H,BX=5000H。
请编写程序将AX的内容和BX 的内容进行交换。
用堆栈作为两存储器交换的中间存储单元,用DEBUG调试程序进行汇编与调试-A 1000BB3:0100 MOV SP,20000BB3:0103 MOV AX,3000 ;赋初值0BB3:0106 MOV BX,50000BB3:0109 PUSH AX ;压入堆栈0BB3:010A PUSH BX0BB3:010B POP AX ;弹出堆栈0BB3:010C POP BX0BB3:010D INT 20 ;中断当前执行程序0BB3:010F HLT0BB3:0110-用堆栈作为两存储器交换的中间存储单元,使用起来很方便。
2、设DS=当前段地址,BX=0300H,SI=0002H,请用DEBUG的命令将存储器偏移地址300H~304H连续单元顺序装入0AH、0BH、0CH、0DH、0EH。
在DEBUG状态下送入下面程序,并用单步执行的方法,分析每条指令源地址的形成过程。
当数据传送完毕,AX中的内容是什么。
MOV AX,BXMOV AX,0304HMOV AX,[0304H]MOV AX,[BX]MOV AX,0001[BX]MOV AX,[BX][SI]MOV AX,0001[BX][SI]INT 20HHLT第一步:显示、填充、清零。
第二步:给存储器偏移地址300H~304H连续单元设初值1、2、3、4、5;并在0AH~0EH上显示出来;第三步:输入代码,并显示。
这时AX、BX、CX、DX都为0。
赋BX、SI的初值第四步:,并显示存储器偏移地址300H~304H连续单元。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
重庆大学
学生实验报告
实验课程名称汇编语言程序设计
开课实验室DS1502
学院软件学院年级16 专业班软件工程5班学生姓名吉沼橙学号********
开课时间2017 至2018 学年第 1 学期
软件工程学院制
《汇编语言程序设计》实验报告
Add sp,4
Pop ax
Pop bx
Push ax
Push bx
Pop ax
Pop bx
Mov ah,4ch
Int 21h Code ends
End start
先转换成asm格式然后转换成obj格式
然后转换成exe格式
(2)用debug跟踪lab2.exe 的执行过程,写出每一步执行后,相关寄存器中的内容和栈顶的内容。
开始每一步的执行:
1:AX=2000
2:SS=2000
3:SP=0004
4: AX=0000 SP=0006
5: BX=0000 SP=0008
6.7:AX与BX入栈SP由0008到0004
8:AX与BX出栈SP由0004到0008
(5)习题:3.37 -教材114页。
MOV AL, STATUS
AND AL, 00010101B ;只保留第1、3、5位
CMP AL, 00010101B
JZ ROUTINE_1 ;3位全为1转ROUTINE_1
JZ ROUTINE_2 ;两位为1转ROUTINE_2 JZ ROUTINE_3 ;1位为1转ROUTINE_3
JZ ROUTINE_4 ;3位全为0转ROUTINE_4 ROUTINE_3:
JMP EXIT
ROUTINE_1:
JMP EXIT
ROUTINE_2:
JMP EXIT
ROUTINE_4:
EXIT: INT 21H。