电子科技大学 汇编 实验报告
电子科技大学实验报告

电子科技大学实验报告电子科技大学实验报告电子科技大学作为中国一流的电子信息科学与技术学府,以其卓越的教育质量和科研实力备受瞩目。
在这所学校里,学生们不仅接受了丰富的理论知识,更重要的是能够通过实验来巩固和应用所学的知识。
实验报告作为实验课程的重要组成部分,对学生的实验能力、分析能力和表达能力都有一定的要求。
一、实验目的与背景每个实验报告都应该明确实验的目的和背景。
在电子科技大学的实验报告中,一般会先介绍该实验所涉及的相关知识和背景,然后明确实验目的。
以“电路实验”为例,可以介绍电路的基本概念和理论知识,然后明确实验目的是通过搭建电路,观察和分析电流、电压、电阻等参数的变化规律。
二、实验装置与步骤实验报告中应该详细描述实验所用的装置和仪器,并给出实验步骤。
例如,在电路实验中,可以列出所用的电源、电阻、电流表、电压表等装置,并详细说明实验的具体步骤,包括搭建电路的过程、调节参数的方法以及观察数据的记录方式。
三、实验结果与数据分析实验结果是实验报告的重要部分,学生需要将实验过程中所得到的数据进行整理和分析。
在电子科技大学的实验报告中,学生可以通过绘制图表、计算数据等方式来展示实验结果。
例如,在电路实验中,可以通过绘制电流与电压的关系曲线图来展示实验结果,并根据曲线的趋势和数据的变化来分析电路的特性和规律。
四、实验讨论与结论实验讨论是实验报告中的重要环节,学生可以在这一部分对实验结果进行讨论和解释。
例如,在电路实验中,学生可以通过比较实验数据和理论计算结果的差异,来分析实验误差的原因,并提出改进的方法。
最后,学生需要总结实验的结论,并对实验的意义和应用进行简要的说明。
五、实验心得与改进意见实验心得是学生对实验过程和结果的个人感悟和体会,可以在实验报告的最后部分进行阐述。
学生可以谈论自己在实验中遇到的困难和解决方法,以及对实验过程和结果的评价。
同时,学生还可以提出对实验的改进意见,以便于今后的实验能够更加顺利和有效地进行。
电子科技大学实验报告

(一)用WinDLX模拟器执行求阶乘程序fact.s。
这个程序说明浮点指令的使用。该程序从标准输入读入一个整数,求其阶乘,然后将结果输出。
该程序中调用了input.s中的输入子程序,这个子程序用于读入正整数。
(二)用WinDLX模拟器执行程序gcm.s。
该程序从标准输入读入两个整数,求他们的greatest common measure,然后将结果写到标准输出。
该程序中调用了input.s中的输入子程序。
(三)用WinDLX模拟器执行求素数程序prim.s。
这个程序计算若干个整数的素数。
六、实验器材(设备、元器件):
PC微机一台
七、实验步骤及操作:
1.双击WinDLX图标运行WinDLX。装入测试程序之前,先初始化WinDLX模拟器:点击File菜单中的Reset all菜单项,弹出一个“Reset DLX”对话框。然后点击窗口中的“确认”按钮即可。
1.2.选择File/Load Code or Data,按如下步骤操作,可将fact.s和input.s这两个程序装入主存:
◆点击fact.s
◆点击select按钮
◆点击input.s
◆点击select按钮
◆点击load按钮
3.点击主窗口中的Execution开始运行。
4.程序gcm.s和prim.s的运行过程同上。
八、实验数据及结果分析:
九、实验结论:
十、总结及心得体会:
十一、对本实验过程及方法、手段的改进建议:
报告评分:
指导教师签字:
电子科技大学
实验报告
学生姓名:
学号:
一、实验室名称:计算机学院计算心
二、实验项目名称:熟悉WinDLX的使用
电子科大 实验报告

