C语言上机实验一

C语言上机实验一

ID:37915925

大小:2.20 MB

页数:20页

时间:2019-06-02

C语言上机实验一_第1页
C语言上机实验一_第2页
C语言上机实验一_第3页
C语言上机实验一_第4页
C语言上机实验一_第5页
资源描述:

《C语言上机实验一》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、仲恺农业工程学院实验报告纸计算机科学与工程(院、系)计算机专业计机093班微机原理与接口技术课学号2009102143姓名实验日期2012-5-16教师评定实验一汇编语言设计内容一使用MASM.EXE和LINK.EXE一、实验目的1.熟悉MASM.EXE和LINK.EXE的使用方法。2.了解debug调试工具,观察程序的执行过程和对寄存器和内存单元的影响。二、实验预习要求1.按照题目要求在实验前编写好实验中的程序段。三、实验内容1、首先在硬盘上建立一个文件夹,例如:D:MASM,如下图所示。2、下载MASM.EXE和LINK.EX

2、E到D:MASM文件夹里,下图。第20页共20页3、经过以上两步,我们已经做好了准备工作,接下来书写程序。我们的程序要求为,计算y=a×b+c-18,a、b、c均为带符号的8位二进制数据,为了实验观看实验结果,我们假设a=34H、b=56H、c=E7H。程序源代码如下(分号后面内容为注释内容,可以不输入):CCEQU18;伪指令定义CCSTACKSEGMENT;堆栈段起始DW256DUP(?);在堆栈段中预留了256个字的内容TOPLABELWORD;TOP为栈顶偏移地址STACKENDS;堆栈段结束DATASEGMENT;数据段

3、起始DAT1DB34H;DAT1为题中操作属数a,为字节,存于数据段中DAT2DB56H;DAT2为题中操作书b,为字节,存于数据段中DAT3DB0E7H;DAT3为题中操作书c,为字节,存于数据段中DATYDW?;DATY为题中计算结果预留空间,为字,存于数据段中DATAENDS;数据段结束CODESEGMENT;代码段起始ASSUMECS:CODE,DS:DATA,SS:STACK;分配段地址对应关系START:MOVAX,DATA;START为标号,MOV语句将DATA数据段地址送AXMOVDS,AX;将AX内容送入DS,赋予

4、DS数据段DATA段地址MOVAX,STACK;将STACK堆栈段地址送入AXMOVSS,AX;将AX内容送入SS,赋予SS堆栈段STACK的段地址MOVSP,OFFSETTOP;SP设初值MOVAL,DAT1;取a,直接寻址方式MOVBL,DAT2;取b,直接寻址方式IMULBL;AX<-AL*BL,即将a*b的值存入AXMOVBX,AX;将AX内容保存至BX第20页共20页MOVAL,DAT3;取c,直接寻址方式CBW;由于c是8位有符号数,所以做符号扩展至AHADDAX,BX;AX<-AX+BX,完成将a*b+c结果存入AX操

5、作SUBAX,CC;AX<-AX-18MOVDATY,AX;将a*b+c-18的值,存放至数据段中偏移地址DATY的内存中MOVAH,4CH;将4CH存入AH,为了下句调用DOS21号中断INT21H;调用DOS21中断,由AH=4CH决定返回DOS操作系统CODEENDS;代码段结束ENDSTART;程序结束将以上代码保存为扩展名为.ASM的文件的方法如下:点击“开始”菜单“运行”notepad,打开记事本程序,在记事本中输入如上代码,如下图。第20页共20页然后,选择“文件”下拉菜单,选择“令存为”选项打开“另存为”对话框,选择

6、保存位置为“D:MASM”,文件名为“Sample.asm”(一定要注意扩展名必须为.asm或.ASM,大小写无所谓),保存类型为“所有文件”,如下图。4、这时候D:MASM文件夹下就有3个文件了,分别为“MASM.EXE”、“LINK.EXE”和“SAMPLE.ASM”。将sample.asm文件汇编为扩展名为.obj的文件,如下图,首先进入DOS环境下的D:MASM目录,然后使用MASMSAMPLE.ASM命令。第20页共20页使用DOS的DIR命令查看当前目录下的文件,已经变为4个,多了一个sample.obj文件,见下

7、图。然后,使用LINK.EXE,将SAMPLE.OBJ文件链接生成可执行文件SAMPLE.EXE,下图。使用DOS的DIR命令,可以查看到,又多了一个名为sample.exe文件,请自行查看。5、这时候,我们可以执行sample.exe第20页共20页,可以看到执行正常,但是没有任何输出,这是因为,我们只是改变了内存单元和寄存器的数据,并没有输出,所以,我们需要使用debug来调试程序,观察程序的执行过程,和对寄存器和内存单元的影响,如下系列图示。第20页共20页第20页共20页第20页共20页至此为止,我们的任务已经圆满完成,计算

8、出了a*b+c-18的内容(114DH),并存入了相应的内存单元中,请自己结合上例,独自完成。四、实验步骤1、编译源程序生产OBJ文件2、链接OBJ文件生产执行文件3、调试执行文件第20页共20页思考题:在Debug过程中,自己可以通

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。