汇编实验打印版.docx

上传人:b****5 文档编号:2777004 上传时间:2022-11-15 格式:DOCX 页数:20 大小:32.57KB
下载 相关 举报
汇编实验打印版.docx_第1页
第1页 / 共20页
汇编实验打印版.docx_第2页
第2页 / 共20页
汇编实验打印版.docx_第3页
第3页 / 共20页
汇编实验打印版.docx_第4页
第4页 / 共20页
汇编实验打印版.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

汇编实验打印版.docx

《汇编实验打印版.docx》由会员分享,可在线阅读,更多相关《汇编实验打印版.docx(20页珍藏版)》请在冰豆网上搜索。

汇编实验打印版.docx

汇编实验打印版

南昌航空大学

信息工程学院

实验报告

课程名称:

微机原理与接口技术

学号:

11045106

姓名:

曹海潮

指导教师:

周卫民

成绩:

________________________

 

南昌航空大学实验报告

课程名称:

微机原理实验名称:

调试程序DEBUG的使用

班级:

110451学生姓名:

曹海潮学号:

11045106

教师评定:

签名:

一、实验要求:

调试程序DEBUG的使用。

二、实验内容:

DEBUG.EXE是DOS提供的用于调试可执行程序的工具软件,是汇编语言程序设计中常用的调试工具。

在DEBUG环境下,不但可以调试经汇编、连接后生成的可执行程序,也可以编写简单的程序。

①在DOS提示符下键入:

DEBUG↙(表示回车)

Debug执行,屏幕显示提示符“-”,说明计算机

当前处于DEBUG的管理之下,可接受、并执行

DEBUG命令。

②在DOS提示符下键入:

DEBUG[路径\]文件名↙DEBUG执行,并将指定文件装入内存,供调试。

如不指定被调试程序,DEBUG设置所有段寄存器的值相同,并指向最低的、可用的段地址;SP指向本段的尾部;IP指向本段的0100H单元;其它通用寄存器和所有状态标志清0。

如带入的被调试程序扩展名不是.EXE,则BX、CX包含被调试文件长度(字节数,BX为高位),其他同上。

(带入.COM程序同此)

如带入的被调试程序扩展名是.EXE,则需要重新定位。

DS=ES指向当前最低的、可用的段地址(PSP的首字节);CS:

IP和SS:

SP根据被调试程序确定,分别指向代码段和堆栈段;BX.CX为文件长度,其它通用寄存器和状态标志清0。

演示:

DEBUG的两种启动方法

1.命令格式命令字母[参数]

字母不分大小写;只使用16进制数,不加H;分割符只在两个数值之间是必须的,命令和参数之间可有可无;键入回车键执行命令,Ctrl+Break或Ctrl+C中止命令的执行;如命令不符合DEBUG的规则,则提示“error”并使用“^”指示错误位置。

2.参数格式

①表示地址(逻辑地址):

段地址:

偏移地址D0400:

2500D10ac:

0Dds:

04Dcs:

100

偏移地址D2505D100;DEBUG认为输入的是偏移地址,段地址采用默认的段寄存器,不同的命令默认不同的段寄存器,例如汇编命令默认CS,显示数据命令默认DS。

既不送段地址,也不送偏移地址,段地址采用默认的段寄存器,偏移地址采用当前值。

只送段地址,省略偏移地址,非法。

如DDS:

或D0400:

②表示范围

开始地址结束地址

如“DDS:

050”,“D2AC0:

100200”,“D100120”

注意:

结束地址不能带段地址,开始地址L字节长度。

如“DDS:

0L10”,“D100L20”

命令索引

D命令E命令F命令R命令A命令U命令G命令T命令P命令Q命令N命令L命令W命令C命令H命令S命令I命令O命令M命令

§3.DEBUG命令

1.显示命令D

①D[地址]

②D[范围];如不指定范围,一次显示8行×16个字节。

-D;默认段寄存器为DS,当前偏移地址

-DDS:

100/-DCS:

200

-D200:

100

-D200;200为偏移地址,默认段寄存器DS

-DDS:

100110/-D100L10

2.修改命令E

①E地址;从指定地址开始,修改(或连续修改)存储单元内容。

DEBUG首先显示指定单元内容,如要修改,可输入新数据;空格键显示下一个单元内容并可修改,减号键显示上一个单元内容并可修改;如不修改,可直接按空格键或减号键;回车键结束命令。

②E地址数据表;从指定的地址开始用数据表给定的数据修改存储单元。

-EDS:

100F3‘AB’8D。

3.添充命令F

F范围数据表;将数据表写入指定范围的存储单元;数据个数多,忽略多出的数据,个数少,则重复使用数据表。

-FDS:

0L501,02,03,04,05

-FDS:

0L50102030405(空格分隔)

-FDS:

0L5FF;5个字节重复使用FF

注意和E命令的区别:

E地址数据表

4.显示修改寄存器命令R

①R;★显示所有寄存器和标志位状态;

★显示当前CS:

IP指向的指令。

显示标志时使用的符号:

标志标志=1标志=0

OFOVNV

DFDNUP

IFEIDI

SFNGPL

ZFZRNZ

AFACNA

PFPEPO

②R寄存器名;显示并修改指定的寄存器。

RAX;RIP;RF等

5.汇编命令A

A[地址];从指定的地址开始输入符号指令;如省略地址,则接着上一个A命令的最后一个单元开始;若第一次使用A命令省略地址,则从当前CS:

IP开始(通常是CS:

100)。

注释:

①在DEBUG下编写简单程序即使用A命令。

②每条指令后要按回车。