电子科大实验报告电子科技大学实验报告引言:电子科技大学作为中国著名的高等学府,以其卓越的教学质量和科研实力享誉全国。
在这里,学生们接受着严格的实验训练,以提升他们的科学研究能力和实践技巧。
本文将对电子科技大学的实验教学进行探讨,以及对我个人在实验中的体验和收获进行分享。
实验教学的重要性:实验教学在高等教育中具有重要的地位。
通过实验,学生们能够亲自动手操作,观察现象,进行数据采集和分析,从而深入理解课堂上学到的理论知识。
实验教学不仅培养了学生的动手能力和实践能力,还锻炼了他们的团队合作和解决问题的能力。
因此,电子科技大学高度重视实验教学,为学生提供了丰富多样的实验项目和设备。
实验室设备的先进性:电子科技大学实验室设备的先进性也是其实验教学的一大特点。
学校投入大量资金购置了各种先进的实验仪器和设备,以满足学生的学习需求。
例如,在电子信息工程专业的实验室中,学生们可以使用高性能的示波器、信号发生器和频谱分析仪等设备进行电路实验和信号处理实验。
这些设备不仅提供了实验所需的基本功能,还具备了一些高级功能,使得学生们能够更好地进行实验研究。
实验项目的多样性:电子科技大学的实验项目种类繁多,涵盖了各个专业领域。
学生们可以根据自己的兴趣和专业方向选择适合自己的实验项目。
例如,在通信工程专业的实验室中,学生们可以进行无线通信实验、光纤通信实验等;在计算机科学与技术专业的实验室中,学生们可以进行网络安全实验、人工智能实验等。
这些实验项目既能够帮助学生巩固课堂上学到的知识,又能够拓宽他们的实践经验。
个人实验体验与收获:我作为一名电子信息工程专业的学生,在电子科技大学的实验教学中获得了很多宝贵的经验和收获。
首先,通过亲自动手操作实验仪器,我深入了解了电路的工作原理和信号的处理方法。
其次,实验教学锻炼了我的团队合作和沟通能力,因为在实验中,我们需要与同组的同学密切合作,共同解决实验中遇到的问题。
最后,实验教学培养了我解决问题的能力。
电子科大实验报告

一、实验名称计算机组成原理实验二、实验目的1. 掌握计算机组成原理的基本概念和组成结构。
2. 理解计算机各部件之间的逻辑关系和功能。
3. 学习计算机指令系统的基本原理和应用。
4. 培养动手实践能力和分析问题的能力。
三、实验内容1. 计算机硬件系统组成实验2. 计算机指令系统实验3. 计算机寻址方式实验4. 计算机中断系统实验四、实验原理1. 计算机硬件系统组成实验:通过搭建计算机硬件系统,了解计算机各个部件的功能和相互关系,包括中央处理器(CPU)、存储器、输入输出设备等。
2. 计算机指令系统实验:学习计算机指令系统的基本原理,包括指令格式、寻址方式、指令执行过程等。
3. 计算机寻址方式实验:了解计算机寻址方式的基本概念,包括直接寻址、间接寻址、寄存器寻址等,并掌握不同寻址方式的应用。
4. 计算机中断系统实验:学习计算机中断系统的原理,包括中断源、中断控制器、中断处理程序等,以及中断处理过程。
五、实验设备及器材1. 计算机组成原理实验箱2. 示波器3. 数字万用表4. 计算机软件:Keil、Proteus等六、实验过程及数据记录1. 计算机硬件系统组成实验(1)搭建计算机硬件系统,包括CPU、存储器、输入输出设备等。
(2)观察各个部件之间的连接和信号传输。
(3)测试计算机硬件系统的基本功能。
2. 计算机指令系统实验(1)编写简单的汇编语言程序,实现加法、减法等运算。
(2)使用Proteus软件模拟程序执行过程,观察CPU的运行状态和寄存器的内容。
3. 计算机寻址方式实验(1)编写汇编语言程序,实现不同寻址方式的操作。
(2)使用Proteus软件模拟程序执行过程,观察不同寻址方式对指令执行的影响。
4. 计算机中断系统实验(1)编写汇编语言程序,实现中断请求和处理。
(2)使用Proteus软件模拟程序执行过程,观察中断处理过程。
七、实验结果分析1. 通过搭建计算机硬件系统,了解了计算机各个部件的功能和相互关系,掌握了计算机硬件系统的基本原理。
电子科技大学微机实验报告-实验2

