当前位置:文档之家› 西电微机原理与系统设计上机报告

西电微机原理与系统设计上机报告

微机原理与系统设计上机报告学号:*******姓名:**指导老师:**时间:2016年11月西安电子科技大学内容一 Debug程序的使用一、实验目的1. 学习使用DEBUG调试命令。

2. 学习用DEBUG调试简单程序。

3. 通过程序验证码制及其对标志位的影响。

4. 通过调试熟悉和掌握各寄存器的作用与特点。

二、实验内容用DEBUG调试简单程序。

三、实验仪器微机一台四、实验步骤1.由DOS进入DEBUG调试环境。

(1)DEBUG将调试程序装入内存注意:当机器控制权由DOS成功地转移给调试程序后,将显示“-”号,它是DEBUG的状态提示符,表示可以接受调试子命令了。

(2)-R 显示CPU中各寄存器当前初始内容,请记录下列各项:AX=0000 BX=0000 CX=0000 DX=0000 BP=0000 SI=0000 DI=0000 DS=13E0 ES=13E0 SS=13E0 SP=FFEE CS=13E0 IP=0100 FLAG寄存器中的8个标志位状态值是:OF DF IF SF ZF AF PF CFNV UP EI PL NZ NA PO NC DEBUG用符号给出标志寄存器中8个标志位的当前状态,其含义如下表所示。

标志位含义‘1’的对应符号‘0’的对应符号OF溢出OV有NV无DF方向DN递减UP递增IF中断EI允许DI禁止SF符号NG负PL正ZF全零ZR零NZ非零AF辅助进位AC有NA无PF奇偶性PE偶PO奇CF进位CY有NC无2.用DEBUG调试简单程序例1 -A CS:0106MOV AX,1234MOV BX,2345MOV CX,0ADD AX,BXMOV CX,AXINT 20运行程序(注:执行程序时IP应指向要执行的指令,需要修改该寄存器-RIP当前值输入需要值该处为0106,当然也可以在T或G命令中指出程序起始地址)-R 显示各寄存器当前内容及首条指令-T 3 跟踪执行三条赋值传送指令,观察寄存器及标志位-T 2跟踪执行相加及送和数指令,观察寄存器及标志位-G 执行软件中断指令INT 20,机器将显示“程序正常终止”的信息,并显示“-”,表明仍处在DEBUG的调试控制状态下,注意未用T命令,因为我们不想进入到20H中断处理程序中去,P命令也可实现相同操作实验现象记录:观察与记录按照上述要求命令执行后,哪些寄存器和标志位发生了变化。

例2 -A CS:116MOV AX,[0124]MOV BX ,[0126]ADD AX,BXMOV [0128],AXINT 20DW 2222DW 8888DW 0设置断点分段运行程序-G=CS:116 11D 从指定入口运行程序,至断点11D停,可见两个数已取至AX,BX,但还没有求和-G122 从上一断点运行至新断点停,已完成求和并存入指定结果单元-G 完成程序观看内存内容-DCS:116 12A 显示本程序小段目标代码和数据单元内容-UCS:116 12A 反汇编指定范围的内存内容-实验现象记录:观察与记录指定范围的内存内容;通过反汇编,观察与记录指定范围的内存内容及对应指令。

例3 -A CS:0192MOV DX,19BMOV AH,9INT 21INT 20DB ‘HELLO,WORLD! $’-P 命令单步执行实验现象记录:观察每条指令执行后各寄存器的变化,记录DX,AX的变化。

思考:根据程序输入情况,考虑‘HELLO,WORLD!$’在内存中的ASCⅡ码和地址范围-D 109C 01A7 (如下图)ASCⅡ码为:45 4C 4C 4F 2C 57 4F 52 4C 44 21 24 ;例4 自己设计一段小程序验证补码的加法、进位、溢出的概念;参考程序(可对数据进行修改):-A CS:0100MOV AL,74ADD AL,70MOV AL,7AADD AL,94MOV AL,43ADC AL,65INT 20-P命令单步执行实验现象记录:记录每条指令执行后AX及标志位变化。

AX及标志位变化如下图:例51.使用R命令,实现AX=0108,BX=F1AA 如下图:2.编辑下列程序-A CS:0100MOV AL,05MOV BL,09MUL BLAAMINT 20-P 命令执行单步执行实验现象记录:记录每条指令执行后,AX、BX以及标志位的变化。

例6 执行下列程序,用P命令或T命令跟踪-A CS:0100MOV AX,0200MOV DX,1E4FCALL AX ;调用子程序MOV DX,167CADD DH,DLMOV [0300],DXINT 20;********下面是子程序段********-A CS:0200PUSH AXMOV AX, 010BPOP AXRET实验现象记录:1)跟踪执行程序,观察在子程序调用过程中IP 0201 SP FFEC 堆栈区域内容13DE: FFEC 0204 FFEC 13DE:FFEC0205 FFEE 13DE:FFEE2)程序运行完毕后DS:[0300]中的内容为00003)如果去掉POP AX,程序执行后DS:[0300]中内容为4F6D内容二汇编语言上机环境及基本步骤一、实验目的:1. 掌握编写汇编源程序的基本格式。

2. 熟悉汇编语言上机环境。