③不输入指令按回车,或按Ctrl+C结束汇编。

④支持所有8086符号硬指令,伪指令只支持DB、DW,不支持各类符号名。

6.反汇编命令U

①U[地址];从指定地址开始反汇编32个字节的机器指令;省略地址时,则接着上一个U命令的最后一个单元开始;若第一次使用U命令省略地址,则从当前CS:

IP开始(通常是CS:

100)。

②U范围;对指定范围的单元进行反汇编。

-U

-U100

-U100L10

6.反汇编命令U

①U[地址];从指定地址开始反汇编32个字节的机器指令;省略地址时,则接着上一个U命令的最后一个单元开始;若第一次使用U命令省略地址,则从当前CS:

IP开始(通常是CS:

100)。

②U范围;对指定范围的单元进行反汇编。

-U

-U100

-U100L10

7.运行程序命令G

①G;从CS:

IP指向的指令开始执行程序,直到程序结束或遇到INT3。

②G=地址;从指定地址开始执行程序,直到程序结束或遇到INT3。

③G断点1[,断点2,…断点10];从CS:

IP指向的指令开始执行程序,直到遇到断点。

④G=地址断点1[,断点2,…断点10]

-G;从CS:

IP指向的指令开始执行程序。

-G=100;从指定地址开始执行程序。

-G=100105110120

注释:

1)最多可设置10个断点。

2)断点必须设置在一条指令的首字节。

3)如设置了多个断点,程序在第一个断点停下后,显示寄存器、标志及下一条要执行的指令,再次输入G命令,程序继续往下执行,直到下一个断点或程序结束。

4)程序如有错误,执行时可能造成死机。

8.跟踪命令(单步执行命令)T

①T;从当前IP开始执行一条指令。

②T数值;从当前IP开始执行多条指令。

②T=地址;

③T=地址数值;

-T

-T5/-T=1005

9.跟踪执行并跳过子程序命令P

P[=地址][数值];类似T命令,但跳过子程序

和中断服务程序。

10.退出DEBUG命令Q

Q;返回DOS环境。

-Q

11.命名命令N

N文件标示符;指定文件,以便用W命令在磁盘上生成该文件,或者用L命令从磁盘装入该文件。

-NMY_PRO.COM

写盘:

在当前盘当前目录生成指定文件。

读盘:

在当前盘当前目录读取指定文件。

-NA:

\USER\MY_PRO.COM

12.装入命令L

①L[地址];装入N命令指定的文件,默认的内存地址为CS:

100。

-NMY_PRO.COM

-L

②L地址驱动器号扇区号扇区数;将某驱动器的若干扇区(最多80H个)装入内存;0=A,1=B,

2=C……;默认的段地址为CS。

-LDS:

200201

13.写盘命令W

①W[地址];将指定地址开始的内存数据写入磁盘,生成N命令指定的文件;默认的内存地址为CS:

100;写盘的字节数由BX(高位字)和CX(低位字)决定,可执行程序写盘时,文件扩展名应指定.COM。

-NMY_PRO.COM

-W

②W地址驱动器号扇区号扇区数;将内存数据写入磁盘的若干扇区(最多80H);默认的段地址为CS。

-WDS:

0201

注释:

写磁盘扇区要慎用。

14.其他命令

*比较命令C

C范围地址;将指定范围内的内容与以指定地址为起点的内容相比较。

*16进制数计算命令H

H数1,数2(H数1数2);同时计算两个数字的和与差。

*查找命令S

S范围数据;在指定范围内查找指定数据。

*输入命令I

I端口地址;输入一个字节并显示。

*输出命令O

O端口地址字节数据;输出到指定的端口。

*传送命令M

M范围地址;将指定范围的内容传送到以指

定地址为起点的存储单元。

3、实验体会:

通过本次实验,练习了各条常用DEBUG命令的使用,同时也在DBBUG条件下,运行了一些代码,能够得到理想中的答案,同时也发现指令中的值须全部转化为16进制的值,那样才能正常的运行。

同时也加深了自己对指令的理解。

南昌航空大学实验报告

课程名称:

微机原理实验名称:

完整汇编源程序的上机过程

班级:

110451学生姓名:

曹海潮学号:

11045106

教师评定:

签名:

一、实验要求:

学会完整汇编源程序的上机过程和常用的DOS命令。

二、实验内容:

编写一段汇编源程序,在MASM中运行。

同时学会对MASM的灵活运用。

三、实验步骤:

3.1编辑录入源程序

EDIT[[盘符][路径]程序基本名。

ASM]

例如:

D:

\language\MASM50>editaa.asm

3.2汇编

汇编指令格式如下:

MASM[[盘符][路径]程序基本名[.ASM]]

例如:

D:

\language\MASM50>masmaa

若没有错误显示如下:

Microsoft(R)MacroAssmblerVersion5.10

Copyright(C)MicrosoftCorp1981,1988,Allrightsreserved.

Objectfilename[aa.OBJ]:

Sourselisting[NUL.LST]:

Cross-reference[NUL.CRF]:

49576+420869Bytessymbolspacefree

0WarningErrors

0SevereErrors

若有错时则会显示出相应错误信息,如下:

AA.ASM(6):

WarningA4001:

Extracharactersonline

AA.ASM(7):

errorA2062:

MissingorunreachableCS

AA.ASM(8):

errorA2009:

Symbolnotdefined:

DI

49510+411821Bytessymbolspacefree

1WarningErrors

2SevereErrors

3.3连接

连接命令格式如下:

LINK[[盘符][路径]程序基本名[.OBJ]]

例如:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1