实验二_综合程序的编写与调试实验
实验二_指令系统相关程序的编写与调试实验
重庆大学学生实验报告实验课程名称汇编语言程序设计开课实验室DS1502学院软件学院年级16 专业班软件工程5班学生姓名吉沼橙学号********开课时间2017 至2018 学年第 1 学期软件工程学院制《汇编语言程序设计》实验报告Add sp,4Pop axPop bxPush axPush bxPop axPop bxMov ah,4chInt 21h Code endsEnd start先转换成asm格式然后转换成obj格式然后转换成exe格式(2)用debug跟踪lab2.exe 的执行过程,写出每一步执行后,相关寄存器中的内容和栈顶的内容。
开始每一步的执行:1:AX=20002:SS=20003:SP=00044: AX=0000 SP=00065: BX=0000 SP=00086.7:AX与BX入栈SP由0008到00048:AX与BX出栈SP由0004到0008(5)习题:3.37 -教材114页。
MOV AL, STATUSAND AL, 00010101B ;只保留第1、3、5位CMP AL, 00010101BJZ ROUTINE_1 ;3位全为1转ROUTINE_1JZ ROUTINE_2 ;两位为1转ROUTINE_2 JZ ROUTINE_3 ;1位为1转ROUTINE_3JZ ROUTINE_4 ;3位全为0转ROUTINE_4 ROUTINE_3:JMP EXITROUTINE_1:JMP EXITROUTINE_2:JMP EXITROUTINE_4:EXIT: INT 21H。
汇编语言指令及伪指令练习的实验报告总结(范文)
汇编语言指令及伪指令练习的实验报告总结汇编语言指令及伪指令练习的实验报告总结篇一:汇编语言实验报告福建农林大学金山学院课程名称:姓名:系:专业:年级:学号:指导教师:职称: (程序设计类课程) 实验报告汇编语言 201X~201X学年第二学期实验项目列表福建农林大学金山学院实验报告系:专业:年级:姓名:学号:实验课程:汇编语言实验室号:_ _1#605 实验设备号: I3 实验时间:201X.4.25指导教师签字:成绩:实验一汇编程序的汇编及运行1.实验目的和要求 (1)熟悉汇编程序的汇编、连接、执行过程;(2)生成LST文件,查看L ST文件;(3)生成BJ文件,修改语法错误;(4)生成EXE文件;(5)执行程序。
2.实验环境 IBM—PC机及其兼容机;实验的软件环境是:操作系统: DS2.0以上;调试程序: DEBUG.CM;文本编程程序: EDIT.EXE、PS.EXE;宏汇编程序:MA SM.EXE(或AS M .EXE);连接装配程序:L INK .EXE;交叉引用程序:CREF.EXE(可有可无)。
3.实验内容及实验数据记录(1)将数据段输入,取名 1.txt,保存在MASM文件夹下。
生成LST文件,(不必连接、运行)用EDI T查看1.LS T文件。
试回答: DA1,DA2的偏移量分别是多少?C UNT的值为多少?DATA SEGME NT RG 20HNUM1=8 NUM2=NUM1+10H DA1 DB ‘I BM PC’ CUN T EQU $-DA1 DATA END S DA2 DB 0AH, 0DH EN D(2)输入有错误的文件,修改错误语句。
(MASM没有出现错误即可。
不必连接、运行。
)D ATA SEGMEN T VAR1 DB0, 25, DH,300 VAR2DB 12H, A4H, 6BH VAR3 DB ’ABCD EF’ VAR4 D 1H, 5678H VAR5 D 10H DUP(?) D ATA ENDS C DE SEGMENT ASSUME CS: CDE, DE: DATA MV D S, AX LEASI, VAR5 M V BX, FFSE T VAR2 MV[SI], 0ABH MV AX, VA R1+2 MV [B X], [SI] M V VAR5+4,VAR4 MV AH, 4CH INT21H ENDS E ND START B EING MV AX, DATA CDE(3)输入正确的程序,汇编、连接、运行 STACKS SEGMENT S TACK D 128DUP(?) EN DS SEGMENT ENDS SEGM ENT ASSUME CS: CDES,DS: DATAS STACKS DA TAS DATASCDES STRIN G DB ‘ELCM E!’, 13, 10, ‘$’ STA RT: MV AX, DATAS MV DS, AX LEA DX, S TRING MV A H, 9 INT 21H MV AH,4CH INT 21H CDES END S END STAR T4.算法描述及实验步骤 1)首先,用记事本输入各段程序,并储存成源程序,保存在MASM目录下。
实验二用机器指令和汇编指令编程实验总结
实验二用机器指令和汇编指令编程实验总结下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!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.2C编程与调试-发给学生
实验二C编程与调试(一)实验目的学会和掌握C语言开发一个应用程序的全过程,包括编辑、编译、调试过程。
(二)实验器材linux平台。
(三)实验内容1.使用gcc编译一个示例程序。
方法一:Linux下编写C程序一般要经过的步骤。
(1)启动常用的编辑器,输入C源程序代码。
在自己的主文件夹下,右击-“创建文档”-“空文档”,或者单击“主菜单”-“附件”-“文本编辑器”,进入文本编辑环境,输入C源程序,保存并命名为hello.c。
注:如果是复制代码的话,要改“”符号的格式,否则会报错。
#include<stdio.h>int main(void){printf(“Hello world!\n”);return 0;}(2)编译源程序。
在自己的主文件夹下,单击“主菜单”-“系统工具”-终端,进入命令行。
用GCC编译器对C源程序进行编译,以生成一个可执行文件。
方法如下:gcc -o hello hello.c运行程序,输入如下命令:./hello方法二:编译过程分成几个步骤单独进行,并观察每步的运行结果。
(1)预处理阶段,使用-E参数可以让GCC在预处理结束后停止编译过程:gcc -E hello.c -o hello.i预处理结束后,stdio.h的内容将插入到文件里,其他当被预处理的宏定义也都做了相应的处理。
(2)编译阶段gcc -S hello.i -o hello.s上述命令将代码翻译成汇编语言。
(3)汇编阶段,将生成的.s文件转成.O的二进制目标文件。
gcc -c hello.s -o hello.o(4)连接阶段在成功编译后,就进入了连接阶段。
gcc hello.o -o hello完成连接后,gcc就可以生成可执行文件,运行程序,输入如下命令:./hello如果整个程序是由多个源文件组成的,相应地也就形成了多个编译单元。
假设有一个由foo1.c和foo2.c两个源文件组成的程序,为了对它们进行编译,并最终生成可执行程序foo,可以使用下面这条命令:gcc foo1.c foo2.c -o foogcc总体选项列表后缀名所对应的语言-c 只是编译不链接,生成目标文件“.o”-S 只是编译不汇编,生成汇编代码-E 只进行预编译,不做其他处理-g 在可执行程序中包含标准调试信息-o file 把输出文件输出到file里-v 打印出编译器内部编译各过程的命令行信息和编译器的版本-I dir 在头文件的搜索路径列表中添加dir目录-L dir 在库文件的搜索路径列表中添加dir目录-static 链接静态库-llibrary 连接名为library的库文件2.使用gcc发现程序错误。
实验二:监控程序与汇编实验报告
实验二:监控程序与汇编实验报告一、实验目的本次实验的主要目的是深入了解监控程序的工作原理和汇编语言的编程方法,通过实际操作和编程实践,提高对计算机底层工作机制的理解和掌握能力。
二、实验环境1、操作系统:Windows 102、编程工具:MASM 汇编编译器3、调试工具:DEBUG 调试器三、实验内容1、监控程序的基本原理监控程序是一种系统软件,它负责管理计算机系统的资源,如内存、处理器、输入输出设备等。
监控程序提供了一系列的服务和功能,如任务调度、内存管理、中断处理等,以确保计算机系统的正常运行。
2、汇编语言的基础知识汇编语言是一种低级编程语言,它直接操作计算机的硬件资源,如寄存器、内存地址等。
学习了汇编语言的指令格式、寻址方式、数据类型等基础知识。
3、简单的汇编程序编写与调试使用汇编语言编写了一些简单的程序,如加法运算、数据存储与读取等。
通过 DEBUG 调试器对编写的程序进行调试,查看寄存器和内存的状态,分析程序的执行过程和结果。
四、实验步骤1、安装和配置实验环境下载并安装 MASM 汇编编译器和 DEBUG 调试器。
配置环境变量,以便在命令行中能够方便地使用这些工具。
2、学习监控程序的原理通过阅读相关的教材和资料,了解监控程序的功能和工作流程。
分析监控程序在计算机系统中的作用和地位。
3、学习汇编语言的基础知识掌握汇编语言的指令集和语法规则。
练习不同的寻址方式和数据类型的使用。
4、编写简单的汇编程序使用文本编辑器编写汇编程序代码。
保存为asm 文件。
5、编译和链接汇编程序在命令行中使用 MASM 编译器对asm 文件进行编译,生成obj 文件。
使用 LINK 链接器将obj 文件链接为可执行文件exe。
6、调试汇编程序启动 DEBUG 调试器,加载可执行文件。
使用调试命令查看寄存器、内存的内容,单步执行程序,观察程序的执行过程和结果。
五、实验结果与分析1、加法运算程序编写了一个实现两个数相加的汇编程序。
微机原理与接口技术实验报告_5
实验二初级程序的编写与调试实验一、实验目的1、熟练掌握DEBUG的常用命令,学会用DEBUG调试程序.2、深入了解数据在存储器中的存取方法,及堆栈中数据的压入与弹出.3、掌握各种寻址方法以及简单指令的执行过程.二、实验内容1.设堆栈指针SP=2000H,AX=3000H,BX=5000H,请编一程序段将AX的内容和BX的内容进行交换.请用堆栈作为两寄存器交换内容的中间存储单元,用DEBUG调试程序进行汇编与调试.程序:MOV AX,3000MOV BX,5000MOV SP,2000PUSH AXPUSH BXPOP AXPOP BXHLT2.设DS=当前段地址,BX=0300H,SI=0002H请用DEBUG的命令将存储器偏移地址300H~304H连续单元顺序装入OAH,OBH,OCH,ODH,OEH.在DEBUG状态下送入下面程序,并用单步执行的方法,分析每条指令源地址的形成过程?当数据传送完毕时,AX中的内容是什么?-E 300 0A,0B,0C,0D,0E-AMOV BX,0300MOV SI,0002MOV AX,BXMOV AX,0304MOV AX,[0304]MOV AX,[BX]MOV AX,0001[BX]MOV AX,[BX][SI]MOV AX,0001[BX][SI] HLT3.设AX=0002H,编一个程序段将AX的内容乘10,要求用移位的方法完成. 程序:MOV AX,0002MOV BX,AXMOV CL,2SHL AX,CLADD AX,BXMOV CL,1SHL AX,CLHLT实验四加法及判断程序的编写与调试一、实验目的1.熟练掌握编写汇编语言源程序的基本方法和基本框架.2.学会编写顺序结构,分支结构和循环结构的汇编程序3.掌握程序中数据的产生与输入输出的方法.二、实验内容1.用汇编语言编写一个加法程序:1325+9839请用ASCII码的形式将加数与被加数存放在数据区DATA1和DATA2中,并将相加结果显示输出.程序:DATA SEGMENTDATA1 DB '5','2','3','1'DATA2 DB '9','3','8','9'DATA ENDSSTACK SEGMENT PARA STACK 'STACK'DB 200 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXLEA SI,DATA1LEA DI,DATA2MOV CX,4MOV AH,0 NEXT:MOV AL,[SI]ADC AL,[DI]ADC AL,AHMOV AH,0AAAADD AL,30HMOV [DI],ALINC DIINC SILOOP NEXTMOV CX,5ADD AH,30HMOV [DI],AH NEXT1:MOV DL,[DI]MOV AH,02INT 21HDEC DILOOP NEXT1MOV AH,4CHINT 21H CODE ENDSEND START2.假设有一组数据:5,-4,0,3,100,-51,请编写一程序,判断:每个数是否大于0?等于0?还是小于0?并输出其判断结果,即即:1当X>0Y=0当X=0-1 当X<0程序:DATA SEGMENTDATA1 DB 5, -4, 0 ,3,100,-51STRING1 DB'Y=1','$'STRING2 DB'Y=0','$'STRING3 DB'Y=-1','$'DATA ENDSSTACK SEGMENT PARA STACK 'STACK'DB 200 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXLEA SI,DATA1MOV CX,6NEXT: MOV AL,[SI]CMP AL,0JZ NEXT1JNS NEXT2JS NEXT3NEXT1: MOV DX,OFFSET STRING2MOV AH,09HINT 21HJMP NEXT4NEXT2: MOV DX,OFFSET STRING1MOV AH,09HINT 21HJMP NEXT4NEXT3: MOV DX,OFFSET STRING3MOV AH,09HINT 21HNEXT4: INC SILOOP NEXTMOV AH,4CHINT 21HCODE ENDSEND START实验五大小写字母互换程序的编写与调试一、实验目的进一步熟悉汇编语言源程序的编写方法及宏汇编程序的使用方法二、实验内容设内存数据区有大小写混合英文ASCII码字母: ‘AbCdEfGChinaAgriculturalUniversity’。
java程序设计实验1,2,3
publicclassMathDemo {
publicstaticvoidmain(String[] args) {
Random rand=newRandom();
intv=rand.nextInt();
System.out.println("你得到了一个"+v);
int a=5+4, b=a*2, c=b/4;
int d=b-c;
int e=-d;
int f=e%4;
double g=18.4, h=g%4;
int i=3;
int j=i++;
int k=++i;
System.out.println("a="+a);
System.out.println("b="+b);
}
}
1)保存文件名为:
2)编译命令为:
3)运行程序命令为:
4)如果删除该程序的第一行import语句,重新编译,有何问题?
评语:日期:年月日
实验二:数值类型与变量声明
实验目的:
1.掌握标识符的定义规则
2.认识Java的数据类型以及掌握各种变量的声明方法。
3.掌握不同数值类型间的赋值问题
实验内容
编写一个JAVA程序,对不同类型的类型进行变量的定义并输出相应的值。
if (e!=0 && a/e>5)
System.out.println("因为e非0且a/e为8大于5,所以输出a/e="+a/e);
if (f!=0 && a/f>5)
实验二_初级程序的编写与调试实验_姓名
1.内存操作数及各种寻址方式使用;
2.求累加和程序;
3.多字节加法程序;
4.数据串搬家程序;
5.段寄存器概念及字符串传送指令练习。
六【实验步骤】
1.内存操作数及各种寻址方式使用
MOVAX,1234
MOV[1000],AX
MOVBX,1002
MOVBYTE PTR[BX],20
MOVDL,39
(3)用D命令检查0F00:100G命令运行此程序,检查目的地址1500:0000处内容。并记下DS与ES值。
【说明:G=100是指从偏移量:0100开始执行,直到程序结束为止。】
此时的DS和ES的值分别为:
(5)修改此程序,使ES与DS为同一值,以减少一条指令,而源物理地址和目的物理地址(是多少?)仍和原来一样。
1.MOVBYTE PTR[BX],20
MOVWORD PTR[BX+SI+2],2846
上述指令中BYTE PTR及WORD PTR伪操作不加行不行?试一试。
2.用G命令运行多字节加法程序,并用D命令检查其结果(存放在哪里?),是否正确?
3.将多字节加法程序中的INT 20H指令改为INT 3,有何区别?若这条指令不加,行不行?试一试。
13级软件工程班
姓名
成绩
课程
名称
汇编语言程序设计
实验项目
名称
实验二:初级程序的编写与调试实验
指导教师
王志平
教师评语
教师签名:王志平
2015年月日
一【实验目的】
1.进一步熟悉DEBUG命令;
2.掌握数据在内存中的存放方式和内存操作数的几种寻址方式,段寄存器和物理地址计算;
3.熟悉数据传送指令、算术运算指令、逻辑指令、数据串传送程序和数据串传送指令MOVS、STOS及重复前辍REP;
程序的调试实验报告(范文2篇)
程序的调试实验报告(范文2篇)以下是网友分享的关于程序的调试实验报告的资料2篇,希望对您有所帮助,就爱阅读感谢您的支持。
程序的调试实验报告(1)微机原理与接口技术课程作业班级:目录一、实验目的:............................................................................................. . (3)二、实验环境................................................................................................. . (3)三、实验过程................................................................................................. . (3)(一)基础知识储备................................................................................................. .. (3)(二)汇编语言程序设计................................................................................................. (3)(三)汇编程序调试................................................................................................. .. (3)四、调试实例................................................................................................. . (4)(一)实例一................................................................................................. .. (4)(二)实例二................................................................................................. .. (5)(三)实例三................................................................................................. .. (6)(四)实例四................................................................................................. .. (7)五、实验总结................................................................................................. . (8)(一)实验收获................................................................................................. . (8)(二)实验感悟................................................................................................. . (9)一、实验目的:汇编语言是一种用助记符表示的程序设计语言。
c语言第二部分 实验内容
三、实验内容
1.阅读并输入如下程序,查看运行结果,并分析其功能。 # include "stdio.h" main ( ) { int a, b, c, s ; a = 5; b = 4; c = 6; s = (a+b+c)/ 3; printf (" a = %d, b = %d, c = %d \n, s = %d ", a, b, c, s) ; }
C语言程序设计实验·设计·习题
2.下面是一正方形面积的计算程序,通过输入不同的边长,求 出不同的面积。输入此程序并试运行。 注意:程序中含有输入语句,运行时将会停留在另一窗口中等待 输入数据。 # include"stdio.h" main ( ) { int r, s ; scanf (" %d ",&r) ; s= r*r; printf (" s = %d ", s) ; } 3.在Turbo C中调试并修改以下C程序中的错误。
C语言程序设计实验·设计·习题
三、实验内容
1.改正书中所给的相关程序的错误。 2.程序填空。 (1)按程序中注释的要求填输出语句。 (2)要求运行时必须按如下格式输入数据,请填空。 3.程序编译成功,只是说明没有语法错误,但并不一定能得出 正确结果,因为有可能存在编程逻辑错误。这时,我们需要跟踪变量、 调试程序,找出问题所在。调试的一般方法有: (1)单步跟踪:选择Run菜单下的Step命令,也可以直接按快捷键 F7(可跟踪进函数、过程)或快捷键F8,这样可以每条语句单独运行。 (2)运行至光标处:先将光标移至目标语句,然后选择Run菜单下 的Go to Cursor命令,或按快捷键F4,这样可以连续运行从开始到光 标处的一段程序。
《微型计算机控制技术》教案
《微型计算机控制技术》教案一、教学目标1. 理解微型计算机控制技术的基本概念。
2. 掌握微型计算机控制系统的组成及工作原理。
3. 学会使用微型计算机进行控制程序的编写与调试。
4. 能够分析并解决微型计算机控制技术在实际应用中遇到的问题。
二、教学内容1. 微型计算机控制技术概述微型计算机控制技术的定义微型计算机控制技术的发展历程微型计算机控制技术的应用领域2. 微型计算机控制系统组成控制器执行器传感器输入/输出设备3. 微型计算机控制原理控制算法反馈控制与开环控制PID控制4. 控制程序编写与调试编程语言选择(如C、C++、Python等)控制算法实现程序调试与优化5. 微型计算机控制技术应用案例分析温度控制系统模糊控制系统步进电机控制系统三、教学方法1. 讲授法:讲解微型计算机控制技术的基本概念、原理及应用。
2. 实践法:引导学生动手编写控制程序,并进行调试与优化。
3. 案例分析法:分析实际应用案例,帮助学生更好地理解控制技术。
四、教学资源1. 教材:《微型计算机控制技术》2. 课件:PowerPoint3. 编程环境:如Keil、MATLAB等4. 实验设备:微型计算机、控制器、执行器、传感器等五、教学评价1. 平时成绩:考察学生的出勤、课堂表现、作业完成情况。
2. 实践成绩:评估学生在实验过程中的操作技能、程序编写与调试能力。
3. 期末考试:考查学生对微型计算机控制技术的掌握程度。
六、教学安排1. 第1-2周:微型计算机控制技术概述及发展历程2. 第3-4周:微型计算机控制系统组成及工作原理3. 第5-6周:微型计算机控制原理与控制算法4. 第7-8周:控制程序编写与调试方法5. 第9-10周:微型计算机控制技术应用案例分析七、教学重点与难点1. 教学重点:微型计算机控制技术的基本概念与原理微型计算机控制系统的组成控制程序的编写与调试方法微型计算机控制技术在实际应用中的案例分析2. 教学难点:控制算法的实现与优化实验设备的使用与调试案例分析中的关键技术八、教学过程1. 课堂讲解:结合教材、课件,讲解微型计算机控制技术的基本概念、原理及应用。
ASP实验报告实验2
ASP实验报告实验2第一点:ASP实验2的背景与目的ASP(Active Server Pages)实验是计算机科学和网络编程领域的一项基本技能实验,旨在让学生通过实践掌握ASP技术,进一步了解动态网页的制作和数据库的交互。
实验2则是基于第一实验的基础上,进一步深化学生对于ASP技术的应用,提高学生解决实际问题的能力。
本实验要求学生设计并实现一个简单的ASP应用程序,其主要功能是实现用户注册和登录功能。
通过这个实验,学生需要掌握如何使用ASP技术进行用户信息的收集、处理和存储,以及如何使用SQL语句进行数据库的交互。
实验的背景是假设学生需要为一个简单的社区网站设计用户注册和登录功能。
用户注册时,需要收集用户的基本信息,如用户名、密码、邮箱等,并将这些信息存储到数据库中。
用户登录时,需要验证用户输入的用户名和密码是否与数据库中存储的信息匹配,如果匹配,则允许用户登录。
实验的目的是让学生通过实践,掌握ASP技术的基本使用方法,了解ASP与数据库的交互方式,提高学生解决实际问题的能力。
同时,通过实验,学生也可以加深对于网络安全和数据保护的理解,提高他们在未来工作和学习中处理类似问题的能力。
第二点:ASP实验2的具体内容和步骤本实验的具体内容主要包括以下几个部分:1.设计用户注册和登录界面:学生需要设计一个简洁明了的用户注册和登录界面,包括用户名、密码、确认密码、邮箱等输入框,以及注册和登录按钮。
2.收集用户信息并存储到数据库:学生需要使用ASP技术收集用户在注册界面输入的信息,并将其存储到数据库中。
这里需要使用SQL语句进行数据库的插入操作。
3.验证用户登录信息:学生需要使用ASP技术验证用户在登录界面输入的用户名和密码是否与数据库中存储的信息匹配。
如果匹配,则允许用户登录,否则提示用户登录失败。
4.实现用户注销功能:学生需要实现一个简单的用户注销功能,当用户点击注销按钮时,能够清除用户的登录状态,使用户重新回到登录界面。
调试工具debug的使用及基本指令的用法 (实验2)
10DD:0100 7C0A JL 010C(标志寄存器的各个标志位)
(当前CS:IP所指向的指令)
标志寄存器各标志位的含义:
溢出标志OF: OV/NV(1溢出/0不溢出)
方向标志DF: DN/UP(1减/0增)
《微机原理与接口技术》实验报告
实验序号:实验2实验项目名称:调试工具debug的使用及基本指令的用法
学 号
姓 名
专业、班
实验地点
指导教师
实验时间
一、实验目的及要求
1、掌握debug的基本命令和8086的各种基本指令的用法。
2、掌握DEBUG下的主要命令及在DEBUG下编写简单程序、调试程序的方法;
3、理解CPU各种寄存器的作用:
10DD:2010 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
10DD:2020 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
10DD:2030 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
10DD:2070 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
4、观察和修改内存单元的内容
-e 2000修改从地址DS:2000H开始内存单元的内容
10DD:2000 00.01 00.02
实验二 汇编语言程序上机过程及调试
实验报告二课程微机原理实验名称汇编语言程序上机过程以及调试第页专业电子信息班级__ __ 学号_ __ 姓名实验日期: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;源程序结束注:源程序中的每一行注释语句前一定要加分号‘;’,下同。
实验二 跑马灯综合性实验指导书
实验二跑马灯综合性实验指导书一、实验内容编写程序,应用片内定时器产生1s的定时中断,使用P0口控制8个指示灯,循环点亮(瞬间只有一个灯亮)。
二、实验目的及要求(一)实验目的通过该综合性实验,使学生进一步熟悉Keil_uVersion2和Protues环境软件的使用方法,掌握定时器及中断程序的编程及调试方法,能自己编写简单的程序,控制硬件。
(二)实验要求1.学生在实验课前必须认真预习教科书与指导书中的相关内容,绘制流程图,编写C51语言源程序,为实验做好充分准备。
2.该实验要求学生综合利用前期课程及本门课程中所学的相关知识点,充分发挥自己的个性及创造力,独立操作完成实验内容,并写出实验报告。
三、实验条件及要求计算机,C51语言编辑、Keil_uVersion2和Protues仿真软件50台套。
四、实验相关知识点1.单片机内部结构。
2.C51编程、调试。
3.定时器结构及应用。
4.片内中断应用。
五、实验原理图六、实验参考流程图1.主程序流程图2.定时器中断服务程序流程图P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7XTAL220XTAL121ALE 33EA35PSEN 32RST10P0.0/AD043P0.1/AD142P0.2/AD241P0.3/AD340P0.4/AD439P0.5/AD538P0.6/AD637P0.7/AD736P1.02P1.13P1.24P1.35P1.46P1.57P1.68P1.79P3.0/RXD 11P3.1/TXD 13P3.2/INT014P3.3/INT115P3.4/T016P3.7/RD19P3.6/WR 18P3.5/T117P2.7/A1531P2.0/A824P2.1/A925P2.2/A1026P2.3/A1127P2.4/A1228P2.5/A1329P2.6/A1430U1AT89C51X111.0592MHzC122pFC222pFC310uFR1220R210kSWD1LED-BLUED2LED-BLUED3LED-GREEND4LED-GREEND5LED-REDD6LED-REDD7LED-YELLOWD8LED-YELLOWR3220R4220R5220R6220R7220R8220R9220R10220YN1->1秒到标志 0->50ms 计数器定时器0:方式一, 50ms 定时 开定时器中断 开中断总开关 开定时器0 0FEH->A1秒到标志=1开始0->1秒到标志 A->P1 RL A七实验程序#include<reg51.h> #include<intrins.h> unsigned char i,A; void main() { i=0; A=0xfe;TMOD = 0x01; TH0 = 0x3C; TL0 = 0x0B0; EA = 1; ET0 = 1; TR0 = 1; while(1) ; }void Timer0Interrupt(void) interrupt 1 {TH0 = 0x3C; TL0 = 0x0B0; i++; if(i==20) { P2=A; A=_crol_(A,1); i=0; } }八、实验实施步骤1.仔细阅读实验内容及要求,根据要求编写C51语言源程序。
实验二 初级程序的编写与调试
实验二初级程序的编写与调试一、实验目的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连续单元。
程序设计语言实验指导书12版
《程序设计语言》实验指导书徐东燕编北方民族大学计算机科学与工程学院2012年9月目录实验一 C语言编程环境熟悉及简单程序的编写(验证型实验,2学时) (3)实验二分支结构程序设计(设计型实验,2学时) (6)实验三循环结构程序设计(设计型实验,2学时) (8)实验四函数程序设计(设计型实验,2学时) (10)实验五数组程序设计((设计型实验,2学时) (12)实验六指针程序设计(设计型实验,2学时) (14)实验七结构体程序设计(设计型实验,2学时) (15)实验八程序结构与递归函数(综合性实验,2学时) (16)实验九指针进阶及综合程序设计(综合型实验,2学时) (17)实验十文件的程序设计(设计型实验,2学时) (18)参考文献 (20)课程编号:11101203 课程类别:专业基础课适用专业:计算机科学与技术、软件工程、网络工程、信管专业课程总学时:76 实验课学时:20开设实验项目数:10实验一C语言编程环境熟悉及简单程序的编写(验证型实验,2学时)一、实验目的与要求实验环境1.熟悉Cfree开发环境或Visual C++ 6.0的使用环境;2.掌握Cfree开发环境或Visual C++ 6.0环境下建立C程序的步骤;3.掌握C程序在Cfree开发环境或Visual C++ 6.0环境下的编辑、调试和运行的步骤、方法;4.理解C程序的一般结构;5.理解并掌握程序的顺序结构程序设计;6.在Cfree开发环境或Visual C++ 6.0环境下编写并运行基本的C程序;7.理解程序调试思想,能修改简单的C语法错误;8.掌握算术、赋值表达式,输入输入语句和简单数据处理方法。
二、实验环境1.微机每人一台,要求PⅢ以上处理器。
2.windows2000/xp操作系统。
3.Cfree开发环境或或Visual C++ 6.0开发环境。
三、实验预习与准备1.计算机基本操作练习。
2.Cfree开发环境或Visual C++ 6.0软件使用预习。
电子科技大学_汇编实验报告
电子科技大学计算机工程学院标准实验报告(实验)课程名称电子科技大学教务处制表电子科技大学实验报告实验一学生姓名:穆萨·图拉克学号: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机上编辑、汇编、连接、调试和运行汇编语言程序的过程。
实验二_综合程序的编写与调试实验
软件实验二综合程序的编写与调试实验1. 实验目的(1) 熟练掌握编写汇编语言源程序的基本方法和基本框架。
(2) 学会编写顺序结构、分支结构和循环结构的汇编程序。
(3) 掌握程序中数据的产生与输入输出的方法。
2 •实验内容(1)用汇编语言编写一个加法程序:1234+5678请用ASCII码的形式将加数与被加数存放在数据区DATA和DATA中,并将相加结果存入DATA3 并显示输出。
(2)假设有一组数据:5, -4 , 0, 3, 100, -51,请编一程序,判断:每个数大于0,等于0, 还是小于0;并输出其判断结果。
即 1 「当X> 0Y= 0 J 当X = 0-1 当X< 03.实验要求(1)实验前准备①分析题目,将程序中的原始数据,中间结果和最终结果的存取方式确定好。
②写出算法或画出流程图③写出源程序④对程序中的结果进行分析,并准备好上机调试与用汇编程序及汇编调试的过程。
(2)本实验要求在P(机上进行。
(3)汇编过程中出现问题,可用DEBU进行调试。
4 •编程提示(1)实验内容1 (参考教材P165例3.19 )①两个数据可用相反的顺序以ASCII码的形式存放在数据段的DATA和DATA中,相加时可从DATA和DATA的起始字节开始相加,即从数的个位数开始相加。
相加结果可存放在DATA开始的存储单元中。
②程序中的加法运算是ASCII码运算,采用带进位的加法运算指令ADC后面应加一条ASCII 码加法调整指令AAA经AAA调整的加法指令,将ASCII码的数据高4位清“0”,因此要将结果每位数高4位拼成3位,变成ASCII码存在DATA中,才可方便地取出输出。
③程序中应有输出程序段,采用MOV AH 02H, INT 21H,将要输出字符的ASCII码送入D冲。
(2)实验内容2 (参考教材P148例3.10)①首先将原始数据(5,-4,0,3,100,-51) 装入起始地址为X的字节存储单元中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件实验二综合程序的编写与调试实验
1.实验目的
(1)熟练掌握编写汇编语言源程序的基本方法和基本框架。
(2)学会编写顺序结构、分支结构和循环结构的汇编程序。
(3)掌握程序中数据的产生与输入输出的方法。
2.实验内容
(1)用汇编语言编写一个加法程序:1234+5678
请用ASCII码的形式将加数与被加数存放在数据区DATA1和DATA2中,并将相加结果存入DATA3并显示输出。
(2)假设有一组数据:5,-4,0,3,100,-51,请编一程序,判断:每个数大于0,等于0,还是小于0;并输出其判断结果。
即 1 当X﹥0
Y= 0 当X ﹦0 -1 当X﹤0
3.实验要求
(1)实验前准备
①分析题目,将程序中的原始数据,中间结果和最终结果的存取方式确定好。
②写出算法或画出流程图
③写出源程序
④对程序中的结果进行分析,并准备好上机调试与用汇编程序及汇编调试的过程。
(2)本实验要求在PC机上进行。
(3)汇编过程中出现问题,可用DEBUG进行调试。
4.编程提示
(1)实验内容1(参考教材P165例3.19)
①两个数据可用相反的顺序以ASCII码的形式存放在数据段的DATA1和DATA2中,相加时可从DATA1和DATA2的起始字节开始相加,即从数的个位数开始相加。
相加结果可存放在DATA2开始的存储单元中。
②程序中的加法运算是ASCII码运算,采用带进位的加法运算指令ADC,后面应加一条ASCII 码加法调整指令AAA。
经AAA调整的加法指令,将ASCII码的数据高4位清“0”,因此要将结果每位数高4位拼成3位,变成ASCII码存在DATA3中,才可方便地取出输出。
③程序中应有输出程序段,采用MOV AH,02H,INT 21H,将要输出字符的ASCII码送入DL中。
(2)实验内容2(参考教材P148例3.10)
①首先将原始数据(5,-4,0,3,100,-51)装入起始地址为X的字节存储单元中。
②将判断结果以字符串的形式存放在数据区Y中,以便在显示输出时调用。
③其中判断部分可采用CMP指令,得到一个分支结构,分别输出“Y=0”,“Y=+1”,“Y=-1”。
④程序中存在一个循环结构,循环6次,调用6次分支结构后结束。
5.思考题
(1)两个试验题目中的原始数据,是否可能通过键盘提供?如何编程?请将编好的程序上机调试。
(2)程序中的原始数据是以怎样的形式存放在数据区中的?请用DEBUG调试程序进行观察并分析。
6.实验报告
(1)程序说明
①说明程序基本结构,包括程序中各部分的功能
②说明入口参数与出口参数以及各种参数输入与输出的方式。
③说明程序中各部分所用的算法和编程技巧。
④说明主要符号和所用的算法和编程技巧。
(2)上机调试说明
①上机调试步骤。
②上机调试过程中遇到的问题是如何解决的。
③对调试源程序的中间结果和最终结果进行分析。
(3)画出程序总框图
(4)打印出源程序清单与执行结果。
(5)回答思考题。
附:汇编语言源程序的编译方法
1.通过EDIT编辑源程序
C:\>EDIT 111.ASM(回车)
进入EDIT编辑状态,输入源程序。
Alt+F打开File文件菜单,选中Save项,存盘并退出。
2.用MASM汇编源程序
C:\>masm(回车)
Microsoft (R) Macro Assembler VersiOn 5.00
Copyright (C) Microsoh Corp 1981—1985,1987.
Source filename [.ASM]:文件名(回车)
Object filename [文件名.OBJ]:文件名(回车)
5 Source listing [NUL.LST]:文件名(回车)
Cross—reference[NUL.CRF]:文件名(回车)
50722+410046 Bytes symbol space free
0 Warning Errors
0 Severe Errors
3.用Link连接程序
C:\>link(回车)
IBM Personal Computer Linker
Version 2.00(C)Copyright IBM Corp 1981,1982,1983
ObjectMOdules[.OBJ]:文件名(回车)
Run File[文件名.EXE]:文件名(回车)
List File[NUL.MAP]:文件名(回车)
Libraries[.LIB]:文件名(回车)
Warning: NO STACK segment
There was 1 error detected.
4.执行程序
C:\>文件名(.exe)(回车)
5. 调试程序
C:\>DEBUG 文件名.exe(回车)。