• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >汇编语言 > 汇编语言的艺术-准备工作(三)

汇编语言的艺术-准备工作(三)

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2017-06-28

匿名通过本文主要向大家介绍了汇编语言的艺术,语言的艺术,教师的语言艺术,语言艺术的魅力,警示牌中的语言艺术等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
</div>

二、目标档侦错及工具

在使用 debug时,因为名称简短,用法也简单。若使用「标题侦错」symdeb.exe则不然,因为首先要生成.map档,测试时,输入文字也较多。对不断使用的人来说,难免嫌烦。简化的方法,是先制作执行档:s.bat 及 sm.bat

s.bat 是专供指定程式侦错用,内容为:
1:symdeb %1.sym %1.exe
这是指已经有了原档的 .map 时,如果程式刚联接完毕,且在联接档中,没有生成 .map 的语句,则应制作 sm.bat 如下:
1:mapsym %1.map
使用「标题侦错」工具有很多优点,其功能较 DEBUG强得多。但是使用者必须注意,需要测试的标题,应该在程式中宣告PUBLIC,否则无法直接跳到该处。
尚有些特殊效果的程式,也应备妥测试的工具,甚至以利用「监视器」的方式,用另外一台电脑来控制。有一些通讯软件,如 xtalk加上symdeb.exe,通过串行埠(serial port )可以联机调试,其手续如次:

1,先在待调程式的主机上输入通讯指令:
C:\>MODE COM1:9600,N,8,1
c:\>symdeb myfile.exe

2,再于已与主机经串行埠联接的副机上输入:
C:\>XTALK
进入指令输入状态,再输入:
C:\>SP
表示设定传输速度,一般多采用9600,但视主机而定。
C:\>9600
最后,输入操作指令:
C:\>GO LO
表示用区域网络,即串行埠口。
这时等待联机成功的讯号,见到萤幕上出现“-”,即可 开始侦错。

3,在主机方面,尚要输入:
C:\>=COM1 ( 或COM2,端视双方的通讯口而定 )

4,至于侦错方式,与利用一台电脑时相同,只是此时在主机上出现的是执行后的结果,而由副机控制侦错步骤。
第三节 分类定义

一、段名(Segment Name)定义

对段名多于一个的程式,最好先有一个定义段的程式,以DRAW为例,假定程式为两段,一为控制程式段,一为绘图程式段。资料分为三段,一为应用资料,一为参考资料,以及制作资料。此外还有一资料索引段,合计有六个段。
兹建议,在通用的基础上,简化段名,将段分类如下:
程式段 (CODE SEGMENT) 定名为 CG
资料段 (DATA SEGMENT) 定名为 DG
索引段 (INDEX SEGMENT)定名为 IG
记忆段 (MEMORY SEGMENT) 名为 MG
特设段 (EXTRA SEGMENT)定名为 EG
堆栈段 (STACK SEGMENT)定名为 SG

当各段超过一组时,则再加数字以区分之。
如在 dr-seg.asm 中,可设为:
1: TITLE SEGMENT DEFINITION OF PROGRAM ‘DRAW’
2: CG1 SEGMENT PUBLIC
3: CG1 ENDS
4: CG2 SEGMENT PUBLIC
5: CG2 ENDS
6: DG1 SEGMENT PUBLIC
7: DG1 ENDS
8: DG2 SEGMENT PUBLIC
9: DG2 ENDS
10: DG3 SEGMENT PUBLIC
11: DG3 ENDS
12: IG SEGMENT PUBLIC
13: IG ENDS
14: END
在 SEGMENT PUBLIC 之后,有多种表示方式:
SEGMENT PUBLIC XXXX
XXXX=CODE 表示为程式段,在联接时,属程式的段与段前后衔接。两段程式之间,以 000H 填充至「节」( 每十六个字元为一「节」 )之首位。
XXXX=DATA 表示资料段,在联接时同上。
如果程式师为了某种原因,必须严格控制程式之位置及长度时,不宜使用上述两种方式。
最简单之陈述方式,即在 SEGMENT PUBLIC之后,保持空白。
XXXX=BYTE 表示程式联接后,各程式之间紧密接合,不留空位。这种方法,有利于程式精简。
XXXX=WORD 表示程式联接后,各程式之间紧密接合,但在后面的程式必然由双数位起。

又如在 XXXX 前后加以引号如:
SEGMENT PUBLIC 'XXXX'
此一宣告,用以通知汇编程式各段的顺序及定义。因此在编写程式时,只要使用的段名及定义与本档相符,不管将各段安排在程式任一位置,都不致发生错误。
‘XXXX’与本段程式的排列顺序有关,在联接时,先将引号中的字串排序妥当,各程式即依此顺序排列之。
也就是说,凡是使用了引号,则程式联接的顺序,即以在引号中字串,于联接时出现先后为顺序。
单一程式档的错误不难测知,但若各段之间发生错误,对经验不足的程式师,将有无从下手之虞,不得不慎!
一般说来,在联接时,最令人头痛的错误讯息为:
'fixup overflow at nnnn..'
不论其错误提示内容如何,此种错误的发生,多半是因为段与段之间的标题、缓冲器或是暂存器的使用发生了混淆,联接程式得不到正确的信息所致。
解决方法是在第一个错误讯息出现时,立刻以‘Ctrl_C’停止汇编,记下第一个讯息,再在原程式中,找到该位置,(多半为一标题位置)在此标题之前,一定会发现与「段」有关的错误。

</div> </div> </div> </div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 汇编语言的艺术-观念正误(一)
  • 汇编语言的艺术-观念正误(二)
  • 汇编语言的艺术-观念正误(三)
  • 汇编语言的艺术-观念正误(四)
  • 汇编语言的艺术-观念正误(五)
  • 汇编语言的艺术-观念正误(六)
  • 汇编语言的艺术-准备工作(一)
  • 汇编语言的艺术-准备工作(二)
  • 汇编语言的艺术-准备工作(三)
  • 汇编语言的艺术-准备工作(四)

相关文章

  • 2017-06-28汇编教程之处理鼠标按键消息
  • 2017-06-17顺序程序设计
  • 2017-06-28动态VXD学习
  • 2017-06-28汇编源码系列之chips
  • 2017-06-17显示I/O
  • 2017-06-28汇编源代码之获得操作系统版本
  • 2017-06-28(汇编源代码 )侦测CPU型号
  • 2017-06-28汇编源码系列之frespace
  • 2017-06-28汇编语言套装软件制作(2)
  • 2017-06-28消息钩子使用教程

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 了解汇编命令行参数
    • 80386的中断和异常
    • 循环程序的结构形式及组成
    • 汇编内存管理和文件输入输出
    • 汇编源码系列之sound
    • 动态库的执行时间
    • 打印I/O
    • 汇编语言编写DOS下的内存驻留程序(5)
    • Win32编程中请慎用ebx/esi/edi
    • 汇编仿FDISK及PQMAGIC列出分区逻辑盘符的prw.asm实现

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有