实验二 ARM 汇编控制LED 实验【实验目的】1、理解掌握通过ARM 汇编控制硬件操作;2、熟练使用ARM 调试软件RVDS 进行硬件调试。
【实验内容】1、掌握ARM 处理器GPIO 相关寄存器的使用;2、用ARM 汇编实现控制开发LED 按照一定方式点亮。
【预备知识】1、ARM 汇编基础2、ARM 处理器通用IO 口的操作【实验设备和工具】软件:Windows 操作系统,RVDS 软件硬件:ARM 嵌入式开发板,PC 机Pentium100 以上,并口线,JTAG 板,JTAG 连接线【实验原理】1、 S3C2440 处理器相关寄存器介绍PORT G 控制寄存器( GPGCON )PORT G 数据寄存器(GPGDAT)PORT G 禁止上拉寄存器(GPGUP)注:以上寄存器详细描述见实验指导书或者S3C2440 芯片手册。
2、开发板LED 部分原理图说明GPG5 接LED4,串联上拉电阻GPG6 接LED5,串联上拉电阻GPG7 接LED6,串联上拉电阻GPG8 接LED7,串联上拉电阻所以,当IO 口输出低电平时,相应的LED 才能点亮。
【实验步骤】(一)LED 汇编实验1、通过查看S3C2440 处理器G 口控制寄存器,在文件中添加汇编代码,设置GPG5-GPG8 为output。
2、在文件中添加汇编代码,禁止GPG5-GPG8 端口的上拉电阻。
3、在文件中添加汇编代码,点亮LED6,熄灭LED5,LED7,LED8,并调用延时。
4、在文件中添加汇编代码,点亮 LED7,熄灭 LED5,LED6,LED8,并调用延时。
5、在文件中添加汇编代码,点亮LED8,熄灭LED5,LED6,LED7,并调用延时。
6、在文件中添加汇编代码,实现LED5-LED8 依次点亮。
7.连接好 JTAG 仿真板,一口与 PC 的并口相连,另一口与开发板的 JTAG 口相连,打开开发板电源。
打开H-jtag 程序,检测CPU,点击RVDS 中的“Debu g”,打开RVD 进行硬件调试(二)LED C 语言实验(选做)【实验结果和程序】(一)LED 汇编实验;GPIO 寄存器宏定义GPGCON EQU 0xGPGDAT EQU 0xGPGUP EQU 0xEXPORT LEDTESTAREA LEDTESTASM,CODE,READONL Y ; 该伪指令定义了一个代码段,段名为LEDTESTASM,属性只读ENTRYLEDTEST;设置GPG5-GPG8(即LED4--LED7)为outputldr r0,=GPGCONldr r1,[r0]movr1,#0x00015400str r1,[r0];禁止GPG5-GPG8(即LED4--LED7)端口的上拉电阻ldr r0,=GPGUPldr r1,[r0]movr1,#0x01e0str r1,[r0]looptest;将数据端口G 的数据寄存器的地址附给寄存器r2ldr r2,=GPGDAT; 点亮LED5,熄灭LED6-LED8,并调用延时ldr r3,[r2]orrr3,r3,#0x01e0bicr3,r3,#0x0020str r3,[r2] ;GPG5(即LED5) output 0ldr r0,=0xffffff ;初始计数值bl delay ;调用延迟子程序;----------点亮LED6,熄灭LED5,LED7,LED8,并调用延时---- ldr r3,[r2]orrr3,r3,#0x01e0bicr3,r3,#0x0040str r3,[r2] ;GPG6(即LED6) output 0ldr r0,=0xffffff ;初始计数值bl delay;----------点亮LED7,熄灭LED5,LED6,LED8,并调用延时---- ldr r3,[r2]orrr3,r3,#0x01e0bicr3,r3,#0x0080str r3,[r2] ;GPG7(即LED7) output 0ldr r0,=0xffffff ;初始计数值bl delay;----------点亮LED8,熄灭LED5,LED6,LED7,并调用延时---- ldr r3,[r2]orrr3,r3,#0x01e0bicr3,r3,#0x0100str r3,[r2] ;GPG8(即LED8) output 0 ldr r0,=0xffffff ;初始计数值bl delay;-------------实现LED5-LED8 依次点亮-------------------b looptestdelaysub r0,r0,#1 ;r0=r0-1cmp r0,#0x0 ;将r0 的值与0 相比较bne delay ;比较的结果不为0(r0 不为0),继续调用delay,否则执行下一条语句mov pc,lr ;返回END ;程序结束符(二)LED C 语言实验(选做)arm 汇编部分:AREA |DATA|,CODE,READONL YENTRY;ldr r13,=0x1000IMPORT mainb mainENDC 语言部分://---------------Serial Experiment--------------------//-----------This is coded by UESTC HQ 20/*串口通信C 程序,按‘e’退出通信*/#define ULCON0 (*(volatile unsigned *)0x) //UART 线控制寄存器#define UCON0 (*(volatile unsigned *)0x) //UART 控制寄存器#define UFCON0 (*(volatile unsigned *)0x) //FIFO 控制寄存器#define UMCON0 (*(volatile unsigned *)0x5000000C) //AFC disable#define UTRSTA T0 (*(volatile unsigned*)0x) //UART 状态寄存器#define UBRDIV0 (*(volatile unsigned *)0x) //波特率#define UTXH0 (*(volatile unsigned *)0x)#define URXH0 (*(volatile unsigned *)0x)#define CAMDIV0 (*(volatile unsigned *)0x4C000018)#define GPHCON (*(volatile unsigned *)0x)#define GPHDAT (*(volatile unsigned *)0x)#define GPHUP (*(volatile unsigned *)0x)#define MPLLCON (*(volatile unsigned *)0x4C000004)#define UPLLCON (*(volatile unsigned *)0x4C000008)#define CLKDIVN (*(volatile unsigned *)0x4C000014)#define WTCON (*(volatile unsigned *)0x)void initpll(){MPLLCON=0x76022; //Fin=, Fout=CLKDIVN=0x07; //0000 0111}void inituart(){ULCON0=0x03; //1 位起始位,8 位数据位UCON0 =0x0805; //串口时钟PCLK,查询方式UFCON0 =0x0;UMCON0 =0x0;UBRDIV0 =0x17; // 波特率115200 UBRDIV0 = /(115200*16)-1=24-1=23}void initgpio(){GPHCON |=0xa0; // set to rxd and txdGPHUP |=0x0f; // pull upWTCON &=0xdb;}void uart_send(char * c){for (; *c != '\0'; c++){URXH0 = *c ;}}unsigned char uart_get() {}int main(){UTXH0=URXH0; return UTXH0;char key = ' ';initpll(); //初始化锁相环PLLinitgpio(); //初始化IO 口inituart(); //初始化串口uart_send("If you want to quit ,please press 'e'\r\n"); while(1){key = uart_get();if (key == 'e'){} else {uart_send ("\r\nyou pressed 'e' and you'll quit!\r\n"); break;uart_send(&key);}}uart_send("the program exited by user!\r\n");return 0;}【思考题】1 、如何实现 LED0-LED7 的循环点亮。
汇编实验报告

