社区
汇编语言
帖子详情
汇编语言程序设计DEBUG中G命令用法
兔毛147
2019-05-18 09:31:37
使用U命令之后发现到33结束,但是为什么G33之后就没反应了呢?请各位大佬指点一下,不胜感激
...全文
1068
2
打赏
收藏
汇编语言程序设计DEBUG中G命令用法
使用U命令之后发现到33结束,但是为什么G33之后就没反应了呢?请各位大佬指点一下,不胜感激
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zara
2019-05-18
打赏
举报
回复
那就是没运行到 33 处吧,上面有循环,可能是有异常没能终止,也可能是 35子程有问题没正常返回;单步走个循环看看就是。
兔毛147
2019-05-18
打赏
举报
回复
大学ibm-pc
汇编语言
程序设计
实验报告
三、使用说明 Cd dos
命令
,显示当前目录名或改变当前目录 Masm 文件名.asm 编译生成obj文件 Link 文件名.asm 连接生成exe文件
Debug
文件名.exe 调试程序 -g
命令
运行程序 -u
命令
显示程序 -d
命令
查看数据段的情况 -e
命令
修改数据区的字符串 -q
命令
退出
debug
返回dos 四、程序
DEBUG
的使用
实验1
DEBUG
的使用 1、实验目的 掌握
DEBUG
常用
命令
的使用;熟悉8086CPU内部有多少寄存器;掌握访问段式存储器结构地址的表示方法。 2、实验内容 将数据段
中
的两个数求和,结果保存在数据段
中
。源程序、机器语言程序如下: CS:0100 Al 00 00 MOV AX,[0000] CS:0103 03 06 02 00 ADD AX,[0002] CS;0107 A3 04 00 MOV [0004],AX CS:010A CB RETF 数据段内容如下: DS:0000 2301 2500 ;两个已知数 3、实验步骤 (1)用E
命令
键人上述机器语言程序和数据段的初值。 —E DS:000 2301 2500 —E DS:006 2A 2A 2A (2A为*标记,是为便于查看数据段内容而设置) —E CS:100 A1 00 00 03 06 02 00 —E CS:107 A3 04 00 CB (2)用D
命令
检查数据段、代码段内容。 —D DS:0 —D CS:100 (3)用T
命令
逐条执行上述程序,注意观察每条指令执行后相应寄存器的变化。 (4)用U
命令
反汇编本程序。 —U 100 10A (5)用R
命令
修改IP的内容为0100重新执行上述程序。 —R IP 显示:IP 010A :0100 (6)用G
命令
运行程序。 —G =CS:0100 107 观察:IP=AX= —G =CS:0100 10A 观察:IP=AX= 4、实验思考题 (1)用A
命令
输入源程序: CS:0100 MOV AX,FFFF STC 0104 MOV DS,AX MOV BX,DS MOV ES,BX MOV CX,ES MOV SS,CX MOV DX,SS MOV SP,DX MOV BP,SP MOV SI,BP MOV DI,SI JNB 012l XOR AX,DI JNZ 0125 CLC JMP 0104 0121 OR AX,DI JZ0100 0125 HLT (2)用T
命令
单步执行上述程序。观察结果,并注意标志寄存器的变化。
汇编语言
实验1
实验一 利用
DEBUG
调试工具调试程序实验类型: 验证性实验目的:1、熟悉
DEBUG
有关
命令
的使用方法2、利用
DEBUG
掌握有关指令的功能3、利用
DEBUG
运行简单的程序段实验内容: 利用
DEBUG
的A
命令
输入一小段程序代码,查看程序运行前相关寄存器和内存单元的内容,然后利用G
命令
运行程序后在查看相关寄存器和内存单元以及标志位的变化。参考程序如下:MOV AX,8000HMOV DX,4000HMOV CX,5000HMOV BX,9000HADD AX,BXADC DX,CX注意:
debug
常用
命令
参请参考同一文件夹下--------调试程序
DEBUG
的使用.ppt-------。
汇编实验一实验报告.doc
汇编语言
程序设计
实 验 报 告 课程名称
汇编语言
程序设计
班 级 姓 名 学 号 指导教师
汇编语言
程序设计
实验一
DEBUG
程序使用技巧 1. 寄存器和内存 开始
Debug
程序。输入"Q( " 退出程序。再次启动
Debug
。 输入 "r( "来显示CPU的当前状态和寄存器
中
的当前内容。 输入 "r AX( "和"1234", AX 寄存器
中
的内容变为 1234。 输入 "r DS( "和"2000", DS 寄存器
中
的内容变为 2000。 输入 "d DS:1000( "来显示数据段
中
80H 字节数据,把数据抄在这里: 输入 "f DS:1000 1100 77( "再显示一次这 80H 字节。判断这条指令的作用是什么? 答:从DS:1000地址七 ,将1100H字节的内容赋值为77H 再输入 "d 2000:1000( "来显示数据段
中
80H 字节数据。观察与前面的数据有无不同。 输入 "d 1900:0100( "和"d 1ff0:0100( "来显示两个存储段
中
的内容。比较其
中
2000:0000 段
中
的数据。相同段落
中
的数据相同么?根据你的观察,得出结论,是否程序员可以用 不同的段起始地址和偏移量组合,把不容内容存入相同的内存段
中
。 答:相同段落
中
的数据相同, 程序员可以用不同的段起始地址和偏移量组合,把不容内容存入相同的内存段
中
。 2.输入机器码,使用单步和断点 退出
Debug
,再重新启动
Debug
。 输入 "r( "观察 CPU 的状态,下一条指令是什么? 答:下一条指令是ADD [BX+SI],AL 使用两种方式输入一段程序,第一种方式:直接输入机器码。 输入 "u( "来显示程序段
中
的指令序列。然后输入 "d CS:100( " 来显示代码段
中
的数据。观察显示内容。 "u CS:100 106( "做反汇编,就是显示出汇编语句。将这几句汇编语句记录下来: 使用输入 "r( "观察 CPU 的状态,使用 "t( "来跟踪程序,直至最后一条指令执行完毕。注意,跟踪程序前,要让 IP 寄存器
中
的值是 100H。一直监视 AX 和 IP 寄存器的内容变化,尤其是标志位的变化。 第二种方式,是输入汇编语句。重启
Debug
程序。 先输入 "a CS:100( ",然后输入: MOV AX, FF00 ADD AX,01F0 MOV BX,AX NEG BX ADD AX,BX 输入 "u CS:100 10A( "就可以得到这几条语句的机器码。把机器码记录下来: 使用
命令
"r ip( "再输入 "100( ",可以将寄存器 IP
中
的内容置为 "100H"。再输入"r( "观察 CPU 的状态,然后反复输入 "t( " 跟踪程序,直到程序结束。解释为什么标志位内容会有改变?另外,说明这段程序完成 什么任务? 答: (1)执行完指令: add ax,01f0后 结果为 100f0H 发生了进位,进位标志位发生改变,并且二进制的100f0H
中
1 的个数为偶数,所以奇偶标志位发生了改变。 (2)执行完指令:neg bx 即求补指令,bx由正数变为负数,符号标志位发生改变;二进制的1的数量有偶数变成奇 数,奇偶标志位发生改变。 (3) 执行完指令:add ax,bx,ax由00f0H 变为10000H,符号标志位发生改变,零标志位发生改变,奇偶标志位发生改变。 重新把寄存器 IP 的内容变为 100H,不使用跟踪
命令
"t",改用"g 10c"来完成程序。 程序
中
还可以加断点,做法是在程序
中
加入 "int 3" 这条指令。如果这条指令在程序的末尾,我们可以通过输入 "g( " 来完成运行程序。这样就不需像上面需要告诉
Debug
程序最后机器码字节的地址偏移量了。"int 3"是
Debug
中
很有效的返回控制指令。把这条指令放在程序
中
必要的位置上,在这条指令后面的代 码在不允许时就不会运行。 3.ASCII 字符码,从键盘输入,从显示器输出 (i) 标准 ASCII ( American Standard Code for Information Interchange ) 码使用 7- bit 二进制数来代表字符。一般文本信息经常用 ASCII 编码。 使用
命令
"a CS:100( ", 输入下面的代码: MOV BX,0 MOV [BX],BL INC BX CMP BH,1 JNE 103 INT 3 使用 "d DS:0 100( "
命令
,显示程序运行前相应内存段
中
的数据。运行上面的程序来填充 DS:0000-00FF 这段内存
中
的内容。再次输入 "d DS:0 100( "
命令
来显示填充的内容。在窗口的右边,可以看到相应的ASCII码字符。 如果填充的内容不是字符,显示就用点表示。用类似
汇编语言
复习课件 希望对初学
汇编语言
的同学有点帮助
总 复 习 总复习提示: 第2,3,4章是基础,重点掌握:8086/8088CPU内部的14个 寄存器的功能及用途;逻辑地址与物理地址的概念;堆栈 及堆栈操作;寻址方式;传送指令、算术运算指令、位操 作指令和处理器控制指令;语句种类;变量的定义及其三 种属性;主要伪指令(如DB、DW、DD、EQU、SEGMENT/ENDS、 ASSUME、ORG和$)的应用. 第5章是重点,着重掌握:条件转移指令、循环指令、子 程序的调用和返回指令;程序的4种基本结构形式及其设计 方法;DOS功能子程序的调用(主要是1,2,9,A号功能). 第6章重点是:BCD码校正指令及其应用;乘除法指令及 其应用;多精度数运算程序的编写. 第7章重点是:串操作指令及其应用(7.2节的例子);表 的插入/删除;排序. 第8章重点是:代码转换程序的编写,二进制数与十进制 之间的转换方法,十六进制数的ASCII码与二进制数之间 的转换方法及
程序设计
. 第9章重点是:结构的定义,结构变量及其字段的操作; 宏功能的使用过程,要求能写出指定功能的宏定义. 第10章重点掌握输入/输出指令(IN和OUT)的格式. 另外,对上机操作的步骤要熟悉,要掌握
DEBUG
的几个主 要
命令
(如D、U、R、T、G、Q
命令
)的应用.
汇编语言
21,459
社区成员
41,601
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章