微机原理与接口技术实验讲义(第一部分1)

  • 格式:doc
  • 大小:200.00 KB
  • 文档页数:24

实验一DEBUG调试程序的应用一、实验目的1、了解DEBUG调试程序常用命令的基本格式、主要功能和使用方法。

2、熟悉进入或退出DEBUG调试程序运行界面的步骤。

3、掌握用DEBUG调试程序进行程序编辑、调试、运行、结果检查的基本方法。

4、进一步汇编语言上机环境及基本操作二、实验预习要求1、阅读本实验讲义和附录1,了解DEBUG调试程序常用命令的基本格式、主要功能和使用方法。

2、明确本实验的内容、步骤和方法,写出预习报告。

三、实验内容及步骤:1、启动DEBUG程序(1). 直接启动如在C盘的根目录下,启动的方法是:C:\>DEBUG_这时屏幕上会出现“_”提示符,等待键入DEBUG命令。

(2). 启动DEBUG程序的同时装入被调试文件命令格式如下:C:\>DEBUG [d:][PA TH]filename[.EXT][d:][PATH]是被调试文件所在盘及其路径,filename是被调试文件的文件名,[.EXT]是被调试文件的扩展名。

例如:BCDSUM.EXE可执行文件在A盘,用DEBUG对其进行调试的操作命令如下:C:\>DEBUG A:\BCDSUN.EXE↙DOS在调用DEBUG程序后,再由DEBUG把被调试文件装入内存,当被调试文件的扩展名为COM时,装入偏移量为100H的位置,当扩展名为EXE时,装入偏移量为0的位置,并建立程序段前缀PSP,为CPU寄存器设置初始值。

2、在DEBUG环境下建立和汇编程序在DEBUG环境下用户可以直接建立汇编语言源程序,并可以进行编辑修改,还可以进行汇编。

(1)。

在在显示器上输出一个单字符比如,在DEBUG下运行如下程序:MOV DL,33H ;字符3的ASCII码送DLMOV AH,2 ;使用DOS的2号功能调用INT 21H ;进入功能调用,输出‘3’INT 20H ;BIOS中断服务,程序正常结束。

该程序运行结果是在显示器上输出一个字符‘3’。

其中涉及DOS和BIOS功能调用。

因为我们是在DOS的支持下运行汇编语言程序,所以一般情况下,不能轻易使用输入/输出指令直接通过端口输入/输出,而必须使用DOS内部提供的子程序完成输入/输出。

DOS功能调用就是为诸如此类的目的设置的。

DOS功能调用要求在进入“INT 21H”调用前,首先将功能调用号送AH寄存器,并根据功能调用号准备初始数据。

也就是说INT 21H的2号功能调用是输出DL寄存器中的字符。

“INT 20H”是BIOS中断服务,这一软中断用来正常结束程序。

“INT 20H”也可改为“INT 3”,表示程序执行到此暂停。

运行步骤:①.进入DEBUG界面设C盘上有程序,进入DOS环境后键人DEBUG后回车,即C:\>DEBUG随后屏幕显示:_“_”号是进入DEBUG的提示符,在该提示符下可键入任意DEBUG命令。

现在用A 命令输入程序如下:②.输入程序并汇编_A 100169C:0100 MOV DL,33 ;DEBUG默认16进制数169C:0102 MOV AH,2169C:0104 INT 2l169C:0106 INT 20169C:0108 ;回车结束程序的输入至此程序已输入完毕,并汇编成机器指令。

现在用G命令运行程序如下:③.运行程序_G=01003Program terminated normally如果现在想分析一下该程序的指令,可以用反汇编命令U作如下操作:④.反汇编_U 100,108169C:0100 B233 MOV DL,33169C:0102 B402 MOV AH,02169C:0104 CD21 INT 21169C:0106 CD20 INT 20169C:0108⑤.将机器指令程序送到起始地址为200H的若干单元_E 0200 B2,33,B4,02,CD,21,CD,20⑥.执行机器指令程序_G=02003Program terminated normally(2).在内存DS:1200H 开始的存储单元中建立一个大写字母区。

①.手工编写程序,实现在内存DS:1200H 开始的存储单元中建立一个大写字母区。

MOV CX,1AH ;循环次数(1AH=26)MOV BX,1200H ;传送数据区首地址MOV AL,41H ;大写字母A的ASCII码LP:MOV [BX],AL ;LP为循环返回的符号地址INC ALINC BXLOOP LPINT 3 ;断点软中断作程序暂停指令用,便于程序调试②.进入DEBUG,用A命令输入程序并汇编。

—A 10020D0:0100 MOV CX,1A ;DEBUG默认16进制数20D0:0103 MOV BX,120020D0:0106 MOV AL,4120D0:0108 MOV [BX],AL ;由此处可知符号地址LP的偏移地址为0108 20D0:010A I NC AL20D0:010C INC BX20D0:010D LOOP 0108 ;LP用偏移地址0108代替20D0:010F INT 320D0:0110 ;回车结束程序的输入③.用D命令先查看存储单元的原值—D120020D0:1200 00 00 00 00 00 00 00 00 —00 00 00 00 00 00 00 00 ……………………20D0:1210 00 00 00 00 00 00 00 00 —00 00 00 00 00 00 00 00 ………………………………④.用G命令运行程序—G=0100回车后,屏幕上出现当前所有寄存器和标志位的值,并出现DEBUG的提示符。