汇编实验报告一、实验目的本次汇编实验的主要目的是深入理解计算机底层的工作原理,掌握汇编语言的基本语法和编程技巧,能够运用汇编语言编写简单的程序来实现特定的功能。
通过实践操作,提高对计算机体系结构的认识,培养解决实际问题的能力。
二、实验环境本次实验使用的操作系统为 Windows 10,汇编语言编译器为MASM 615。
三、实验内容(一)数据传送与算术运算1、编写程序实现将两个 16 位的整数相加,并将结果存储在指定的内存单元中。
2、实现数据在不同寄存器和内存单元之间的传送。
(二)逻辑运算与移位操作1、对给定的两个字节数据进行逻辑与、或、异或操作,并观察结果。
2、进行移位操作,包括左移和右移,理解移位对数据的影响。
(三)循环与分支结构1、利用循环结构计算 1 到 100 的整数之和。
2、根据给定的条件,使用分支结构实现不同的操作。
(四)子程序调用1、编写一个子程序,实现两个数的乘法运算。
2、在主程序中调用该子程序,并输出结果。
四、实验步骤(一)数据传送与算术运算1、打开 MASM 编译器,新建一个汇编源文件。
2、使用`MOV` 指令进行数据传送,将两个整数分别存储在寄存器`AX` 和`BX` 中。
3、使用`ADD` 指令将两个数相加,结果存储在`CX` 寄存器中。
4、最后,使用`MOV` 指令将结果存储到指定的内存单元。
(二)逻辑运算与移位操作1、在源文件中定义两个字节变量,并初始化其值。
2、使用逻辑运算指令(如`AND`、`OR`、`XOR`)对这两个变量进行操作。
3、使用移位指令(如`SHL`、`SHR`)对变量进行移位,并观察结果。
(三)循环与分支结构1、对于循环结构,使用`LOOP` 指令实现从 1 到 100 的累加。
2、在分支结构中,根据给定的条件(如比较两个数的大小),使用`JZ`、`JL` 等指令执行不同的分支操作。
(四)子程序调用1、定义一个子程序,使用参数传递的方式接收两个数,并进行乘法运算。
电子科技大学中山学院学生实验报告
电子科技大学中山学院学生实验报告学院:机电工程专业:课程名称:微机原理与应用实验电子科技大学中山学院学生实验报告学院:机电工程专业:课程名称:微机原理与应用实验电子科技大学中山学院学生实验报告学院:机电工程专业:课程名称:微机原理与应用实验电子科技大学中山学院学生实验报告学院:机电工程专业:课程名称:微机原理与应用实验班级:姓名:学号:组别:实验名称:实验四可编程并行接口8255(方式0)实验时间:成绩:教师签名:批改时间:一、实验目的和任务掌握8255方式0的工作原理及使用方法。
二、实验内容1.实验电路如图4-1,8255C口接逻辑电平开关K0~K7,A口接LED显示电路L0~L7。
2. 编程从8255C口输入数据,再从A口输出。
图4-1 图4-2编程提示:1)8255控制寄存器端口地址28BHA口的地址288HC口的地址28AH2)参考流程图(见图4-2)三、实验过程和数据记录1.源程序:电子科技大学中山学院学生实验报告学院:机电工程专业:课程名称:微机原理与应用实验班级:姓名:学号:组别:实验名称:实验五七段数码管实验时间:成绩:教师签名:批改时间:一、实验目的和任务掌握数码管显示数字的原理。
二、实验内容1.静态显示:按图5-1连接好电路,将8255的A口PA0~PA6分别与七段数码管的段码驱动输入端a~g相连,位码驱动输入端S1接+5V(选中),S0、dp接地(关闭)。
编程从键盘输入一位十进制数字(0~9),在七段数码管上显示出来。
2.动态显示:按图5-2连接好电路,七段数码管段码连接不变,位码驱动输入端S1,S0接8255 C口的PC1,PC0。
编程在两个数码管上显示“56”。
3.动态显示:使用图5-2的电路,编程在两个数码管上循环显示“00-99”。
图5-1 图5-2编程提示:1)实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。
电子技术应用实验教程实验报告综合篇(含答案)电子科技大学-大三上(精心汇编)
·1·常用电子测量仪器的使用一部第分第一部分 常用电子测量仪器的使用本部分主要涉及实验要用到的三种仪器:数字示波器、信号发生器和稳压电源。
学生在自学了《电子技术应用实验教程 综合篇》(后称教材)第一章内容后,填空完成这部分的内容。
一、学习示波器的应用,填空完成下面的内容示波器能够将电信号转换为可以观察的视觉图形,便于人们观测。
示波器可分为 模拟示波器 和 数字示波器 两大类。
其中, 模拟示波器 以连续方式将被测信号显示出来;而 数字示波器 首先将被测信号抽样和量化,变为二进制信号存储起来,再从存储器中取出信号的离散值,通过算法将离散的被测信号以连续的形式在屏幕上显示出来。
我们使用的是 数字示波器 。
使用双踪示波器,能够同时观测两个时间相关的信号。
信号通过探头从面板上的 通道1 和 通道2 端送入,分别称为CH1和CH2。
在使用示波器时,需要注意以下几点:(1)正确选择触发源和触发方式触发源的选择:如果观测的是单通道信号,就应选择 该信号 作为触发源;如果同时观测两个时间相关的信号,则应选择信号周期 大 (大/小)的通道作为触发源。
(2)正确选择输入耦合方式应根据被观测信号的性质来选择正确的输入耦合方式。
如图1.1所示,输入耦合方式若设为交流(AC ),将阻挡输入信号的直流成分,示波器只显示输入的交流成分;耦合方式设为直流(DC ),输入信号的交流和直流成分都通过,示波器显示输入的实际波形;耦合方式设为接地(GND ),将断开输入信号。
t0U1V 5V(A )tU 1V5V 图1.2 被测信号实际波形tU (B )t0U-2V2V (C )图1.1 输入耦合开关示意图图1.3 不同输入耦合方式时的波形已知被测信号波形如图1.2所示,则在图1.3中, C 为输入耦合方式为交流(AC )·2·DIANZI JISHU YINGYONG SHIYAN JIAOCHENG SHIYAN BAOGAO电子技术应用实验教程实验报告综合篇时的波形, A 为输入耦合方式为直流(DC )时的波形, B 为输入耦合方式为接地(GND )时的波形。
电子科技大学实验报告
2.绑定网卡
在IP地址为的机器上运行cain,在cain运行界面上,按下“sniffer”图标,并点击“configuration菜单”,在“sniffer”选项卡下,选择恰当的网卡进行绑定,点击确定。如图4Biblioteka 20、图4-21图4-24
图4-25
说明:若没有选择 图标,则当点击 时,会提示“sniffer not be actived”,此时点击 ,开始嗅探,实验仍可继续进行。从cain主界面中可以看到,已探测出在该区域段的机器(10.11为主机,13为虚拟主机,1为网关)。如图4-26
图4-26
4.ARP欺骗
选择cain主界面下端的APR标签 ,点击“ ”号,在选项框中选择进行ARP欺骗的地址。左边选择被欺骗的主机,再在右边选择合适的主机(或网关),ARP能够在左边列表中被选的主机和所有在右边选中的主机之间双向劫持IP包。在该实验中首先在左侧列表中选择的地址,然后右侧列表即会出现其他IP地址,若在右侧选择网关,这样就可以截获所有从13发出到广域网的数据包信息。点击“OK”,在cain界面上可以看到形成的欺骗列表,此时在状态一栏中显示“idle”,开始欺骗点击工具栏上的“ ”状态变为“poisoning”,开始捕获。此时,在机器上进行网络操作,在12机器上会看到cain界面上显示捕获数据包的增加。如图4-27、图4-28、图4-29、图4-30
1.安装使用工具Cain
首先在局域网内某台机器上安装Cain(IP地址为)。Cain是一个功能强大的软件,可以实现网络嗅探、网络欺骗、破解加密口令、分析路由协议等功能。使用它之前必须进行安装,安装过程只需要按照默认情况安装即可。双击“Cain v2.5”,运行Cain的操作界面如图4-19:
电子科技大学微机实验报告[含思考题]河畔下的哈]实验
实验三ARM汇编实现串口通信实验1.掌握ARM 的串行口工作原理。
2.学习编程实现ARM和PC机的UART通信。
3.掌握ARM裸机下汇编语言编程方法。
1.学习串行通信原理,了解串行通信控制寄存器。
2.编程实现ARM 和计算机之间的串行通信。
1、ARM汇编基础2、ARM处理器通用IO口的操作? 硬件:ARM嵌入式开发平台,PC 机一台,并口线,串口线,JTAG板? 软件:RVDS,H-JTAG1.异步串行I/O异步串行方式是将传输数据的每个字符一位接一位(例如先低位、后高位)地传送。
数据的各不同位可以分时使用同一传输通道,因此串行I/O 可以减少信号连线,最少用一对线(输入,输出)即可进行。
2.串口通信流程串口通信就是读写寄存器的操作,通过配置相关寄存器,查询寄存器就可以操作串口通信。
需要配置的寄存器有系统时钟,UART行控制寄存器,UART控制寄存器,UART FIFO控制寄存器,UART MODEM控制寄存器,UART波特率控制寄存器;需要查询的寄存器是发送/接收状态寄存器。
1. 打开CodeWarrior for RVDS,建立一个工程,通过查S3C2440处理器手册的UART通信寄存器,serialcommutication.s文件中添加代码实现串口通信传输2. 设置工程配置选项,Language Setting->Realview Assembler和Realview Compiler中的Architecture设置为ARM920T,配置RVDS下的连接器Linker->Realview Linker中的RO Base 为0x300000003.编译和调试工程。
4. 连接PC和实验板的并口,串口;并口连接至ARM的JTAG口,串口连接至COM PORT 口;打开电源;打开H-JTAG程序(。
5. 点击调试器Dubeg->Run,运行程序,打开超级终端,在开始->程序->附件->通讯里打开超级终端,使用COM1,设置波特率115200,8位数据位,无奇偶校验,1位停止位,无数据流控制。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机专业类课程实验报告课程名称:汇编语言程序设计学院:计算机科学与工程专业:计算机科学与技术学生姓名:郭小明学号:2011060100010日期:2013年12月24日电子科技大学实验报告实验一学生姓名:郭小明学号:2011060100010一、实验室名称:主楼A2-412二、实验项目名称:汇编源程序的上机调试操作基础训练三、实验原理:DEBUG 的基本调试命令;汇编数据传送和算术运算指令MASM宏汇编开发环境使用调试方法四、实验目的:1. 掌握DEBUG 的基本命令及其功能2. 学习数据传送和算术运算指令的用法3.熟悉在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过程五、实验内容:编写程序计算以下表达式:Z=(5X+2Y-7)/2设X、Y的值放在字节变量VARX、VARY中,结果存放在字节单元VARZ中。
1.编辑源程序,建立一个以后缀为.ASM的文件.2.汇编源程序,检查程序有否错误,有错时回到编辑状态,修改程序中错误行。
无错时继续第3步。
3.连接目标程序,产生可执行程序。
4.用DEBUG程序调试可执行程序,记录数据段的内容。
六、实验器材(设备、元器件):PC机,MASM软件平台。
七、实验数据及结果分析:程序说明:功能:本程序完成Z=(5X+2Y-7)/2这个等式的计算结果求取。
其中X 与Y 是已知量,Z是待求量。
结构:首先定义数据段,两个DB变量VARX与VARY(已经初始化),以及结果存放在VARZ,初始化为?。
然后定义堆栈段,然后书写代码段,代码段使用顺序程序设计本程序,重点使用MOV和IMUL以及XOR,IDIV完成程序设计。
详细内容见程序注释。
程序清单:调试说明:将汇编语言(.asm文件)翻译为目标代码程序(.obj文件)(MASM.exe);没有出现错误或者警告,下一步进行链接,连接目标代码程序和库函数代码生成可执行程序文件(.exe文件),(LINK.exe);我们成功生成了test1.exe. 然后输入Debug命令进入调试环境,-是debug命令提示符。
我们执行-n test1.exe -l 装入我们的test1.exe 然后我们-u反汇编程序,得到程序的反汇编。
1485显然是我们的数据段逻辑地址我们来查看一下1485::0000 到1485:1111 这16个字节的内容,理论上应该是05,04,00.……00 05正是V ARX 04 正是V ARY 00 正是V ARZ正如我们所料下面是单步调试逐条执行汇编指令的操作。
现在我们执行程序(-g),然后再次查看数据段里面的内容V ARZ的内容变成了0D事实上(5*5+4*2-7)/ 2 = 13 就是0D程序框图:开始AX与AX进行异或(置零)CX与CX进行异或(置零)V ARX →AL5 →CLAL = AL * CLAL →DLAX与AX进行异或(置零)九、实验结论:通过本次实验,我们学习了解掌握了DEBUG 的基本命令及其功能,学习了数据传送和算术运算指令的用法,熟悉了在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过程。
完成了Z = (5*X + 2*Y - 7)/ 2 算术式的编程计算,使用到了以上学习到的知识,并且利用了顺序程序设计的思想。
通过本次实验,大大提升了对汇编程序设计这门课实践意义的理解,提高了编程能力和设计水平。
另外在此感谢指导老师的辛勤工作!电子科技大学实验报告实验二学生姓名:郭小明学号:2011060100010一、实验室名称:主楼A2-412二、实验项目名称:分支程序与循环程序设计三、实验原理:分支程序设计基本规范与调试方法,循环程序设计与调试方法;分配与使用寄存器的相关方法四、实验目的:1、掌握分支程序的结构。
2、掌握分支程序的设计与调试方法。
3、掌握循环程序设计与调试方法4、掌握正确分配与使用寄存器。
六、实验内容:编程实现:分别统计下列20个数中大于5、小于零和大于等于零且小于等于5的数据个数,分别存入字节单元RES1、RES2和RES3中。
BUFF DB -1, 20, 3, 30, -5, 15, 100, -54, 0, 4, 78, 99, -12, 32, 3, 23, -7, 24, 60,-51 六、实验器材(设备、元器件):PC机,MASM软件平台。
七、实验步骤:程序说明:功能:本程序完成对一个数组当中大于5,小于0以及大于等于0小于等于5的数的个数的统计。
分别存入字节单元RES1、RES2和RES3中。
结构:首先定义数据段, BUF数组的初始化,以及数组成员个数的统计以备循环时使用,以及结果存放在RES1,RES2,RES3,初始化为0。
然后定义堆栈段,然后书写代码段,代码段使用分支与循环程序设计本程序,首先通过LEA 指令获取BUF首地址,然后首地址每次加一之后就可以根据循环次数遍历整个数组,遍历的时候首先将获得数据与0进行比较,如果小于0跳转到BELOW0 (JL BELOW0)标号处执行,若不是的话再与5进行比较,如果小于等于5的话跳转到BELOW5(JLE BELOW5 ;如果小于5则跳转),再然后的话数据必然是属于大于5的范围,由此统计三类数据的个数。
详细见程序。
程序清单:调试说明:将汇编语言(.asm文件)翻译为目标代码程序(.obj文件)(MASM.exe);没有出现错误或者警告,下一步进行链接,连接目标代码程序和库函数代码生成可执行程序文件(.exe文件),(LINK.exe);我们成功生成了test1.exe. 然后输入Debug命令进入调试环境,-是debug命令提示符。
我们进入了debug程序调试环境现在我们反汇编该程序显然1485是我们数据段的首地址,我们来看看程序运行之前数据段里面的值,我们的数据段里面应该存放至20个数据值还有就是3个存放结果的值(初始都是0)正如我们所料想的。
下面是单步调试的结果。
下面我们执行程序并查看运行程序之后的数据段里面的数据值。
我们返现后面三个值变化了,确实分别记录了数组当中大于5,小于0以及大于等于0小于等于5的三类数据的个数,与事实相符,验证我们的程序设计是正确的。
得出:大于5的数据共有:10个小于0的数据共有:6个大于等于0小于等于5的数据共有4个九、实验结论:通过本次实验,掌握了分支程序的结构特点,学习了分支程序的设计和调试方法,掌握了循环程序的结构特点并学习了循环程序的设计和调试方法,本程序完成对一个数组当中大于5,小于0以及大于等于0小于等于5的数的个数的统计,运用了循环程序设计的思想,本实验的原理框图较为复杂,但是框图给出了明确的思路和解题方向,是很好的学习方法。
本次程序设计实验运用了数个跳转指令,JL ,JLE ,跳转指令在循环程序设计过程中具有很重要的特点。
另外在此感谢指导教师的辛勤工作!第二次实验共计两个程序,要求二选一,现在两个题目都做出解答(实验三实验四)如下,供老师批阅!电子科技大学实验报告实验三学生姓名:郭小明学号:2011060100010一、实验室名称:主楼A2-412二、实验项目名称:串操作及其应用程序的设计与调试运行三、实验原理:串操作程序设计基本规范与调试方法;MASM宏汇编开发环境使用方法循环程序设计与调试方法;分配与使用寄存器的相关方法五、实验目的:1、熟悉串操作指令的基本格式和使用方法。
2、掌握常用的串操作程序的设计方法。
3、熟悉串操作程序的调试运行过程七、实验内容:编程实现:编制一程序,从键盘输入两个长度不同的字符串,设字符串长度小于25个字符。
要求在屏幕上以右边对齐的方式显示出来。
六、实验器材(设备、元器件):PC机,MASM软件平台。
八、实验步骤:程序说明:功能:本程序完成两个字符串的键盘输入并且右对齐输出字符串。
结构:1、在数据段中设置两个存放显示信息的字符串,一个是提示用户输入,另一个是提示显示信息位置2、在数据段中设置两个存放输入字符串的缓冲区3、输入字符串曹勇0AH号DOS功能调用,字符串存入缓冲区时,第二个字节为实际输入字符串的长度,从第三个字节开始为字符串的ASCII码。
4、为了显示右对齐,由于两个字符串缓冲区的长度相同,只需要将两个字符串向缓冲区后面靠齐,再调用09H号DOS功能调用即可达到显示的右对齐。
程序清单:调试说明:将汇编语言(.asm文件)翻译为目标代码程序(.obj文件)(MASM.exe);没有出现错误或者警告,下一步进行链接,连接目标代码程序和库函数代码生成可执行程序文件(.exe文件),(LINK.exe);我们成功生成了test3.exe. 然后输入Debug命令进入调试环境,-是debug命令提示符。
我们进入了debug程序调试环境现在我们反汇编该程序下面是单步调试的过程下面运行该程序:正如我们所料想的。
我们输入-g 调试命令之后,提示输入字符串,在输入两个字符串之后就右对齐的输出了两个字符串。
程序框图:开始2 → CXLEA BX,STRING1CX>0?YES显示提示输入字符串的信息NOCH 异或置零获取要传送的字符串字节数送入CLMOV CL,-1[BX]MOVE九、实验结论:本实验完成了串操作指令及其应用程序的设计与调试运行实验,学习了汇编语言程序设计过程中的数据输入方法和字符串存储特点,以及利用串操作命令来将缓冲区大小一致的两个字符串右对齐输出。
本次实验很有难度,提升了我们设计复杂汇编程序的能力。
在此感谢指导教师的辛勤指导!电子科技大学实验报告实验四学生姓名:郭小明学号:2011060100010一、实验室名称:主楼A2-412二、实验项目名称:数制、码制和子程序的编制与调试三、实验原理:数制、码制和子程序设计基本规范与调试方法;MASM宏汇编开发环境使用方法;循环程序设计与调试方法;分配与使用寄存器的相关方法四、实验目的:1、熟悉子程序设计的基本格式和使用方法。
2、掌握常用的数制码制转换程序的设计方法。
3、熟悉子程序程序的调试运行过程五、实验内容:从键盘输入两个2位十进制正数,对这两个正数进行加法运算,结果以十六进制数的形式显示在屏幕上。
六、实验器材(设备、元器件):PC机,MASM软件平台。
七、实验步骤:程序说明:本实验用到了两个子程序,一个是将十进制数转换成二进制数的子程序DTOB,还有就是讲二进制数转换为十六进制数的BTOH。
在程序运行的时候我们首先输入两个十进制数,然后分别转换为二进制数(利用子程序DTOB)之后加法计算出二进制结果然后我们再利用子程序BTOH转出16进制最终结果。
程序清单:DATA SEGMENTSTR1 DB 3,0,3 DUP(?)STR2 DB 3,0,3 DUP(?)TEMPSTR DB ?RESSTR DB 0,0,'$'DATA ENDSSTACK1 SEGMENT PARA STACKDW 20H DUP(0)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,SS:STACK1,DS:DATABEGIN:MOV AX, DATA MOV DS, AXLEA DX, STR1MOV AH, 0AHINT 21HLEA DX, STR2MOV AH, 0AHINT 21HCALL DTOBCALL BTOHLEA DX, RESSTRMOV AH, 9INT 21HMOV AH, 4CHINT 21HDTOB PROCPUSH AXPUSH CXPUSH DXMOV AL, STR1+2SUB AL, 30HMOV DL, 10MUL DLADD AL, STR1+3SUB AL, 30HMOV TEMPSTR, ALMOV AL, STR2+2SUB AL, 30HMOV DL, 10MUL DLADD AL, STR2+3SUB AL, 30HADD AL, TEMPSTRMOV TEMPSTR, ALPOP DXPOP CXPOP AXRETDTOB ENDPBTOH PROCPUSH AXPUSH BXPUSH CXPUSH DXMOV CH, 2MOV DL, TEMPSTRLEA BX, RESSTR CONV: MOV CL, 4ROL DL, CLMOV AL, DLAND AL, 0FHCMP AL, 09HJLE ASCIADD AL, 07H ASCI: ADD AL, 30HMOV [BX], ALINC BXDEC CHJNE CONVPOP DXPOP CXPOP BXPOP AXRETBTOH ENDPCODE ENDSEND BEGIN调试说明:将汇编语言(.asm文件)翻译为目标代码程序(.obj文件)(MASM.exe);没有出现错误或者警告,下一步进行链接,连接目标代码程序和库函数代码生成可执行程序文件(.exe文件),(LINK.exe);我们成功生成了test4.exe. 然后输入Debug命令进入调试环境,-是debug命令提示符。