微机原理实验debug调试
更新时间:2023-12-15 19:01:01 阅读量: 教育文库 文档下载
汇编语言调试程序DEBUG的练习一
一、 练习目的
1、学习使用DEBUG程序的各种命令。 2、利用DEBUG学习8086指令系统。
二、 练习任务
1、参照说明,掌握DEBUG程序的各种命令,重点是命令R,D,A,U,T,P,G命令的使用。
用命令A汇编下列指令,判断指令正误并说明原因。
1).ROR AX,8;错误,因为ROR指令的源操作数只能是数字1或是CL。 2).LEA DI,[AX];错误,因为LEA指令的目的操作数不能是DI。
3).MOV DS,2010;错误,因为段寄存器和立即数不能在MOV指令间传。
4).PUSH AL;错误,因为PUSH指令的目的操作数只能是通用寄存器或是内存。 5).OUT 900,AL;错误,因为900已经超过了8位二进制数的范围。 6).MOV [BX],0;错误,因为内存和立即数之间的类型没有确定。 2、练习使用汇编命令 1)利用加法指令求3+5 2)利用乘法指令求3*5
3)利用算术运算指令求3的补码
4)学习使用逻辑运算指令。求5和17相与、相或的结果。 5)学习数据传送指令
三、设备
PC机一台
四、练习步骤
1、实现3加5:
2、实现3*5:
3、实现求3的补码:
4、实现5和17相与:
5、传送指令(独立练习)
1)用A命令在内存100H处键入下列内容:
MOV AX,1234 MOV BX,5678 XCHG AX,BX MOV AH,35 MOV AL,48 MOV DX,75AB XCHG AX,DX
2)用U命令检查键入的程序并记录,特别注意左边的机器码。
3)用T命令逐条运行这些指令,每运行一行检查并记录有关寄存器及IP的变化情况。并 注意标志位有无变化。
说明:
下面所有操作均在DOS状态下进行。DEBUG.EXE是DOS操作系统提供的一个调试汇编语言
程序的工具程序。其主要功能为:
1.可动态调试汇编语言程序;
2.可检查或修改CPU各寄存器、标志及内存单元的内容; 3.可输入汇编指令到指定的内存; 4.可把要调试的程序(通常以可执行文件形式存储在磁盘上)调入到内存中,控制CPU按单步、设置断点等方式执行程序,检查程序运行过程中的中间结果,以便寻找程序出错的原因。
一、进入DEBUG C:\\MASM>DEBUG
二、常用DEBUG 命令
1、
DEBUG命令概述 (1) 特点
A. 除命令RF外,DEBUG命令本身均为单字符,后面跟一个或多个参数,有些命
令不给参数也能运行,如下表[]中的参数,这种情况下用默认值作为参数; B. DEBUG下输入和显示的数均为十六进制数,故数字后不可加后缀H,O,B等,
否则认为命令错;
C. 命令和参数不区分大小写; 分类 读写寄存器 命令格式 R R 寄存器名 RF 汇编和反汇编 A[内存地址] U[内存块] T[=内存地址][条数] 执行指令 P[=内存地址][条数] G[=内存地址] G[=内存地址] 断点地址 D[内存块] E 内存地址 字符或数值串 读写内存 F 内存块 字符或数值串 S 内存块 字符串或数值 M 内存块1 内存块2的首地址 C内存块1 内存块2的首地址 退出DEBUG
(2) 常用参数含义
A、 内存地址
内存地址表示一个内存区域的起始地址,由段地址和偏移地址两部分组成。段地址可用一个1至4位的十六进制数表示,也可用某个段寄存器表示,偏移地址只能用1至4位的十
六进制数表示。段地址和偏移地址之间必须用冒号分隔。
例 300:800 表示300:800H的内存地址
CS:100 表示以CS的内容为段地址,偏移地址为100H的内存地址
B、
内存块
功能简介 显示所有寄存器内容 显示和修改指定寄存器内容 显示和修改FR的内容 从指定地址开始汇编指令 对指定内存块进行反汇编 单步或多步执行指令 单步或多步执行指令 连续执行指令 设断点执行程序 显示指定内存块内容 修改指定内存内容 填充指定内存块 在指定内存块中查找串 复制内存块内容 比较两个指定内存块 退出DEBUG,返回DOS Q DEBUG主要命令一览表
内存块表示一个内存区域,有两种表示方法:一种是用首地址和末地址表示,其中首地址用前面介绍的内存地址表示法,而末地址只用偏移地址表示,其段地址默认为首地址的段值,末地址的偏移地址应比首地址的偏移地址大。
另一种是用首地址和长度表示,其中长度由字符L引出。内存块的最大值是64K。 命令D默认的长度为80H个字节,命令U默认的长度为20H个字节。 例 下面两种表示法均表示DS:200H~DS:24FH的内存块 DS:200 24F DS:200 L50
例 下面两种表示法均表示3000H:5100H~3000H:51FFH的内存块 3000:5100 51FF 3000:5100 L100
C、 D、
2、
字符串参数一般用单引号‘’给出 例:-F DS:1000 ‘Please Input:’
数值参数为一个字节的十六进制数。多个数值参数之间必须用分隔符分隔。
例:-E DS:2000 12 34 56 78 90 常用DEBUG命令介绍 (1)
A、
显示、修改寄存器内容 显示所有寄存器内容
格式:-R
功能:以十六进制形式显示CPU内部各寄存器的值;以符号形式显示标志寄存器各标志位(TF除外);并将CS:IP所指向的内存内容反汇编成一条指令,可视为将要执行的指令。
标志名称 溢出标志(OF)(overflow flag) 方向标志(DF)(direction flag) 中断标志(IF)(interrupt flag) 符号标志(SF)(sign flag) 零标志(ZF)(zero flag) 辅助标志(AF)(auxiliary carru flag) 奇偶标志(PF)(parity flag) 进位标志(CF)(carry flag) 标志位的符号表示
例 进入DEBUG后,查看各寄存器的值,并记录当前CS和IP的值。 -R
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1270 ES=1270 SS=1270 CS=1270 IP=0100 NV UP EI PL NZ NA PO NC
1270:0100 0409 ADD AL,09 从显示可知,CS=1270H,IP=0100H
由于所装的系统不同,可用内存会有所不同,应记录自己系统进入DEBUG后的CS和IP值。
B、
修改寄存器
格式:-R 寄存器名
功能:DEBUG首先显示指定寄存器的当前值,并在下一行首给出提示符“:”,等待用户输入新值。若直接回车相当于不修改寄存器的值。
标志为1 OV DN EI NG ZR AC PE CY 标志为0 NV UP DI PL NZ NA PO NC
例 –R DS 1270 :12A3
DS的内容由原来的1270H修改为12A3H。 (2)
A、
汇编、反汇编指令 汇编命令A
格式:-A 内存地址
功能:先显示汇编的内存地址,等待用户输入一条助记符指令。用户输入指令并回车后,DEBUG将把这条指令对应的机器码顺序存放在指定的内存单元中,并提示下一地址,等待用户继续输入下一条指令。
若直接回车,则退出A命令。
若输入指令有误,则显示出错信息,仍然提示当前的汇编地址,用户可重新输入指令。 -A 1270:100
1270:0100 MOV AH,2 1270:0102 MOV DL,’a’
error
1270:0102 MOV DL,61 1270:0104 INT 21 1270:0106 INT 20 1270:0108 B、
反汇编指令U
格式1:-U 内存地址 格式2:-U 内存块
功能:格式1从指定地址处开始将20H个字节的目标代码转换成汇编指令形式,缺省内存地址
时,从当前地址CS:IP开始。
格式2将指定范围的内存单元中的目标代码转换成汇编指令。 例 反汇编从1270:100开始长度为20H个字节的内存单元内容。 -U 1270:100
1270:0100 B402 MOV AH,02 1270:0102 B261 MOV DL,61 ? (3)
A、
显示、修改内存内容 显示命令D
格式1:D 内存地址 格式2:D 内存块
功能:格式1从起始地址开始按十六进制显示80H个单元的内容,每行16个单元,共8行,每行右边显示16个单元的ASCII码,不可显示的ASCII码则显示“· ”。 格式2显示指定范围内的存储单元的内容。若地址缺省,则按格式1显示。 例如 -D 200 ;表示从DS:0200H开始显示128个单元内容 -D 100 120 ;表示显示DS:1000~DS:0120单元的内容 例:-D 12AF:100 L30
12AF:0100 41 42 43 44 45 00???ABCDE.W?. 12AF:0110
12AF:0120 B、
修改命令E
格式1:-E 内存地址 字符或数值串 格式2:-E 内存地址
功能:对于格式1,用命令中的字符串或数字修改指定的内存单元。
对于格式2,先给出命令中指定内存单元的内容,并给出提示符“· ”,可在其后输入要修改的值,若直接按空格则不修改该单元内容,而接着提示下一单元的内容,若直接回车表示结束E命令。
例 用字符串‘HELLO‘对应的ASCII码修改从DS:1000H开始的5个内存单元。 -E DS:1000 ‘HELLO‘
例 用数值12H,34H,56H,78H,90H,FAH 修改从12FA:100H开始的6个单元。 -E 12FA:100
12FA:0100 41.12 42.34 43.56 44.78 45.90 00.FA 57 C、
填充命令F
格式:-F 内存块 字符或数值串
功能:用命令中指定的字符或数值串填入指定的内存块,当指定的字符或数值串的总字节数小于指定的内存块,则在指定的内存块重复输入。
例 将字符串‘HELLO WORLD’填入DS:2000至2100H的内存块中: -F DS:2000 2100 ‘HELLO WORLD’ D、
搜索命令S
格式:-S 内存块 字符或数据串
功能:在指定的内存块内搜索指定的字符或数据串,如找到则显示字符或数据串在内存中的首地址。
例:在DS:2000H开始,大小为20H的内存块中查找字符串‘HELLO WORLD’ -S DS:2000 L20 ‘HELLO WORLD’ 12A3:2000 12A3:200C E、
复制命令M
格式:-M 内存块1 内存块2的首地址
功能:将内存块1的内容复制到内存块2,内存块1的内容不变。 例 将2000:100H开始,大小为20H的内存块复制到DS:200H -M 2000:100 L20 DS:200 F、
比较命令C
格式:-C 内存块1 内存块2的首地址
功能:顺序比较两内存块各单元的内容,如两个内存块内容相同,则不显示任何信息,直接返回DEBUG状态;
如有不同,则将各自的地址和内容显示出来。
例 比较DS:200H和2000H:100H开始,大小为20H的两内存块。 -C DS:200 L20 2000:100 (5)执行程序
A、
单步执行 -P=内存地址
格式:-T=内存地址
功能:用命令中内存地址的段地址和偏移地址修改CS和IP,然后执行由CS:IP指向的内存单
元处的一条指令,显示各寄存器的值,并反汇编下一条指令,返回DEBUG状态。
若命令中不用“=”给出执行的首地址,则从当前CS:IP指向的指令的命令开始执行。 例 执行1270:100处的指令MOV AH,2 -T=1270:100
AX=0200 BX=0000 DS=12A3 ES=1270 1270:0102 B261 MOV DL,61 B、
连续执行
格式:-G=内存地址
功能:从命令给出的内存地址开始执行指令,直到执行完能控制返回DEBUG。 例 -G=1270H:100
Program terminated normally C、
断点执行
格式:-G=内存地址 断点地址
功能:程序从内存地址开始执行,到断点地址停下来,断点地址通常是某一条指令的起始地址。 (4) 格式:-Q
返回DOS
正在阅读:
微机原理实验debug调试12-15
小心翼翼的意思02-06
乐观的她作文350字06-25
公共用品消毒制度及程序10-09
宁波市涂料行业协会会员单位一览201110-03
舞林风青春舞蹈风采大赛策划书05-04
一般工业固体废物贮存、处置场污染控制标准(GB18599-2001)(2013年修改版)01-30
中国人民解放军各集团军编制战斗序列大全05-02
帮助的作文300字五篇03-27
学生关爱残疾人优秀作文参考范文集锦08-03
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 微机
- 调试
- 原理
- 实验
- debug
- 教科版六年级科学上册知识点总结
- 模具涂层TD技术
- 全国的FM收音机频率!(频道合集)
- XX企业员工招聘管理研究开题报告
- 中国期刊杂志市场专项调研及未来五年发展态势预测报告
- 《三年级单脚起跳 - 双脚落地》 - 教案、反思
- weblogic安装和配置
- 南通职业大学第 五 届大学生创业计划大赛决赛
- 单片机课程设计报告 - 图文
- (最终稿)荆门市开发协会工作报告
- 图书馆项目管理计划书
- 《加班》最新4人年会搞笑小品剧本
- 班级德育工作总结
- 2017年内蒙古执业助理医师《儿科学》:营养性维生素D缺乏性佝偻病的临床模拟试题
- 普通话轻声练习测试
- 贝聿铭给年轻设计师的10点忠告
- 2019六年级下册数学试题小升初数学模拟卷 - 冀教版(含答案)精品教育 doc
- 第2章金融资产习题答案
- 毕业论文 基于单片机的温度控制系统 - 图文
- 日语拟声拟态词