电子科技大学_汇编实验报告
电子科技大学实验报告
电子科技大学实验报告电子科技大学实验报告电子科技大学作为中国一流的电子信息科学与技术学府,以其卓越的教育质量和科研实力备受瞩目。
在这所学校里,学生们不仅接受了丰富的理论知识,更重要的是能够通过实验来巩固和应用所学的知识。
实验报告作为实验课程的重要组成部分,对学生的实验能力、分析能力和表达能力都有一定的要求。
一、实验目的与背景每个实验报告都应该明确实验的目的和背景。
在电子科技大学的实验报告中,一般会先介绍该实验所涉及的相关知识和背景,然后明确实验目的。
以“电路实验”为例,可以介绍电路的基本概念和理论知识,然后明确实验目的是通过搭建电路,观察和分析电流、电压、电阻等参数的变化规律。
二、实验装置与步骤实验报告中应该详细描述实验所用的装置和仪器,并给出实验步骤。
例如,在电路实验中,可以列出所用的电源、电阻、电流表、电压表等装置,并详细说明实验的具体步骤,包括搭建电路的过程、调节参数的方法以及观察数据的记录方式。
三、实验结果与数据分析实验结果是实验报告的重要部分,学生需要将实验过程中所得到的数据进行整理和分析。
在电子科技大学的实验报告中,学生可以通过绘制图表、计算数据等方式来展示实验结果。
例如,在电路实验中,可以通过绘制电流与电压的关系曲线图来展示实验结果,并根据曲线的趋势和数据的变化来分析电路的特性和规律。
四、实验讨论与结论实验讨论是实验报告中的重要环节,学生可以在这一部分对实验结果进行讨论和解释。
例如,在电路实验中,学生可以通过比较实验数据和理论计算结果的差异,来分析实验误差的原因,并提出改进的方法。
最后,学生需要总结实验的结论,并对实验的意义和应用进行简要的说明。
五、实验心得与改进意见实验心得是学生对实验过程和结果的个人感悟和体会,可以在实验报告的最后部分进行阐述。
学生可以谈论自己在实验中遇到的困难和解决方法,以及对实验过程和结果的评价。
同时,学生还可以提出对实验的改进意见,以便于今后的实验能够更加顺利和有效地进行。
电子科技大学微机实验报告-实验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 的循环点亮。
电子科大 实验报告
电子科大实验报告电子科技大学实验报告引言:电子科技大学作为中国著名的高等学府,以其卓越的教学质量和科研实力享誉全国。
在这里,学生们接受着严格的实验训练,以提升他们的科学研究能力和实践技巧。
本文将对电子科技大学的实验教学进行探讨,以及对我个人在实验中的体验和收获进行分享。
实验教学的重要性:实验教学在高等教育中具有重要的地位。
通过实验,学生们能够亲自动手操作,观察现象,进行数据采集和分析,从而深入理解课堂上学到的理论知识。
实验教学不仅培养了学生的动手能力和实践能力,还锻炼了他们的团队合作和解决问题的能力。
因此,电子科技大学高度重视实验教学,为学生提供了丰富多样的实验项目和设备。
实验室设备的先进性:电子科技大学实验室设备的先进性也是其实验教学的一大特点。
学校投入大量资金购置了各种先进的实验仪器和设备,以满足学生的学习需求。
例如,在电子信息工程专业的实验室中,学生们可以使用高性能的示波器、信号发生器和频谱分析仪等设备进行电路实验和信号处理实验。
这些设备不仅提供了实验所需的基本功能,还具备了一些高级功能,使得学生们能够更好地进行实验研究。
实验项目的多样性:电子科技大学的实验项目种类繁多,涵盖了各个专业领域。
学生们可以根据自己的兴趣和专业方向选择适合自己的实验项目。
例如,在通信工程专业的实验室中,学生们可以进行无线通信实验、光纤通信实验等;在计算机科学与技术专业的实验室中,学生们可以进行网络安全实验、人工智能实验等。
这些实验项目既能够帮助学生巩固课堂上学到的知识,又能够拓宽他们的实践经验。
个人实验体验与收获:我作为一名电子信息工程专业的学生,在电子科技大学的实验教学中获得了很多宝贵的经验和收获。
首先,通过亲自动手操作实验仪器,我深入了解了电路的工作原理和信号的处理方法。
其次,实验教学锻炼了我的团队合作和沟通能力,因为在实验中,我们需要与同组的同学密切合作,共同解决实验中遇到的问题。
最后,实验教学培养了我解决问题的能力。
汇编语言实验报告
汇编语言实验报告
1. 实验简介
本次实验是针对汇编语言的学习和实践,在实验中,我们将学习如何使用汇编语言编写程序、调试程序,并通过一系列实例来练习和巩固所学知识。
2. 实验目的
(这一部分可以根据实际情况来写,列举实验的具体目的和要求)
3. 实验环境及工具
(介绍实验所使用的软件环境和工具,如:编译器、调试器)
4. 实验步骤
(根据实验内容具体描述实验步骤,可以分为多个小节)
4.1 准备工作
在开始实验之前,需要进行一些准备工作,包括安装编译器、创建工作环境等。
4.2 实验一:简单的汇编程序
本实验通过编写一个简单的汇编程序来熟悉汇编语言的基本语法和指令集,包括数据传送、算术运算、逻辑运算等。
4.3 实验二:汇编程序的调试
在实验二中,我们将学习如何使用调试器对汇编程序进行调试,包括设置断点、查看变量值、单步执行等操作。
4.4 实验三:汇编程序的优化
本实验将通过优化代码来提高程序的执行效率,包括减少指令的使用、优化循环结构等。
5. 实验结果与分析
(对实验的结果进行总结和分析,可以包括程序的输出结果、性能分析等)
6. 实验总结
(针对本次实验的收获和心得体会进行总结,可以包括对汇编语言的理解、解决问题的思路等)
7. 实验感想
(对本次实验的感想和建议,如实验过程中遇到的困难、改进的方向等)
8. 参考文献
(列出本报告中所引用的参考文献)
注:该文章只是按照题目提示给出了一个大致的框架和构思,实际根据具体的实验内容和要求来编写每个小节的详细内容。
希望对你有所帮助!。
电子科大实验报告
一、实验名称计算机组成原理实验二、实验目的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. 通过搭建计算机硬件系统,了解了计算机各个部件的功能和相互关系,掌握了计算机硬件系统的基本原理。
汇编实验报告
汇编实验报告一、实验目的本次汇编实验的主要目的是深入理解计算机底层的工作原理,掌握汇编语言的基本语法和编程技巧,能够运用汇编语言编写简单的程序来实现特定的功能。
通过实践操作,提高对计算机体系结构的认识,培养解决实际问题的能力。
二、实验环境本次实验使用的操作系统为 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 )时的波形。
汇编实验报告一实验总结
汇编实验报告一实验总结
实验报告一:汇编实验总结
实验目的:通过汇编实验,掌握汇编语言的基本语法和编程技巧,加深对计算
机底层工作原理的理解。
实验过程:在实验中,我们首先学习了汇编语言的基本语法和指令格式,包括
寄存器的使用、内存地址的访问、算术运算和逻辑运算等。
随后,我们进行了
一系列的编程练习,包括编写简单的程序来实现加法、乘法、比较大小等功能。
在实验的最后阶段,我们还学习了如何调用系统中断来实现输入输出操作。
实验结果:通过本次实验,我们深入了解了汇编语言的编程技巧和应用场景。
我们不仅掌握了汇编语言的基本语法,还学会了如何编写简单的汇编程序来实
现一些基本的功能。
同时,通过实验,我们对计算机底层的工作原理有了更深
入的理解,对计算机系统的运行机制有了更清晰的认识。
实验总结:本次汇编实验让我们深入了解了汇编语言的基本知识和编程技巧,
为我们今后的学习和工作打下了坚实的基础。
通过实验,我们不仅学会了如何
使用汇编语言编写程序,还对计算机系统的底层工作原理有了更深入的理解。
希望在今后的学习和工作中,我们能够继续深入研究汇编语言,不断提高自己
的编程水平,为计算机科学技术的发展贡献自己的力量。
电子科技大学微机实验报告[含思考题]河畔下的哈]实验
实验三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位停止位,无数据流控制。
汇编实验报告3
汇编实验报告3汇编实验报告3引言:汇编语言是一种低级语言,用于编写计算机程序。
在本次实验中,我们将继续学习和实践汇编语言的基本概念和技术。
本报告将详细记录我们在实验过程中所遇到的问题、解决方案和实验结果。
实验目的:本次实验的主要目的是加深对汇编语言的理解,并通过实践掌握汇编语言的基本操作和调试技巧。
通过完成实验,我们将能够编写简单的汇编程序,理解程序的执行过程和内存的使用。
实验环境:本次实验使用的是x86架构的计算机,并使用MASM汇编器进行程序的编译和链接。
我们还使用了调试器来跟踪程序的执行过程。
实验步骤:1. 阅读实验指导书和相关资料,了解本次实验的要求和目标。
2. 编写一个简单的汇编程序,实现两个数的相加功能。
程序首先要求用户输入两个数,然后将其相加并输出结果。
3. 使用MASM汇编器将程序源代码编译成目标文件。
4. 使用链接器将目标文件与运行时库链接,生成可执行文件。
5. 运行程序,并验证程序的正确性。
如果程序不能正常工作,使用调试器进行调试,找出问题的原因并进行修复。
6. 记录实验结果和遇到的问题,撰写实验报告。
实验结果:我们编写了一个简单的汇编程序,成功实现了两个数的相加功能。
程序能够正确地接收用户输入的两个数,并将其相加后输出结果。
我们通过多次测试,验证了程序的正确性。
实验中遇到的问题及解决方案:在实验过程中,我们遇到了一些问题,下面是其中的两个例子以及我们的解决方案:1. 问题:在程序运行过程中,无法正确接收用户输入的数值。
解决方案:我们仔细检查了程序的输入部分,发现在读取用户输入时,没有正确设置输入缓冲区的大小。
通过增大缓冲区的大小,我们成功解决了这个问题。
2. 问题:程序输出的结果不正确。
解决方案:我们使用调试器跟踪程序的执行过程,发现在进行相加操作时,寄存器的值被错误地覆盖了。
经过进一步的调试,我们发现这是因为在进行相加操作之前,没有正确地保存寄存器的值。
通过添加保存和恢复寄存器值的代码,我们成功解决了这个问题。
汇编实验报告终
实验一汇编语言源程序的输入一、实验目的1.通过实验了解和熟悉微机系统的配置。
2.学习在DEBUG状态下输入汇编源程序的方法。
3.初步掌握调试(在DEBUG状态下)的过程。
二、实验原理1. 本实验要求在DEBUG状态下输入汇编源程序,并用DEBUG命令进行调试。
用单步跟踪的方法验证指令的功能。
2. 以下是给定的参考程序,并在实验时在每条指令的“;”符号右边按要求填写指令的执行结果。
注:⑴微机进入DEBUG状态下之后,一切立即数和地址数据均被默认为十六进制数,在输入时数的后面不加后缀“H”;⑵在DEBUG状态下执行程序时,“INT 20H”指令可使系统执行完该指令前的程序时返回到“-”提示符状态,并且恢复CS和IP寄存器原来的值。
参考程序:MOV AX, 2000 ; AL= 00HMOV DS, AX ; DS= 2000HNOT AX ; AX= DFFFHXOR AX, AX ; AX= 0000HDEC AX ; AX= FFFFHINC AX ; AX= 0000HMOV BX, 2030 ; BH= 20HMOV SI, BX ; SI= 2030HMOV [SI], BL ; [2030H]= 30HMOV WORD PTR[SI], 10F ; [2030H]= 0FH[2031H]= 01H MOV DI, SI ; DI= 2030HMOV [DI+50], BH ; [DI+50H]= 20HMOV BH, [SI] ; BH= 0FHMOV BL, [DI+50] ; BL= 20HMOV SP, 5000PUSH AX ; AX= 0000H[SS:4FFEH]= 00H[SS:4FFFH]= 00HPUSH BX ; BX= 0F20H[SS:4FFCH]=20H [SS:4FFDH]= 0FHPOP AX ; AX= 0F20HPOPF ; F= 00000000NEG BX ; BX= F0E0HXCHG BX, AX ; BX= 0F20HSTD ; F= 01010001STI ; F= 01110001CLD ; F= 00110001CLI ; F= 00010001ADC DI, 2050 ; DI= 4081H F= 00000010 //执行过程中考虑上一条指令的进位标志2030【BI】+2050+1(上一条指令的进位标志)ADC SP, DI ; SP= 9081H F= 10010010 ADC AX, 1500 ; AX= 05E0H F= 00000001 SUB AX, BX ; AX= F6C0H BX= 0F20H SHL AH, 1 ; AH= ECHRCL AX, 1 ; AX= D981HSHR BH, 1 ; BH= 07HRCR BL, 1 ; BL= 90HMOV CL, 4MOV DX, 80F0ROL DX, CL ; DX= 0F08H CL= 04HINT 20 ; CS= 00A7H IP= 1072H实验二数据的建立与传送程序一、实验目的1. 继续学习DEBUG命令。
电子科技大学实验报告可编辑
电 子 科 技 大 学实 验 报 告一、 实验室名称: 电子技术综合实验室二、 实验项目名称:现代电子技术综合实验三、 实验学时: 40四、 实验目的与任务:1、 熟悉系统设计与实现原理2、 掌握KEIL C51的基本使用方法3、 熟悉SMART SOPC 实验箱的应用4、 连接电路,编程调试,实现各部分的功能5、 完成系统软件的编写与调试五、 实验器材1、 PC 机一台2、 示波器、SMART SOPC 实验箱一套六、 实验原理、步骤及内容(一)试验要求1、程序开始后:当只有第1个发光二极管亮时,同时第1个数码管显示数字1,其余显示”-”;持续0.5秒之后,只有第2个发光二极管亮,电子科技大学实验报告【最新资料,WORD 文档,可编辑修改】同时第2个数码管显示数字2,其余显示”-”;再过0.5秒,只有第3个发光二极管亮,同时第3个数码管显示数字3,其余显示”-”;……;间隔0.5秒后,只有第8个发光二极管亮,同时第8个数码管显示数字8,其余显示”-”。
此后进入循环状态。
循环过程中,按按键进入任务2。
2、停止任务1中发光二极管显示,数码管的第1、2位显示学号最后二位,第4、5位显示电机转速(初始转速30)。
第7、8位实现秒表功能,从5.0开始倒计时,计时到0.0后程序自动进入任务3.3、数码管的第1、2位显示电机转速,第3、4 、5、6位显示”-”, 第7、8位显示二位电压值(0.0~2.4V),增减调节电压值,电机转速(初始转速30)能够跟随电压增减以10倍变化量(0~24),进行加减速变化。
按按键进入任务1。
(二)实验内容1、硬件设计PDIP40封装80C51引脚布局图SmartSOPC相配套的基于8051单片机的Quick51核心板2、各部分硬件原理数码管动态扫描原理:动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。
选亮数码管采用动态扫描显示。
所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。
汇编实验一 实验报告
实验一查看CPU和内存用机器指令和汇编指令编程
一、实验目的
1.掌握debug的使用方法,会用基本的D,R命令查看、显示内存和寄存器
2.了解汇编指令编程的方法。
二、实验任务
1检查在存储器低端的BIOS数据区的内容。
(1)检查串行与并行端口
(2)检查系统设备
(3)检查键盘Shift状态
(4)检查显示状态
2 考察ROM BIOS
目的:检查在存储器高端的ROM BIOS中的数据。
(1)检查版本通告
(2)检查ROM BIOS数据
3.用D、R命令查看、显示内存和寄存器,可对寄存器内容进行修改。
三、实验结果及分析
1、检查在存储器低端的BIOS数据区的内容
(1)检查串行与并行端口
说明:检查后发现有四个串行端口,分别是03F8、02F8、03E8、02E8;并行端口也有四个,分别是03BC、03BC、0378、0278、9FC0
(2)检查系统设备
(3)检查键盘Shift状态
(4)检查显示状态
2、考察ROM BIOS (1)检查版本通告
(2)检查ROM BIOS数据
3、用D、R命令查看、显示内存和寄存器,可对寄存器内容进行修改
四、实验总结(心得、体会)
1、通过对检查在存储器低端的BIOS数据区的内容的查看,可以了解计算机的各种状态,而考察ROM BIOS可以鉴定计算机的出厂信息。
2、通过用D、R命令查看、显示内存和寄存器,可以了解计算机运行的过程步骤,并且可以通过偏移地址读取内容。
3、在读取时需要注意的是,在DEBUG显示中是低位至高位的显示,而我们需要的是高位至低位的显示方式,所以在操作时对于双字节的读取,需要将前后字节地址内容互换。
汇编 实验报告
汇编实验报告汇编实验报告引言:汇编语言是一种低级语言,用于编写计算机程序。
在计算机科学领域中,汇编语言是一门重要的学科,它可以帮助我们更深入地了解计算机的内部工作原理。
本实验报告将介绍我在学习汇编语言过程中的实验经历和所学到的知识。
实验一:汇编语言的基本概念在本实验中,我首先学习了汇编语言的基本概念。
汇编语言是一种用于编写机器指令的低级语言,它直接操作计算机的硬件。
通过学习汇编语言,我了解了计算机内存、寄存器、指令和数据的存储方式,并学会了如何编写简单的汇编程序。
实验二:汇编语言的数据表示在这个实验中,我学习了汇编语言中的数据表示方法。
汇编语言中的数据可以用不同的方式表示,例如二进制、十进制和十六进制。
我还学习了如何使用数据寄存器和内存寻址来处理不同类型的数据。
实验三:汇编语言的指令集在本实验中,我学习了汇编语言的指令集。
汇编语言中的指令可以分为数据传送指令、算术运算指令、逻辑运算指令和控制指令等多种类型。
通过学习不同类型的指令,我可以编写更加复杂和功能强大的汇编程序。
实验四:汇编语言的程序设计在这个实验中,我学习了如何使用汇编语言进行程序设计。
通过学习汇编语言的程序设计技巧,我可以编写出高效、精确和可靠的程序。
我还学习了如何使用子程序、循环和条件语句等控制结构来实现不同的功能。
实验五:汇编语言的调试和优化在本实验中,我学习了如何调试和优化汇编语言程序。
调试是指在程序运行过程中发现并修复错误的过程,而优化则是指对程序进行性能提升的过程。
通过学习调试和优化技巧,我可以提高程序的效率和可靠性。
结论:通过这些实验,我对汇编语言有了更深入的了解。
汇编语言虽然复杂,但它可以帮助我们更好地理解计算机的内部工作原理,并且可以编写出高效、精确和可靠的程序。
通过学习汇编语言,我不仅提升了自己的编程能力,还对计算机科学有了更全面的认识。
我相信,在今后的学习和工作中,汇编语言将会发挥重要的作用。
汇编实验报告
实验一(1)熟悉汇编语言程序调试环境及顺序程序设计一、实验目的及要求:1.学习及掌握汇编语言源程序的书写格式和要求,明确程序中各段的功能和相互之间的关系。
2.学会使用EDIT、MASM、LINK、DEBUG等软件工具。
3.熟练掌握在计算机上建立、汇编、连接、调试及运行程序的方法。
二、熟悉汇编语言程序调试环境1.汇编语言源程序的建立本例中给出的程序是要求从内存中存放的10个无符号字节整数数组中找出最小数,将其值保存在AL寄存器中。
设定源程序的文件名为ABC。
DATA SEGMENTBUF DB 23H,16H,08H,20H,64H,8AH,91H,35H,2BH,7FHCN EQU $-BUFDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: PUSH DSXOR AX,AXPUSH AXMOV AX,DATAMOV DS,AXMOV BX,OFFSET BUFMOV CX,CNDEC CXMOV AL,[BX]INC BXLP: CMP AL,[BX]JBE NEXTMOV AL,[BX]NEXT: INC BXDEC CXJNZ LPMOV AH,4CHINT 21HCODE ENDSEND START键入以下命令:C:\>EDIT ABC.ASM此时屏幕的显示状态如图1所示。
图1 用EDIT编辑ABC.ASM程序窗口程序输入完毕后一定要将源程序文件存入盘中,以便进行汇编及连接,也可以再次调出源程序进行修改。
2.将源程序文件汇编成目标程序文件一般情况下,MASM汇编程序的主要功能有以下3点:(1)检查源程序中存在的语法错误,并给出错误信息。
(2)源程序经汇编后没有错误,则产生目标程序文件,扩展名为.OBJ。
(3)若程序中使用了宏指令,则汇编程序将展开宏指令。
源程序建立以后,在DOS状态下,采用宏汇编程序MASM对源程序文件进行汇编,其操作过程如图2所示。
电子科技大学_汇编实验报告
电子科技大学计算机工程学院标准实验报告(实验)课程名称电子科技大学教务处制表电子科技大学实验报告实验一学生姓名:穆萨·图拉克学号:2012060090033 指导教师:实验地点:主楼A2-412 实验时间:19:00~一、实验室名称:二、实验项目名称:汇编源程序的上机调试操作基础训练三、实验学时:四、实验原理:(包括知识点,电路图,流程图)DEBUG 的基本调试命令;汇编数据传送和算术运算指令MASM宏汇编开发环境使用调试方法五、实验目的:1. 掌握DEBUG 的基本命令及其功能2. 学习数据传送和算术运算指令的用法3. 熟悉在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过程六、实验内容:(介绍自己所选的实验内容)1. DEBUG命令的使用2. 程序的调试与运行3. 编写程序计算以下表达式:Z=(5X+2Y-7)/2设X、Y的值放在字变量V ARX、V ARY中,结果存放在字节单元V ARZ中。
七、实验器材(设备、元器件):WinXP PC机,MASM,50 ,VisulASM软件平台。
八、实验步骤:(编辑调试的过程)1.编辑源程序,建立一个以后缀为.ASM的文件.2.汇编源程序,检查程序有否错误,有错时回到编辑状态,修改程序中错误行。
无错时继续第3步。
3.连接目标程序,产生可执行程序。
4.用DEBUG程序调试可执行程序,记录数据段的内容。
九、实验数据及结果分析:(实验运行结果介绍或者截图,对不同的结果进行分析)程序说明:功能:本程序完成Z=(5X+2Y-7)/2这个等式的计算结果求取。
其中X 与Y是已知量,Z是待求量。
结构:首先定义数据段,两个DB变量VARX与VARY(已经初始化),以及结果存放在VARZ,初始化为?。
然后定义堆栈段,然后书写代码段,代码段使用顺序程序设计本程序,重点使用MOV和IMUL以及XOR,IDIV完成程序设计。
详细内容见程序注释。
程序清单:DATA SEGMENTVARX DB10VARY DB10VARZ DB?DATA ENDSSTACK SEGMENT PARA STACKSTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKMAIN:MOV AX,DATAMOV DS,AXMOV AL,VARXMOV AH,VARYSAL AL,1SAL AL,1ADD AL,VARXSAL AH,1ADD AL,AHSUB AL,7SAR AL,1MOV VARZ,ALMOV AH,4CHINT21HCODE ENDSEND MAIN程序框图:结束调试说明:将汇编语言(.asm文件)通过masm命令转换为目标程序(.obj 文件),通过link命令转换为目标程序可执行程序(.exe文件); 这次试验还要用-p参数以及d参数显示结果为:十、实验结论:(联系理论知识进行说明)通过本次实验,我们学习了解掌握了DEBUG 的基本命令及其功能,学习了数据传送和算术运算指令的用法,熟悉了在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过程。
汇编实验报告6
汇编实验报告6汇编实验报告6引言:汇编语言是一种底层编程语言,它直接操作计算机硬件,提供了对计算机底层资源的更精确控制。
在本次实验中,我们将继续学习和实践汇编语言的相关知识,探索其在计算机系统中的作用和应用。
一、实验目的本次实验旨在加深我们对汇编语言的理解,并通过实践进一步掌握汇编语言的基本概念、语法和应用。
具体目标如下:1. 掌握汇编语言的基本指令和寻址方式;2. 理解和实现简单的汇编程序;3. 学会使用调试工具调试汇编程序。
二、实验环境本次实验使用的环境为Windows操作系统和MASM汇编器。
在实验开始前,我们需要确保已经正确安装了MASM汇编器,并配置好了相关环境变量。
三、实验过程1. 编写程序本次实验我们将编写一个简单的汇编程序,实现两个数相加并输出结果的功能。
首先,我们需要使用文本编辑器打开一个新的文件,并保存为.asm格式。
接下来,我们将按照汇编语言的语法规则,逐步编写程序。
2. 汇编程序的结构一个标准的汇编程序由三个部分组成:数据段、代码段和堆栈段。
在数据段中,我们定义了需要使用的变量和常量;在代码段中,我们编写了实际的汇编指令;而堆栈段则用于存储程序执行过程中的临时数据。
3. 汇编指令的使用在本次实验中,我们将使用一些常见的汇编指令,如MOV、ADD、SUB等。
这些指令用于操作寄存器、内存和立即数,实现数据的传输、运算和比较等功能。
4. 调试程序编写完汇编程序后,我们需要使用调试工具对程序进行调试,以确保程序的正确性。
调试工具可以帮助我们逐条执行程序,并查看寄存器和内存的变化,从而找出程序中的错误。
四、实验结果与分析经过编写和调试,我们成功地实现了两个数相加并输出结果的功能。
我们可以通过调试工具查看程序执行过程中寄存器和内存的变化,以验证程序的正确性。
同时,我们还可以对程序进行性能分析,了解其在不同输入情况下的执行效率。
五、实验总结通过本次实验,我们深入学习了汇编语言的基本概念和应用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子科技大学计算机工程学院标准实验报告(实验)课程名称电子科技大学教务处制表电子科技大学实验报告实验一学生姓名:穆萨·图拉克学号:2012060090033 指导教师:实验地点:主楼A2-412 实验时间:19:00~一、实验室名称:二、实验项目名称:汇编源程序的上机调试操作基础训练三、实验学时:四、实验原理:(包括知识点,电路图,流程图)DEBUG 的基本调试命令;汇编数据传送和算术运算指令MASM宏汇编开发环境使用调试方法五、实验目的:1. 掌握DEBUG 的基本命令及其功能2. 学习数据传送和算术运算指令的用法3. 熟悉在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过程六、实验内容:(介绍自己所选的实验内容)1. DEBUG命令的使用2. 程序的调试与运行3. 编写程序计算以下表达式:Z=(5X+2Y-7)/2设X、Y的值放在字变量V ARX、V ARY中,结果存放在字节单元V ARZ中。
七、实验器材(设备、元器件):WinXP PC机,MASM,50 ,VisulASM软件平台。
八、实验步骤:(编辑调试的过程)1.编辑源程序,建立一个以后缀为.ASM的文件.2.汇编源程序,检查程序有否错误,有错时回到编辑状态,修改程序中错误行。
无错时继续第3步。
3.连接目标程序,产生可执行程序。
4.用DEBUG程序调试可执行程序,记录数据段的内容。
九、实验数据及结果分析:(实验运行结果介绍或者截图,对不同的结果进行分析)程序说明:功能:本程序完成Z=(5X+2Y-7)/2这个等式的计算结果求取。
其中X 与Y是已知量,Z是待求量。
结构:首先定义数据段,两个DB变量VARX与VARY(已经初始化),以及结果存放在VARZ,初始化为?。
然后定义堆栈段,然后书写代码段,代码段使用顺序程序设计本程序,重点使用MOV和IMUL以及XOR,IDIV完成程序设计。
详细内容见程序注释。
程序清单:DATA SEGMENTVARX DB10VARY DB10VARZ DB?DATA ENDSSTACK SEGMENT PARA STACKSTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKMAIN:MOV AX,DATAMOV DS,AXMOV AL,VARXMOV AH,VARYSAL AL,1SAL AL,1ADD AL,VARXSAL AH,1ADD AL,AHSUB AL,7SAR AL,1MOV VARZ,ALMOV AH,4CHINT21HCODE ENDSEND MAIN程序框图:结束调试说明:将汇编语言(.asm文件)通过masm命令转换为目标程序(.obj 文件),通过link命令转换为目标程序可执行程序(.exe文件); 这次试验还要用-p参数以及d参数显示结果为:十、实验结论:(联系理论知识进行说明)通过本次实验,我们学习了解掌握了DEBUG 的基本命令及其功能,学习了数据传送和算术运算指令的用法,熟悉了在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过程。
完成了Z = (5*X + 2*Y - 7)/ 2 算术式的编程计算,使用到了以上学习到的知识,并且利用了顺序程序设计的思想。
通过本次实验,大大提升了对汇编程序设计这门课实践意义的理解,提高了编程能力和设计水平。
报告评分:指导教师签字:电子科技大学实验报告实验二学生姓名:穆萨·图拉克学号:2012060090033 指导教师:实验地点:主楼A2-412 实验时间:19:00~一、实验室名称:二、实验项目名称:分支程序与循环程序设计三、实验学时:四、实验原理:(包括知识点,电路图,流程图)分支程序设计基本规范与调试方法,循环程序设计与调试方法;分配与使用寄存器的相关方法五、实验目的:1. 掌握分支程序的结构。
2. 掌握分支程序的设计与调试方法。
3. 掌握循环程序设计与调试方法4. 掌握正确分配与使用寄存器。
六、实验内容:(介绍自己所选的实验内容)1. 根据输入的字母进行大小写转换(若是输入小写字母则转换成为大写字母,反之),若输入的不是字母则提示出错并重新输入。
2. 从键盘上输入三个一位十进制数,将其中大于均值的数显示出来。
3. 显示九九表(任意形式均可)4. 键盘输入1-7,对应输出Monday-Sunday。
七、实验器材(设备、元器件):WinXP PC机,MASM,50 ,VisulASM软件平台。
八、实验步骤:(编辑调试的过程)1. 编写源程序文件;2. 汇编,若发现语法错误或者格式错误则修改;3. 链接,形成可执行文件;4. 运行程序,得到正确结果;5. 撰写实验报告:1)实验目的;2)实验要求;3)实验步骤;4)实验中涉及知识介绍;5)画出流程图;6. 写出源程序清单,并附注释;7. 写出调试过程及运行结果并分析;8. 总结实验中遇到的问题及解决方法;九、实验数据及结果分析:(实验运行结果介绍或者截图,对不同的结果进行分析)程序说明:本程序完成求九九乘法表,就相当于C语言中用两个for循环程序清单:data SEGMENTa DB1b DB?data ENDScode SEGMENTASSUME CS:code,DS:datamain:MOV AX,data;MOV DS,AXloop1: ;循环标志MOV AL,a;MOV CL,AL;MOV b,1;loop_in:MOV AH,2;OR b,30h;MOV DL,bINT21hMOV DL,'*';INT21hOR a,30h;MOV DL,a; ;a的或运算存放到DL中MOV AH,2INT21hMOV DL,'=';INT21hSUB a,30h;SUB b,30h;MOV AL,a;a*MOV BL,b;bMUL BL ;a*b赋给BL寄存器MOV BL,10;DIV BL ;AL/BL %->ah,/->alMOV BL,AH;MOV AH,2CMP AL,00h; ;AL的内容与0比较JE loop2;OR AL,30h;MOV DL,ALINT21Hloop2:OR BL,30h;MOV AH,2MOV DL,BLINT21hMOV AH,2MOV DL,' 'INT21hINC bLOOP loop_in ;跳转到loop_in标志位置MOV AH,2MOV DL,13INT21hMOV AH,2MOV DL,10INT21hINC aCMP a,10JB loop1MOV AH,4chINT21hcode ENDSEND main程流程图:调试说明:将汇编语言(.asm文件)通过masm命令转换为目标程序(.obj 文件),通过link命令转换为目标程序可执行程序(.exe文件);显示结果为:十、实验结论:(联系理论知识进行说明)通过本次实验,掌握了分支程序的结构特点,学习了分支程序的设计和调试方法,掌握了循环程序的结构特点并学习了循环程序的设计和调试方法,运用了循环程序设计的思想,本实验的原理框图较为复杂,但是框图给出了明确的思路和解题方向,是很好的学习方法。
本次程序设计实验运用了数个跳转指令,JL ,JLE ,跳转指令在循环程序设计过程中具有很重要的特点。
报告评分:指导教师签字:电子科技大学实验报告实验三学生姓名:穆萨·图拉克学号:2012060090033 指导教师:实验地点:主楼A2-412 实验时间:19:00~一、实验室名称:二、实验项目名称:数制、码制和子程序的编程与调试三、实验学时:四、实验原理:(包括知识点,电路图,流程图)数制、码制和子程序设计基本规范与调试方法;MASM宏汇编开发环境使用方法;循环程序设计与调试方法;分配与使用寄存器的相关方法五、实验目的:1. 熟练掌握编写汇编语言原程序的基本方法和基本框架。
2. 熟练使用DEBUG调试程序。
3. 掌握十六进制数与ASCII码之间,ASCII码与BCD码之间的转换。
4. 掌握用DOS功能调用,实现字符的输入和显示。
5. 掌握子程序的编程与调试方法。
六、实验内容:(介绍自己所选的实验内容)1、从键盘输入两个2位十进制正数,相加,结果以十六进制数形式显示在屏幕上。
(要求结果显示完整的算式)2、从键盘输入两个2位十进制正数转换成组合BCD码后,相加,结果以十进制形式显示在屏幕上。
(要求结果显示完整的算式)3、从键盘输入两个2位十六进制数,相加,结果以十进制形式显示在屏幕上。
(要求结果显示完整的算式)七、实验器材(设备、元器件):WinXP PC机,MASM,50 ,VisulASM软件平台。
八、实验步骤:(编辑调试的过程)1、程序说明。
说明程序的功能、结构。
2、调试说明。
包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。
3、写出源程序清单(含注解)和执行结果(截图)。
4、画出对应的流程图九、实验数据及结果分析:(实验运行结果介绍或者截图,对不同的结果进行分析)程序说明:本实验输入两个子程序,一个是将十六进制数转换成二进制数的子程序,还有就是讲二进制数转换为十进制数的。
在程序运行的时候我们首先输入两个十六进制数,然后分别转换为二进制数(利用子程序)之后加法计算出二进制结果然后我们再利用子程序B 转出十进制最终结果。
程序清单:DATA SEGMENTMSG1 DB13,10,'Please input hex number_1: $';输入提示字符串MSG2 DB13,10,'Please input hex number_2: $';输入提示字符串CRLF DB13,10,'$'NN DB?,?MM DB?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX, DATAMOV DS,AXLEA DX, MSG1MOV AH,9INT21HCALL IN_CHAR ;调用IN_CHARMOV MM,ALLEA DX, MSG2 ;MOV AH,9INT21H ;返回DOSCALL IN_CHARMOV NN,ALLEA DX, CRLFMOV AH,9INT21HMOV AL, MMCALL OUT_NUMMOV DL,'+'MOV AH,2INT21HMOV AL, NNCALL OUT_NUMMOV DL,'='MOV AH,2INT21HMOV AL, NNADD AL, MM ;MN与NN相加MOV AH,0ADC AH,0 ;带进位的相加CALL OUT_1EXIT:MOV AH,4CHINT21H;返回DOSIN_CHAR:LEA BX, NNMOV CX,2IN_1:MOV AH,1;调用1号功能,键盘输入数据INT21HCMP AL,'0';判断位变量转移JB IN_1CMP AL,'F'JA IN_1CMP AL,'9'JBE LNUMCMP AL,'A'JB IN_1SUB AL,7LNUM:SUB AL,30HMOV[BX],ALINC BXLOOP IN_1XCHG AL, NNMOV BL,16MUL BLADD AL, NNRETOUT_NUM:MOV AH,0;存放计算结果OUT_1:MOV DX,0程序框图:调试说明:将汇编语言(.asm文件)通过masm命令转换为目标程序(.obj 文件),通过link命令转换为目标程序可执行程序(.exe文件); 显示结果为:十、实验结论:(联系理论知识进行说明)本实验完成了数制,码制子程序调试设计及其应用程序的设计与调试运行实验,学习了汇编语言程序设计过程中的数据输入方法和字符串存储特点,以及利用码制转换将两个十六进制数相加并以十进制形式输出。