通行证│用户名: 密码: 验证码: 验证码,看不清楚?请点击刷新验证码 电信网通铁通移动   在线
资源搜索:
热门搜索:Linux VB C语言 PhotoShop Flash TCP/IP
   首页 | 文章 | 软件 | 动画 | 资源 | 励志 | 骗术 | 论坛 | 邮箱 | 会员中心 | 军事 | 科技 | 博客 | 图片 | 商城 | 最新更新 | 800g资源 | 爱心黑客
您现在的位置: 爱国者黑客 >> 资源 >> 程序设计 >> 汇编语言 >> 基础教程 >> 文章正文
汇编语言的艺术(组合语言的艺术)--准备工作
责任编辑:admin   更新日期:2005-8-6
    000A  0000H      │萤幕缓冲区(VGA)             │
                     ├──────────────┤
    000B  0000H      │萤幕缓冲区(CGA,EGA)         │
                     ├──────────────┤
    000C  0000H      │EMS 记忆体扩充区            │
                     ├──────────────┤
    000F  0000H      │ROM BIOS  程式区            │
                     └──────────────┘
    上述之系统段,调入段暂存器中时,原来的 000AH应该是0A00H,余同。
    又使用者操作空间的起始点,因各家设计而异。
    第二节  应用工具的制作

一、联接目标档(OBJ Files)

    程式完成以后,相互间的联结,越大越难,有时是结构的改变,有时是档名的变动。不论什么因素,在在都需要加以维护,而且对工作效率关系重大。

    因此,需先建立一个 do.bat 的执行档,其内容为:
    1:LINK/M @XXXX
    此 XXXX 为一记录档,其中记载所有需联结的目标档名,如果有任何异动,直接更改此档即可。
    在联结时,执行 DO 即可。

    例如:要制作 draw.exe 档,已有 dr1.obj .. drn.obj 以及dr-seg.obj 等档,则此 xxxx 档内容应为:
    1: DR-SEG+
    2: dr1+dr2+.. drn
    3: DRAW,DRAW,,
    在执行 do 后,如果没有错误,所产生的 draw.exe 以及draw.sym 即可供测试。

    也可在第三条后加入:
    4: symdeb (或仅用 s)draw.exe draw.sym
    似此,在发展初期,立即可以测试。如果不需再次联结,将第四条另外作一 .bat 档,随时执行亦可。

    另外有一点需要注意的是,为了要让可执行的程式由指定的起点开始,应在原始档 .asm 的结束格式标记‘end ’后,加一起点的标题名称。
    此标记不论有多少,联接目标档时,会以第一个找到的标题为唯一的入口。如果程式很多,参与工作的程式师也多,在分开测试时,经常使用自己的入口,一旦联接在一起,就可能发生错误。
    解决的方法是由负责联接的程式师,事先准备好前述XXXX记录档,将带有入口标记的程式放在最前面即可。当然,将其他程式标记后的标题删除亦可,但不如前法效率高。

二、目标档侦错及工具

    在使用 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

上一页  [1] [2] [3] [4] 下一页

  • 上一篇文章:
  • 下一篇文章:
  • 热门文章
    Olldbg常见问题
    汇编语言的艺术(组合语言的艺术)--观
    汇编语言的艺术(组合语言的艺术)--准
    汇编语言的艺术(组合语言的艺术)--基
    汇编语言的艺术(组合语言的艺术)--基
    汇编语言---程式设计 (4)
    虚拟8086模式
    SYS命令使用说明
    javascript + CSS 实现动态菜单显
    推荐文章
    自制Windows XP SP2自动安装光盘
    SQLServer注入工具改进版 v1.02
    使用photoshop CS进行自然美肤
    Photoshop绘制诺基亚手机
    PHOTOSHOP制作秋日之梦
    PHOTOSHOP鼠绘名模王爱萍
    Photoshop制作晶莹飞溅的水珠
    教你用PHOTOSHOP做放大镜
    鼠绘美女及服装修画全过程