汇编(六)——汇编语言程序格式及MASM-为依疯狂

交谈校订的实现预期的结果亦某一校订器所应用,当时的目的模块贴纸(*. obj)是由拆卸了。、衔接后,可使完满贴纸(* exe)就队形了。。

1、汇编交谈程序的判决体式
汇编程序由判决序列结合。。判决通常由四使成比例结合,由分开符分开。,它们有两种体式:
(1)使完满国家——由硬整理结合的国家,它通常对应于最好者机具整理。,出如今程序的行为准则段中:
依等级排列:硬整理记忆术的 操算数,操算数      ;正文
(2)解说性提名表扬——伪整理表格的提名表扬,它通常通知汇编程序多少汇编源程序:
名字  伪整理记忆术的 限制因素,限制因素,…     ;正文
在使完满判决中,科郎前的依等级排列复制该整理的逻辑地址;解说判决中间的解释可以是变量名。、段名、辅程序名或宏名等,既复制逻辑地址又具有本性的各式各样的属性。副标志的名字易于区别他们可能的选择有最好者结。
硬整理记忆术的是一些处置部件整理。,它也可以是宏整理。,伪整理记忆术的首要使完满某一举措,不出示,在程序使完满前由汇编程序使完满处置。
处置部件整理的操算数可以是最好者当前的数字。、完全符合和往事单元。伪整理的限制因素可以是常数。、变量名、表达,等。,突出最好者,逗号分开限制因素。
判决中分号的一使成比例是正文。。
2、汇编交谈源程序
这是在前学到的。,最好者使容易的区段使明确体式和最好者达到结尾的的段使明确
3、宏汇编程序MASM
MASM6.11,安顿5个软盘,默许的是安顿在C:MASM登记分类,达到结尾的的masm汇编体系包括多个贴纸,但最根本的是以下几点:
       汇编程序
       汇编不义行为报文贴纸
   MS-DOS伸出名的贴纸
     衔接贴纸
      辅藏书能解决贴纸
结果采取集成利用细节和,它首要与下列的贴纸关系到:
           程序员的任务平台
         工程服侍程序
          nmaker的MS-DOS伸出球棒
             源行为准则调试器
CVPACK.EXE         压气机的调试新闻,在行为准则的可使完满贴纸
       帮助贴纸维修业务程序
        阅读知识库确立或使安全程序
        阅读新闻的程序
       BSCMAKE亲和的的球棒
