《微机原理及接口技术实验报告(共10页).doc》由会员分享,可在线阅读,更多相关《微机原理及接口技术实验报告(共10页).doc(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上实验一 DEBUG命令及其基本操作一 实验目的:1. 熟练掌握DEBUG的常用命令,学会用DEBUG来调试程序。2. 深入了解数据在存储器中的存取方法,了解堆栈中数据的压入与弹出方法。3. 掌握各种寻址方法,了解简单指令的执行过程。二、实验容:1.打开计算机,在WINXP操作系统下,点击“开始”,选择“运行”,在“打开”一栏中输入“debug”,运行DEBUG应用程序,将出现DEBUG的提示符“-”。2.在DEBUG提示符后键入字母“-a100”,回车后,屏幕上就会出现下面类似的容: (具体到每个计算机所产生的段地址和偏移地址可能有所不同)这表示在地址1383:010
2、0处,DEBUG等待用户键入程序助记符,下面键入程序:3.在DEBUG的提示符后键入G,这是执行程序的命令,然后回车,就可以看到结果了。4现在让我们用“d”命令来看一下存储器在100H107H这8个单元,程序覆盖了原来的容,右边的字符是组成程序的ASCII码等价字符,圆点表示不可显示字符。5下面我们用反汇编命令来查看一下所键入的程序。“U”命令的格式是“U起始地址,终止地址”,即把起始地址到终止地址之间的十六进制码反汇编成汇编语言助记符语句。键入:大家在屏幕上不仅可以看到地址和助记符,而且还可以看到与汇编语言等价的机器语言。6.现在我们修改存储单元的容,看看显示情况和变化。我们看到显示的结果发
3、生了变化,这是因为DOS的2号功能调用是显示输入数据的ASCII码字符。7.下面我们给程序命名并存盘。在键入“n”后紧跟程序名及扩展名因为文件的字节数必须事先放在BX和CX中,其中BX保存高16位,CX保存低16位,整个32位的数保存文件的字节数,一般来说,BX设置为0,因为CX可存放的字节数为64K,对于一般的程序已足够了。8.结束后可用Q命令退出DEBUG程序。三、实验习题1写出完成下列功能的指令序列(1)传送20H到AL寄存器(2)将(AL)*2(3)传送25H到BL寄存器(4)(AL)*(BL)问最后的结果(AX)=?单步执行结果:2分别写出完成下列指令要求的指令:(1)将BX的低4位
4、清零;(2)将AX的高4位置1;(3)将DX的低4位取反;(4)将CX的中间八位清零;(5)将AX中与BX中的对应位不相同的位均置1.解答:(1)and bx,fff0。设bx=c4b5,则运行结果(2)or ax,f000。设ax=c4b5,则运行结果(3)xor dx,000f。设dx=c4b5,则运行结果(4)and cx,f00f。设cx=c4b5,则运行结果(5)xor ax,bx。设ax=c4b5,bx=5229,则运行结果3上机运行下面指令序列,分析运行后(AX)=?MOV AX,4312MOV CL,8SAR AL,CLDEC AXMOV CX,8MUL CX运行结果4.设DS
5、=当前段地址,BX=0300H,SI=0002H,请用DEBUG的命令将存储器偏移地址300H305H连续单元装入0AH,0BH,0CH,0DH,0EH,0FH。在DEBUG状态下送入下面的程序,并用单步执行的方法,分析每条指令源地址的形成过程?当数据传送完毕时,AX中的容是什么?程序清单如下:MOV AX,BXMOV AX,0304HMOV AX,0304H MOV AX,BXMOV AX,0001BXMOV AX,BXSIMOV AX,0001BXSI 实验二 简单程序设计一、 实验目的:1. 进一步熟悉DEBUG常用命令及使用2. 掌握编写汇编语言源程序的基本方法和基本框架3. 学习设计
6、顺序结构程序,学会使用DEBUG命令调试程序和查看结果。二、 实验容:1 开机后,解压clab文件,打开clab.exe,然后进入MASM子目录。2 在MASM子目录下进入EDIT编辑环境,编写汇编语言源程序。3 源程序编写完后,保存源程序4 在NASM子目录中利用MASM.EXE汇编程序对源程序进行汇编和编译。当源程序中无语法错误时,则在当前工作目录下自动生成一个.OBJ文件,即目标代码文件。5 若源程序有语法错误时,会出现错误提示信息。例如: Warning errors(警告错误) Severe errors(严重错误)若存在严重错误时,则无法生成.OBJ文件,需回到编辑状态下修改源程序
7、,直到错误数为零为止。6.当源程序编译通过后,在MASM目录下,我们利用连接程序LINK.EXE对一个或多个目标文件进行编译连接,生成可执行文件(*.EXE)7.最后利用DEBUG命令对汇编程序进行调试并查看结果。手工编写的源程序汇编语言源文件(.asm)机器语言目标文件(.obj)机器语言执行文件(.exe)编辑程序编辑汇编程序汇编连接程序连接8.编程:求两个数的平均值。这两个数分别方程在X单元和Y单元中,而平均值放在Z单元中。即Z=(X+Y)/2参考程序如下:DATA SEGMENTX DB 2Y DB 6Z DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE,
8、DS:DATASTART:MOV AX,DATAMOV DS,AXMOV AL,XMOV AH,0ADD AL,YADC AH,0MOV BL,2DIV BLMOV Z,ALMOV AH,4CHINT 21HCODE ENDSEND START9.输入下面源程序,并对程序进行汇编、连接、调试并说明程序的功能。DATA SEGMENTNUMBER DW 0168HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATAORG 0100HSTART:MOV AX,DATAMOV DS,AXMOV DX,0MOV BX,0001HMOV DI,8000HMOV SI,0
9、MOV AX,NUMBERMOV CX,16NEXT:TEST AX,BXJZ CONTINUEOR DX,DIINC SICONTINUE:ROL BX,1ROR DI,1LOOP NEXTMOV AH,4CHINT 21HCODE ENDSEND START三、 实验习题1. 编写程序:求1+2+3+100的和DATA SEGMENT RESULT DW ?;存放和DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV AX,1;从1开始加MOV RESULT,0;和的初值赋0MOV CX,
10、100;循环100次NEXT:ADD RESULT,AX;每次向和中累加AX INC AX;然后AX加1LOOP NEXTMOV BX,RESULTMOV AX,4C00H;结束程序INT 21HCODE ENDS END START2. 在存中以tab为首的地方存有19的立方值,从键盘输入某一数字(19),将该数存入X单元,立方值送入XXX单元中。data segmentinput db please input x(09):$tab dw 0,1,8,27,64,125,216,343,512,729x db ?xxx dw ?data endscodesegmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov dx,offset inputmov ah,9int 21h mov ah,1 int 21hand al,0fhmov x,aladd al,almov bl,almov bh,0mov ax,tabbxmov xxx,axmov ah,4chint 21hcode endsend start专心-专注-专业