3. 掌握汇编源程序的编辑和修改,熟悉EDIT或记事本的使用方法。

4. 掌握汇编源程序编译、连接成可执行文件的过程,熟悉MASM,LINK的使用方法。

二、实验内容:在屏幕上显示并打印字符串“This is a sample program.”三、实验仪器微机一台四、实验步骤:1.在某盘如E盘,以自己的名字的汉语拼音建立一个工作目录(文件夹,名称不要太长,不超过8个字符比如zhangsan),将文件MASM.EXE,LINK.EXE等复制到该目录下,编辑的源文件也保存到该目录下。

从WINDOWS进入DOS环境:C:\>2.用EDIT编辑SW1.ASM源文件。

(1). 从当前目录进入自己的目录下,C:\>E: 回车E:\> CD zhangsan ↙回车键入EDIT并回车:E:\ zhangsan>EDIT根据菜单提示进行各种操作。

(2)进入EDIT编辑------EDIT是一种全屏幕编辑软件,可输入、编辑、修改、保存、另存源程序非常方便。

说明:也可在WIDNDOWS环境下用记事本编辑源文件,在保存时,保存类型应选择所有文件,不能选择文本文件(*.txt),否则在编译时会找不到源文件的。

(3).编辑新文件:a、在EDIT编辑器中输入汇编源程序。

b、检查输入有无错误。

c、打开文件菜单FILE→选择另存为SA VE AS┅→输入文件名为:SW1.ASM→保存。

注意:保存到你自己的文件夹中d、若需要修改此文件,用FILE菜单→选择打开OPEN→输入文件名SW1.ASM,即可修改。

修改后注意重新再存盘。

(4).编辑汇编源程序a、在EDIT(或记事本)中输入源程序。

b、检查。

c、存盘。

可保存为SW1.ASM3.用汇编程序MASM将SW1.ASM文件汇编,生成SW1.OBJ目标文件。

(1).一般简单程序只需生成.OBJ文件,可键入简化命令:E:\zhangsan>MASM SW1;↙若有错误,则显示错误行号及错误性质,如:SW1.ASM(5):error A2006:undefined symbor:xxxx(2).若有错重新进入EDIT进行修改。

修改后并再存盘,退出编辑,回到DOS,再汇编。

E:\ zhangsan >MASM SW1;↙(3).没有任何错误时,显示:Assembling:SW1.asm表示汇编成功,生成SW1.OBJ文件。

(4).用DIR命令查看应有SW1.OBJ:E:\ zhangsan >DIR SW1.*4.用连接程序LINK将SW1.OBJ文件连接,生成SW1.EXE可执行文件。

(1).一般仅生成SW1.EXE文件, 可键入简化命令:E:\ zhangsan >LINK SW1;↙若有错误,则显示错误信息,则应返回编辑、修改、存盘,再汇编、连接直到连接成功,生成SW1.EXE可执行文件。

(2).用DIR命令查看应有SW1.EXE:E:\ zhangsan >DIR SW1.*↙5.运行SW1.EXE文件E:\ zhangsan>SW1 ↙执行SW1.EXE文件,屏幕应显示:“This is a sample program.”。

由连接程序生成的.EXE,在DOS下,直接键入文件名(不要扩展名.EXE)就可以把文件装入内存,并立即执行。

但有的程序没有直接显示结果;对于较复杂程序难免会出现错误,直接观察很难找到错误所在,这样就要借用调试程序进行调试。

实验现象记录:记录调试过程中出现的问题及修改措施,并记录程序执行结果。

五、实验源程序DA TA SEGMENTDA1 DB 'This is a simple program.'DB 0DH,0AH,' $'DA TA ENDSSTACK SEGMENTST1 DB 100 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA,SS:STACKSTART:MOV AX, STACKMOV SS, AXMOV AX, DATAMOV DS, AXMOV AH, 9MOV DX, OFFSET DA1INT 21HMOV AH,4CHINT 21HCODE ENDSEND START内容三顺序程序设计一、实验目的1)掌握使用指令编程及调试的方法;2)掌握指令对状态标志位的影响及其测试方法;3)学会运用顺序程序解决实际问题的方法。

二、实验设备PC机一台三、实验内容及步骤1.(1)题目计算X+Y=Z,将结果Z存入某存贮单元。

本实验程序是2个16位,即32位运算,利用累加器AX,先求低16位和,并存入低地址存贮单元,后求高16位和,再存入高地址存贮单元。

由于低位和可能向高位有进位,因而高位相加语句须用ADC指令,则低位相加有进位时CF=l,高位字相加时,同时加上CF中的1。

参考程序如下:STACK SEGMENTDW 64 DUP(?)STACK ENDSDATA SEGMENTXL DW ? ;请在此处给X低位赋值XH DW ? ;请在此处给X高位赋值YL DW ? ;请在此处给Y低位赋值YH DW ? ;请在此处给Y高位赋值ZL DW ?ZH DW ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV AX,XLADD AX,YLMOV ZL,AXMOV AX,XHADC AX,YHMOV ZH,AXINT 03HCODE ENDSEND START(2)实验步骤1)输入实验程序并检查无误,经汇编、连接后生成EXE文件。

相关主题