MASM 怎么用..

MASM 怎么用..,第1张

汇编语言程序格式及MASM 汇编语言的实现也是先利用某种编辑器编写汇编语言源程序(ASM),然后经过汇编得到目标模块文件(OBJ)、连接后形成可执行文件(EXE)。 1、汇编语言程序的语句格式 汇编语源程序由语句序列构成。语句一般由分隔符分成的四个部分组成,它们有两种格式: (1)执行性语句——由硬指令构成的语句,它通常对应一条机器指令,出现在程序的代码段中: 标号:硬指令助记符 *** 作数, *** 作数 ;注释 (2)说明性语句——由伪指令构成的语句,它通常指示汇编程序如何汇编源程序: 名字 伪指令助记符 参数,参数, ;注释 ◆执行性语句中,冒号前的标号反映该指令的逻辑地址;说明性语句中的名字可以是变量名、段名、子程序名或宏名等等,既反映逻辑地址又具有自身的各种属性。标号和名字很容易通过是否具有冒号来区分。 ◆硬指令助记符可以是任何一条处理器指令,也可以是一条宏指令,伪指令助记符主要完成一些不产生CPU动作的说明性工作,在程序执行前由汇编程序完成处理。 ◆处理器指令的 *** 作数可以是立即数、寄存器和存储单元。伪指令的参数可以是常数、变量名、表达式等,可以有多个,参数之间用逗号隔开。 ◆语句中由分号开始的部分是注释。 2、汇编语言源程序 这个以前已经学过,主要有简化段定义格式和完整段定义格式 3、宏汇编程序MASM MASM611,安装文件5张软盘,默认安装在C:\MASM目录下,完整的MASM汇编系统包含很多文件,但最基本的有如下几个: MLEXE 汇编程序 MLERR 汇编错误信息文件 DOSXNTEXE MS-DOS扩展文件 LINKEXE 连接文件 LIBEXE 子程序库管理文件 如果采用集成开发环境PWB,主要涉及如下文件: PWWBEXE 程序员工作平台 NMAKEREXE 工程维护程序 NMAKEEXE nmaker的MS-DOS扩展驱动程序 CVEXE 源代码调试器CodeView CVPACKEXE 调试信息压缩器,它为CODEVIEW准备一个可执行文件 HELPMAKEEXE 帮助文件维护程序 BSCMAKEEXE 浏览数据库创建程序 SBRPACKEXE 浏览信息程序 PWBRMAKEEXE BSCMAKE兼容驱动程序 MXT 各种PWB扩展工具文件 XXT 各种语言的PWB扩展文件 4、汇编语言的命令行开发过程 (1)原程序的编写 用编辑软件书写asm源程序,如 LI6-1ASM ;LI6-1ASM MODEL SMALL STACK DATA STRING DB 'Hello,Everybody!' CODE STARTUP MOV DX,OFFSET STRING MOV AH,9 INT 21H EXIT 0 END (2)原程序的汇编 汇编是将原程序翻译成由机器代码组成的目标模块文件的过程,如下: ML /c LI6-1ASM 如果源程序没有语法错误,则生成一个目标模块文件LI6-1OBJ (3)目标文件的连接 连接程序能把一个或多个目标文件和库文件和成一个可执行文件(EXE、COM文件),如下: LINK LI6-1OBJ 连接程序的一般格式: LINK [/参数选项] OBJ文件列表 [EXE文件名,MAP文件名,库文件][;] 连接程序可以将多个模块文件连接起来,形成一个可执行文件;多个模块文件用“+”分隔。给出EE文件名就可以替代与第一个模块文件名相同的缺省名。给出MAP文件名将创建连接映像文件,否则不生成映像文件。库文件是指连接程序需要的子程序库等。“;”表示采用缺省值 事实上,ML汇编程序可以自动调用LINK连接程序(ML表示MASM和LINK),实现汇编和连接依次进行,如下即可完成可执行文件的生成: ML LI6-1ASM ML的命令行格式如下: ML [/参数选项] 文件列表 [/LINK连接参数选项] 参数选项如下(注意参数是大小写敏感的): /AT——允许tiny存储模式(创建一个COM文件) /c——只汇编源程序,不进行自动连接 /fl 文件名——川建一个汇编列表文件(扩展名

用dir命令检查1obj文件是否存在?如果存在,直接输入命令“link 1;”

后面明确显示你的程序需要dosxntexe(或在path搜索路径中能找到)。

--栈溢出

--空的指针

你使用低版本的masm。

比如masm5

或者使用tasm

或者到:>

程序代码错误之处较多,已修改如下:

MODEL        SMALL

DATA

     STRING1  DB        'AABBBBAA'

           N  EQU       $-STRING1   ;====

           M  EQU       N/2         ;====

     STRING2  DB        'YES', 0DH, 0AH, '$'

     STRING3  DB        'NO', 0DH, 0AH, '$'

CODE

        MAIN  PROC      FAR

              MOV       AX, @DATA

              MOV       DS, AX

              MOV       ES,AX

              MOV       BX, OFFSET STRING1

              MOV       SI, 0

              MOV       DI, 0       ;====

              ADD       DI,N-1      ;====

              MOV       CX,M        ;====

       NEXT:

              ;CMP       SI, DI

              ;JE        NEXT2

              ;PUSH      SI

              ;INC       SI

              ;CMP       SI, DI

              ;JE        NEXT2

              ;POP       SI

              MOV       AL, [BX+SI] ;====

              CMP       AL, [BX+DI] ;====

              JNE       NEXT3

              INC       SI

              DEC       DI

              LOOP      NEXT        ;=====

      NEXT2:  MOV       DX, OFFSET STRING2

              MOV       AH, 09H

              INT       21H

              JMP       EXIT

      NEXT3:  MOV       DX, OFFSET STRING3

              MOV       AH, 09H

              INT       21H

       EXIT:  MOV       AX, 4C00H

              INT       21H

        MAIN  ENDP

              END       MAIN

以上就是关于MASM 怎么用..全部的内容,包括:MASM 怎么用..、win8上dosbox中运行masm的问题 求在dosbox下运行masm的具体方法、DOSBox中使用masm编译汇编语言,但是显示是需要DOSXNT,怎么弄啊等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10119816.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存