⑤.再检查有关存储单元的内容20D0:1200 41 42 43 44 45 46 47 48—49 4A 4B 4C 4D 4E 4F 50 ABCDEFGHIJKLMNOP20D0:1200 51 52 53 54 55 56 57 58—59 5A 00 00 00 00 00 00 QRSTUVWXYZ…………………可以看到,在DS:1200开始的存储单元已建立了大写字母区。

3、练习R、U、E、T等命令。

4、退出DEBUG在DEBUG命令提示符“_”下键入Q命令,即可结束DEBUG的运行,返回DOS操作系统。

四、实验思考题与习题1、在实验内容(1)中,如何改变程序,在显示器上输出一个英文单词,如“WELCOME”?2、编写程序,在DS:1000开始的存储单元区建立一个0~~99的数据区,并在DEBUG 界面下编辑、调试、运行,检查其结果。

五、实验设备微型计算机一台六、实验报告要求1、记录实验内容(1)的步骤及程序运行后屏幕上显示的字符。

2、记录实验内容(2)步骤及程序运行前、后的结果。

3、选作实验习题1或2。

4、写出实验小结,说明通过上机操作对DEBUG调试有哪些新的认识。

内容包括实验心得(收获)、实验中遇到的问题及解决办法、不足之处和今后应注意的问题等。

实验二寻址方式与基本指令实验一实验目的1、熟悉80X86寻址方式及基本指令的功能,进一步理解和巩固课堂学习内容。

2、掌握汇编语言程序设计上机过程和汇编语言源程序结构,为后续汇编语言程序设计打好基础。

3、熟悉Microsoft的DEBUG或Borland的Turbo Debugger调试工具的使用方法。

二实验预习要求1、复习汇编语言程序设计上机步骤。

2、复习DEBUG调试工具的使用方法。

3、复习80X86操作数寻址方式及基本指令(数据传送、算术运算和逻辑运算等)。

4、了解实验内容,并在实验前根据课堂所学知识回答有关问题(个别取决于程序实际行环境的问题除外),以便在实验时进行验证。

三实验内容及步骤:1、读懂下列源程序,在未来汇编中编辑名为EX11.ASM的源程序,汇编生成EX11.OBJ 文件,连接生成EX11.EXE文件。

使用DEBUG调试工具单步执行EX11.EXE程序,注意观察IP值的变化,并回答下列问题。

①.程序装入后,代码段寄存器CS的内容为H,代码段第一条可执行指令”MOV AX,DATA”对应的机器代码为H,它是一个字节指令,注意观察执行该指令时IP值的变化情况,该指令源操作数DATA的寻址方式是,其值为H 。

②.执行完“MOV DS,DA TA”指令后,数据段寄存器DS的内容为H,源程序在数据段中定义的数据82H、68H和88H被装入的存储单元的物理地址分别为H、H和H。

③.程序中第一条“ADD AL,[BX]”指令时对应的机器代码为H,它是一个字节指令,注意观察执行该指令时IP值的变化情况;该指令中源操作数的寻址方式为,该操作数所在存储单元的逻辑地址(DS):(BX)为,其物理地址为H;执行完该指令后(AL)= H,CF= ,OF= ,ZF= ,SF= ,AF= ,PF= ;若操作数为无符号数,计算结果是否正确?若两操作数为带符号数,计算结果是否正确?若计算结果正确,结果是正数还是负数?④.执行完第二条“ADD AL,[BX]”指令后(AL)= H,CF= ,OF= ,ZF= ,SF= ,AF= ,PF= ;若两操作数为无符号数,计算结果是否正确?若两操作数为带符号数,计算结果是否正确?⑤.指令“MOV SUM,AL”中,目的操作数的寻址方式为。

该指令执行完后,注意观察(DS):0003H单元中值的变化,该单元的值变为H。

DA TA SEGMENTNUM DB 82H,68H,88HSUM DW ?DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXXOR AX,AXMOV BX,OFFSET NUMMOV AL,[BX]INC BXADD AL,[BX]JNC LP0INC AHLP0:INC BXADD AL,[BX]JNC LP1INC AHLP1:MOV SUM,AXMOV AH,4CHINT 21HCODE ENDSEND START2、指出下列指令的错误原因,上机运行,观察执行汇编程序(MASM.EXE)后给出的出错信息,改正后再上机验证。

①.MOV BP,BL ②.MOV [BX],[BP]③.MOV [BX],20H ④.INC [SI]⑤.ADD AX,[SI+DI] ⑥.SHL AX,3⑦.PUSH 2000H ⑧.POP AL⑨.MOV CS,AX ⑩.MOV DS,1000H四、实验设备微型计算机一台五、实验报告要求1、写出实验内容1中所有问题的正确答案,对实验前做错或做不出来的问题,说明通过上机操作对这些问题有哪些新的认识。

2、写出实验内容2中10条错误指令的错误原因,对可以改正的指令给出其正确形式,并分别记录汇编程序对每条错误指令给出的出错信息。