*.MXT              各式各样的电路试验板的伸出器贴纸
*.XXT              各式各样的交谈和伸出
4、汇编交谈中命令行的利用快跑
(1)原始程序的编制
用校订软件创作ASM源程序,如
LI6-1.ASM
;LI6-1.ASM
.MODEL SMALL
.STACK
.DATA
字母行分贝 哈喽,Everybody!”
.CODE
.STARTUP
MOV DX,OFFSET STRING
MOV AH,9
INT 21H
.EXIT 0
END
(2)原始程序的编辑
汇编程序是将源程序为目的的快跑,如次:
ML /c LI6-1.ASM
结果源缺席句法误差,形成目的模块贴纸。
(3)目的贴纸的衔接
衔接程序可以包括最好者或多个目的贴纸和库贴纸。、COM贴纸),如次:
LINK
衔接程序的普通体式:
LINK 限制因素选择权] obj贴纸列表 exe贴纸名,MAP贴纸名,库贴纸]
最好者衔接程序可以衔接多个模块贴纸。,队形可使完满贴纸;多个模块贴纸由 分开。。左右EE贴纸名可以掉换为第最好者模块贴纸名平稳的的D。。确立或使安全测图贴纸名以确立或使安全衔接映射贴纸。,不同的不克不及的形成映射贴纸。。库贴纸是衔接程序等所需的辅藏书。。通知默许值的应用。
其实,ML汇编程序可以不自觉动作召唤LINK衔接程序(ML表现MASM和LINK),然后实现预期的结果拆卸和衔接,可使完满贴纸的使完满可以如次使完满:
ML LI6-1.ASM
ml的命令行体式如次所示:
ML 限制因素选择权] 贴纸列表 联锁衔接限制因素选择权]
限制因素选择如次(坚持到底限制因素影响下搭车:
容许巨大往事花样(确立或使安全COM贴纸)
C——只编辑源程序的汇编,缺席不自觉动作衔接
/fl 贴纸名——Chuan体系了最好者编辑列表贴纸(伸出LST)
/Fr 贴纸名确立或使安全a.sbr源,可以阅读下PWB
/Fo 贴纸名——依据指出的贴纸名形成模块贴纸,而不是应用默许解释
/Fe 贴纸名——依据指出的f的解释形成可使完满贴纸。,而不是应用默许解释
/Fm 贴纸名-确立或使安全衔接映射贴纸(伸出名测图)
/I 航线解释——设置包括要包括的s的贴纸的航线
在形成的贴纸列表贴纸中,列出由汇编程序发生的整理
在确立或使安全列表贴纸时形成SN -无表示表。
子——在形成模块贴纸时,Add the information needed by the debugger CODEVIEW
ZS——声调反省,不形成一些行为准则
去世给衔接程序联锁的联锁限制因素
列表贴纸是文本贴纸。,包括源行为准则和目的行为准则。,确立或使安全列表贴纸,输出以下命令:
ML /Fl /Sg LI6-1.ASM
该命令形成模块贴纸和可使完满贴纸。,也形成列表贴纸,应用/ Sg,结果源有a.startup、掉出伪整理和快跑把持的伪instruction.if、如此云云,相符合的硬整理将在列表贴纸中到达。;不同的,列表贴纸只支付下面的伪整理。。如次:

li6-1.lst
Microsoft (R) Macro Assembler Version 6.11      08/10/05 14:09:13
li6-1.asm           Page 1 – 1

;LI6-1.ASM
.MODEL SMALL
.STACK
0000     .DATA
0000 48 65 6C 6C 6F 2C  字母行分贝 哈喽,Everybody!”
45 76 65 72 79 62
6F 64 79 21
0000     .CODE
.STARTUP
0000      *@Startup:
0000  BA —- R    *     mov    dx, DGROUP
0003  8E DA     *     mov    ds, dx
0005  8C D3     *     mov    bx, ss
0007  2B DA     *     sub    bx, dx
0009  D1 E3     *     shl    bx, 001h
000B  D1 E3     *     shl    bx, 001h
000D  D1 E3     *     shl    bx, 001h
000F  D1 E3     *     shl    bx, 001h
0011  FA     *     cli   
0012  8E D2     *     mov    ss, dx
0014  03 E3     *     add    sp, bx
0016  FB     *     sti   
0017  BA 0000 R MOV DX,OFFSET STRING
001A  B4 09    MOV AH,9
001C  CD 21内心 21H
.EXIT 0
001E  B8 4C00     *     mov    ax, 04C00h
0021  CD 21     *     int    021h
END
Microsoft (R) Macro Assembler Version 6.11      08/10/05 14:09:13
li6-1.asm           Symbols 2 – 1

Segments and Groups:

                N a m e                 Size     Length   Align   Combine Class

DGROUP . . . . . . . . . . . . . GROUP
_DATA  . . . . . . . . . . . . . 16 Bit  0010   Word   Public  知识
STACK  . . . . . . . . . . . . . 16 Bit  0400   Para   Stack   叠
_TEXT  . . . . . . . . . . . . . 16 Bit  0023   Word   Public  行为准则

Symbols:

                N a m e                 Type     Value    Attr

@CodeSize  . . . . . . . . . . . Number  0000h 
@DataSize  . . . . . . . . . . . Number  0000h 
@Interface . . . . . . . . . . . Number  0000h 
@Model . . . . . . . . . . . . . Number  0002h 
@Startup . . . . . . . . . . . . L Near  0000   _TEXT 
@code  . . . . . . . . . . . . . Text     _TEXT
@data  . . . . . . . . . . . . . Text     DGROUP
@fardata?  . . . . . . . . . . . Text     FAR_BSS
@fardata . . . . . . . . . . . . Text     FAR_DATA
@stack . . . . . . . . . . . . . Text     DGROUP
STRING . . . . . . . . . . . . . Byte  0000   _DATA 

    0 Warnings
0 Errors

列表贴纸有两使成比例。在源程序的最好者使成比例,以下是与对立偏移量相互关系的知识或整理,向右地授权代理是整理的机具行为准则音节标号、机具行为准则和汇编交谈判决。机具行为准则后有字母”R”表现该整理的紧接地数/置换量如今不克不及决定黑金色、黑色朴素地对立地址,不料当程序衔接或输出到。带有*的处置部件整理是由在前的伪整理形成的。,应用/ Sg选择权时的列表贴纸才倾斜。结果陈旭中有最好者不义行为(不义行为)或正告(温),它也会在相符合的场所被迹象。。
列表贴纸的次要的使成比例是识别符的用法。。把他们的名字(名字)写在段名和组名上。、上浆(规模)、尺寸(尺寸)、场所(排成直线)、结成(结成)和类别(类)属性;把他们的名字命名为表示、典型(典型)、评价观(评价)和属性(属性)。应用使容易的区段使明确体式,拆卸体系有差不多预使明确的识别符。,比如,@知识等。
图像贴纸亦文本贴纸。,每个分割在内存中间的散布。确立或使安全以下命令:
ML /Fm LI6-1.ASM
图像贴纸将发生,如次:

Start  Stop   Length Name                   Class
00000H 00022H 00023H _TEXT                  CODE
00024H 00033H 00010H _DATA                  DATA
00040H 0043FH 00400H STACK                  STACK

 Origin   Group
0002:0   DGROUP

  Address         Publics by Name

Address         Publics by Value

Program entry point at 0000:0000

程序(开端)的每个逻辑段的微生物点是第最好者g。、终点(中止)、尺寸(尺寸)、段明(解释)和类别(类);当时的,段(组)场所和组名;充分地迹象程序开端使完满的逻辑地址。。坚持到底,在这一点上的终点、完毕和段地址是在开端时的对立地址。,现实的相对地址需求在程序进入后决定。。

5、可使完满程序调试
假如在操作体系下输出贴纸名:
LI6-1
操作体系安顿在贴纸上以进入主存储器。,开端运转,在调试时调试:
DEBUG
流行的,复制程序的规模,对程序启动exe的第最好者整理的IP整理,导演堆栈段的SP,DS和ES不导演程序知识段。,相反,它导演的程序前100h(这使成比例是最好者横贯地的PR;因而,DS和ES霉臭在程序中设置。,作为the.startup伪整理的程序使完满。应用使容易的区段使明确体式的程序,主内存中间的行为准则段从低到高的挨次。、知识段和堆栈段。

前述的办法可用于编辑充分地3个知识传输整理。

发表评论