DNA图谱 / 问答 / 问答详情

用masm5.0编译汇编语言,实现两个字符串的比较,为什么我输入的字符会被覆盖几个?

2023-07-11 15:15:54
TAG: masm
共1条回复
北营

因为你再输出提示消息的时候没有换行,所以覆盖了原来输入的内容

简单修改就是显示输出提示消息的时候输出回车换行就可以了

主要是:

STR1 DB 0DH,0AH,"INPUT",0DH,0AH,"$"

STR2 DB 0DH,0AH,"MATCH",0DH,0AH,"$"

STR3 DB 0DH,0AH,"NO MATCH",0DH,0AH,"$"

改过的完整代码如下:

DATA SEGMENT

STR1 DB 0DH,0AH,"INPUT",0DH,0AH,"$"

STR2 DB 0DH,0AH,"MATCH",0DH,0AH,"$"

STR3 DB 0DH,0AH,"NO MATCH",0DH,0AH,"$"

BUF1 DB 20,?,20 DUP(?)

BUF2 DB 20,?,20 DUP(?)

HH DB 0DH,0AH,"$"

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,ES:DATA

START: MOV AX,DATA

MOV DS,AX

MOV AX,DATA

MOV ES,AX

LEA DX,STR1

MOV AH,09H

INT 21H

LEA DX,BUF1

MOV AH,0AH

INT 21H

LEA DX,STR1

MOV AH,09H

INT 21H

LEA DX,BUF2

MOV AH,0AH

INT 21H

MOV CL,BUF1+2

AND CX,0FH

LEA SI,BUF1+2

LEA DI,BUF2+2

AGAIN: CMPSB

JNE NO

LOOP AGAIN

YES: LEA DX,STR2

MOV AH,09H

INT 21H

JMP STOP

NO: LEA DX,STR3

MOV AH,09H

INT 21H

STOP: MOV AH,4CH

INT 21H

CODE ENDS

END START

相关推荐

如何使用masm

  1、下载个masm5、0,里面至少应包含masm.exe和link.exe,可能还包含其他的,不过只需要最基本的这两个;   2、将masm5、0压缩包里的程序解压,放到一个目录中,然后就在这个目录下建立个文本文件写入个汇编程序,保存,将后缀名改为XX.asm;   3、进入命令提示,开始,运行,输入cmd;   4、进入程序所在文件夹,用dos的cd命令,以2中的为例,键入“d:”,回车,键入“cd masm”,回车,键入“masm XX”,回车3下,键入“link XX”,再回车3下,再键入“XX”,就运行完了。
2023-07-11 04:54:491

汇编语言编译器的MASM编译器介绍

MASM是Microsoft公司推出的汇编编译器。它的版本从低到高经过了很多次的升级(微软的通病,升级补丁多如牛毛)。每次升级除了例行的错误修正外都增加了一些新的功能,以至于到最后高版本和低版本的语法和功能相差很多,向下兼容性也不好。低版本的MASM固然无法编译高版本的源程序,但高版本的MASM也可能无法正常编译低版本的源程序,如MASM 4.0写的源程序常常无法在MASM 6.x上编译成功。在使用MASM系列编译器时,如果不先搞清楚特定的语法和编译选项可以在哪个版本上用,编译中就会错误连篇。所以在这里有必要了解一下MASM各版本的演变过程下表列出了不同版本MASM编译器的区别。版 本简 介MASM 4.00这是最先广泛使用的一个MASM版本,适用于DOS下的汇编编程。它很精巧,但使用起来不是很智能化,需要用户自己一板一眼地写出所有的东西。很多教科书上讲的8086汇编语法都是针对这个版本的,对程序员来说。它只比用Debug方便一点点。MASM 5.00MASM 5.00比4.00在速度上快了很多,并将段定义的伪指令简化为类似 .code与.data之类的定义方式,同时增加了对80386处理器指令的支持,对4.00版本的兼容性很好MASM 5.10对程序员来说,这个版本最大的进步是增加了对@@标号的支持。这样,程序员可以不再为标号的起名花掉很多时间。另外,MASM 5.10增加了对OS/2 1.x的支持MASM 5.10B1989年推出,比上一个版本更稳定、更快,它是传统的DOS汇编编译器中最完善的版本MASM 6.001992年发布,有了很多的改进。编译器可以使用扩展内存,这样可以编译更大的文件,可执行文件名相应从Masm.exe改为Ml.exe。从这个版本开始可以在命令行上用*.asm同时编译多个源文件,源程序中数据结构的使用和命令行参数的语法也更像C的风格。最大的改进之一是开始支持 .if/.endif这样的高级语法,这样,使用复杂的条件分支时和用高级语言书写一样简单,可以做到几千行的代码中不定义一个标号;另外增加了invoke伪指令来简化带参数的子程序调用。这两个改进使汇编代码的风格越来越像C,可读性和可维护性提高了很多MASM6.00A未发售的版本MASM 6.00B最后一个支持OS/2的MASM版本,修正了上一版本中的一些错误MASM 6.10修正了一些错误,同时增加了/Sc选项,可以在产生的list文件中列出每条指令使用的时钟周期数MASM6.10A1992年发布,修正了一些内存管理方面的问题MASM 6.111993年11月发布,支持Windows NT,可以编写Win32程序,同时支持Pentium指令,但不支持MMX指令集MASM6.11C1994年发布,增加了对Windows 95 VxD的支持MASM 6.121997年8月发布,增加 .686,.686P,.MMX声明和对相应指令的支持MASM 6.131997年12月发布,增加了 .K3D声明,开始支持AMD处理器的3D指令MASM 6.14这是一个很完善的版本,它在 .XMM中增加了对Pentium III的SIMD指令集的支持,相应增加了OWORD(16字节)的变量类型MASM 6.15
2023-07-11 04:54:581

汇编语言编译工具masm怎么使用

你可以先在 masm文件夹里建一个新的文件夹,名为nm 然后 将masm文件夹里的masm.exe和link.exe复制到新建的文件夹调用dos命令如果你的masm文件在d盘先用d:接着d;>cd masmd;masmcd nmd;masm m edit进入编辑界面写好程序后 程序命名为123.asm退出d;masm mmasm 123.asmd;masm mlink 123.obj生成可执行文件d;masm m123.exe
2023-07-11 04:55:134

masm是什么?

微软宏汇编语言(Microsoft Macro Assembler)MASM是微软公司开发的汇编开发环境,MASM版本至今在不断的更新,现有最高版本号为MASM32 12.0。
2023-07-11 04:55:262

什么是MASM

怎么说呢,MASM是汇编语言的调试工具吧,我是这样理解的. 自二十世纪80年代初 Microsoft 公司推出 MASM 1.0 以来,目前MASM的版本已升至6.15,支持MMX Pentium、Pentium II、Pentium III及Pentium 4指令系统。 MASM 4.0支持80286/80287的处理器和协处理器;MASM 5.0支持80386/80387处理器和协处理器,并加进了简化段伪定义指令和存储模式伪指令,汇编和连接的速度更快。 MASM 6.0是1991年推出的,支持80486处理器,它对MASM 进行重新组织,并提供了许多类似高级语言的新特点。MASM 6.0之后又有一些改进,微软又推出MASM 6.11,利用它的免费补丁程序可以升级到MASM 6.14,支持到Pentium III指令系统。 MASM 6.x安装文件(链接下载文件MASM611FULL.ZIP)包含在5张软盘上,在DOS(或Windows的MS-DOS模拟环境)下,运行第一张盘上的SETUP.EXE程序就可以开始安装,通常选择在MS-DOS / Microsoft Windows操作系统下使用MASM。 一个MASM汇编系统,主要包含如下内容: • MASM 6.15的汇编程序ML.EXE和配套的汇编错误信息文件ML.ERR,连接程序LINK.EXE,子程序库管理文件LIB.EXE; • CV目录下的CodeView调试程序CV.EXE以及配套的库文件; • HELP目录下的快速帮助文件QH.EXE,以及MASM宏汇编语言、汇编程序ML、连接程序LINK、调试程序CV等所有帮助文件; • 本书作者为方便操作建立的批处理文件、I/O子程序库等。书中例题程序文件也可以建立在某个子目录(例如HBYYLT)下。
2023-07-11 04:55:352

MASM是干什么的

MASM是微软公司开发的汇编开发环境,拥有可视化的开发界面,使开发人员不必再使用DOS环境进行汇编的开发,编译速度快,支持80x86汇编以及Win32Asm是Windows下开发汇编的利器。它与windows平台的磨合程度非常好,但是在其他平台上就有所限制,使用MASM的开发人员必须在windows下进行开发。 MASM版本至今在不断的更新,推荐使用新版本进行开发。
2023-07-11 04:55:422

masm汇编程序在哪

在masm的文件夹下。把要编译的程序写在记事本里,把后缀改成asm,放在masm的文件夹下。然后打开dosbox输入命令进入masm。使用命令进入masm文件夹下。进入C其实就是masm目录。使用masmasm命令生成obj文件0警告0错误代表成功。文件夹下可以看到生成obj程序。obj链接生成exe文件然后就可以执行了。
2023-07-11 04:55:491

什么是masm汇编工具包

MASM32是一个由个人开发的包含了不同版本工具组masm32书写记录建的汇编开发工具包。它的汇编编译器是MASM6.0以上版本中的Ml.exe,资源编译器是MicrosoftVisualStudio中的Rc.exe,32位链接器是MicrosoftVisualStudio中的Link.exe,同时包含有其他的一些如Lib.exe和DumpPe.exe等工具。该工具是由SteveHutchesson开发的。完整的MASM汇编系统包含很多文件,但最基本的有如下几个:ML.EXE汇编程序ML.ERR汇编错误信息文件DOSXNT.EXEMS-DOS扩展文件LINK.EXE连接文件LIB.EXE子程序库管理文件如果采用集成开发环境PWB,主要涉及如下文件:PWWB.EXE程序员工作平台NMAKER.EXE工程维护程序NMAKE.EXEnmaker的MS-DOS扩展驱动程序CV.EXE源代码调试器CodeViewCVPACK.EXE调试信息压缩器,它为CODEVIEW准备一个可执行文件HELPMAKE.EXE帮助文件维护程序BSCMAKE.EXE浏览数据库创建程序SBRPACK.EXE浏览信息程序PWBRMAKE.EXEBSCMAKE兼容驱动程序*.MXT各种PWB扩展工具文件*.XXT各种语言的PWB扩展文件
2023-07-11 04:55:551

汇编语言编译工具masm怎么使用

你可以先在masm文件夹里建一个新的文件夹,名为nm然后将masm文件夹里的masm.exe和link.exe复制到新建的文件夹调用dos命令如果你的masm文件在d盘先用d:接着d;>cdmasmd;masmcdnmd;masm medit进入编辑界面写好程序后程序命名为123.asm退出d;masm mmasm123.asmd;masm mlink123.obj生成可执行文件d;masm m123.exe
2023-07-11 04:56:053

masm是什么 link是什么为什么不直接运行

MASM是X86汇编语言编译软件,Link是X86汇编语言连接软件。汇编语言要经过masm编译生成OBJ文件,之后用Link将OBJ连接生成最终的执行代码。
2023-07-11 04:56:121

DASM和Masm有什么区别

DASM是反汇编 MASM是汇编汇编语言是一种符号化的机器语言,它用助记号和符号地址代替了机器语言的二进制代码,增加了可读性、可用性、方便于人们编写在时间和空间上要求较高的优质程序。大家知道,计算机硬件只能识别和执行机器语言程序,担当转换翻译任务的程序就是汇编程序,经过汇编程序翻译出来的机器语言程序称为目标程序,把这种目标程序给计算机执行,即能获得计算结果。汇编程序在加工源程序时总是从头到尾地对源程序中的符号一个一个地阅读分析,这个动作叫做扫描,一般用两遍扫描来完成对源程序加工转换工作。第二遍扫描时,按所造出的表把每条原为符号化的机器语言代真(换码)成二进制数码形式的机器指令。这是汇编程序的主要加工过程,此外,汇编程序还具备一些附加的功能,例如,查错功能、修改功能、打印功能、执行伪指令功能等。反汇编程序也是一种语言转换程序,它的功能汇编程序相反,它能把机器语言程序转换为汇编语言程序。反汇编程序可以用来将二进制机器语言程序返回到汇编语言程序,来查阅目标码程序的正确性,它也可作为一种“破译”程序。
2023-07-11 04:56:315

masm不是内部或外部命令??

masm当然不是文件啊。他是一个文件夹而已。也不是程序或批处理文件。要生成那个obj之类文件,是通过那个文件夹里后缀名为:.dat那个文件的(通常会有两个,因为我没有装过你说的那个版本所以不知道具体叫什么名字);
2023-07-11 04:56:4610

运行masm文件怎么做?

进CMD 然后键入MASM的地址 然后进入MASM后键入MASM *****(文件名) 然后键入LINK ***** 运行直接键入 ***** 如果调试键入DEBUG ***** 用计事本写好的程序,后缀名要用.ASM 并且要放到MASM的文件夹内.最好你把MASM放到C盘 这样进入CMD CD C:>CD MASM C:MASM>MASM *****(程序正确就可以下一步了) C:MASM>LINK *****(这一步生成.EXE在MASM文件夹下) (运行可以进文件夹直接双击运行) C:MASM>DEBUG *****(调试)
2023-07-11 04:57:083

如何在64位操作系统上使用masm进行编译链接和运行

关于如何在64位操作系统上进行编译链接:首先,需要下载debug.exe,DOSbox,masm假如汇编源文件放在:D:DevelopASM_Programfirst_asm下,文件名为1.asm下载一个masm6.15,将MASM.EXE,LINK.EXE,ML.EXE三个文件复制到1.asm目录中,1.asm内容:(求2^3)assume cs:abcabc segmentmov ax,2add ax,axadd ax,axmov ax,4c00Hint 21Habc endsendwin+R,输入cmd进入命令行,输入C:UsersAdministrator>D:D:>cd DevelopASM_Programfirst_asm至此,进入了源程序所在目录,之后,输入:D:DevelopASM_Programfirst_asm>masm 1.asm会显示:Microsoft (R) MASM Compatibility DriverCopyright (C) Microsoft Corp 1993. All rights reserved.Invoking: ML.EXE /I. /Zm /c /Ta 1.asmMicrosoft (R) Macro Assembler Version 6.15.8803 Patched for you by promethee [ECL] in the year 2001 - enjoyCopyright (C) Microsoft Corp 1981-2000. All rights reserved.Assembling: 1.asmD:DevelopASM_Programfirst_asm>这样,程序就被编译好了,在1.asm文件夹下出现了一个1.obj的文件之后,再输入:link 1.obj之后回车会显示链接信息:Microsoft (R) Segmented Executable Linker Version 5.60.339 Dec 5 1994Copyright (C) Microsoft Corp 1984-1993. All rights reserved.Run File [1.exe]: //显示这个之后需要按下回车之后才出现下一行List File [nul.map]:Libraries [.lib]:Definitions File [nul.def]:LINK : warning L4021: no stack segmentLINK : warning L4038: program has no starting address这样,就生成了1.exe文件,即可执行文件但是由于操作系统是64位的,不能直接运行这个文件,所以,需要使用DOSbox进行运行我们先把下载下来的debug.exe也放到D:DevelopASM_Programfirst_asm下面打开DOSbox,输入:mount c d:DevelopASM_Programfirst_asm之后,输入c:然后输入debug 1.exe就使用debug打开了1.exe了可以输入r命令查看当前寄存器的状态其中,CX寄存器中记录了程序的大小输入t命令进行单步执行注意,执行到最后一句int 21时,要使用p命令执行。
2023-07-11 04:57:141

怎样安装和使用MASM6.11

MASM 6.11的安装与设置1. 打开MASM611SETUP文件夹,运行“Setup”。2. 在出现“Microsoft MASM 6.11 Setup”屏幕之后,按“ENTER”键。3. 在出现的“Microsoft MASM 6.11 Setup Main Menu”屏幕上,选中“Install the Microsoft Macro Assembler” ,按“ENTER”键。4. 在出现的“Microsoft MASM 6.11 Setup System Configuration”屏幕上,选中“MS-DOS/Microsoft WINDOWS”,按“ENTER”键。5. 在出现的“Microsoft MASM 6.11 Setup Microsoft Windows Files”屏幕上,对于“Install Files for Microsoft Windows?”,选中“Yes”,按“ENTER”键。6. 在出现的“Microsoft MASM 6.11 Setup Programmer"s WorkBench”屏幕上,对于“Install PWB?”,选中“Yes”,按“ENTER”键。7. 在出现的“Microsoft MASM 6.11 Setup BriefCompatibility”屏幕上,对于“Install Brief Compatibility?”,选中“No”,按“ENTER”键。8. 在出现的“Microsoft MASM 6.11 Setup Mouse Driver”屏幕上,对于“Copy the Microsoft Mouse Driver?”,选中“Yes”, 按“ENTER”键。9. 在出现的“Microsoft MASM 6.11 Setup MAS.EXE Utility” 屏幕上,对于“Install the MASM.EXE Utility?”,选中“Yes”, 按“ENTER”键。10. 在出现的“Microsoft MASM 6.11 Setup Help Files”屏幕上,对于“Copy the Help Files?”,选中“Yes”, 按“ENTER”键。11. 在出现的“Microsoft MASM 6.11 Setup SamplePrograms” 屏幕上,对于“Copy the Sample Programs?”,选中“Yes”, 按“ENTER”键。12. 在出现的“Microsoft MASM 6.11 Setup DestinationDrive” 屏幕上,对于 “Please Select the Destination Drive∶”中所列出的硬盘驱动器,可任选其一,此处选中“Hard Drive D”,按“ENTER”键。13. 在出现的“Microsoft MASM 6.11 Setup ExecutableFiles” 屏幕上,对于“D∶MASM611BIN”,不改变,按“ENTER”键。14. 在出现的“Microsoft MASM 6.11 Setup LibraryFiles” 屏幕上,对于“D∶ MASM611LIB”, 不改变,按“ENTER”键。15. 在出现的“Microsoft MASM 6.11 Setup IncludeFiles” 屏幕上,对于“D∶ MASM611INCLUDE”, 不改变,按“ENTER”键。16. 在出现的“Microsoft MASM 6.11 SetupInitialization Files” 屏幕上,对于“D∶MASM611INIT”,不改变,按“ENTER”键。17. 在出现的“Microsoft MASM 6.11 Setup Help Files” 屏幕上,对于“D∶MASM611HELP”,不改变,按“ENTER”键。18. 在出现的“Microsoft MASM 6.11 Setup Sample Files”屏幕上,对于“D∶MASM611SAMPLES”,不改变,按“ENTER”键。19. 此后,出现“Microsoft MASM 6.11 Setup Confirm YourChoices”屏幕,列出了前面各步所做出的各项选择的清单,供用户校核。如果发现有选择不当的项目,依然可以进行修改。修改的方法是:先用箭头键选中欲修改的项目,按“ENTER”键,然后再用箭头键选中“Yes”或“No”,最后再按“ENTER”键。如果校核无误,可以按“ENTER”键,以给出确认信息。20. 此后,出现“Microsoft MASM 6.11 Setup Installing”屏幕,安装程序进行拷贝文件的操作,此时仅需等待一会儿。21. 拷贝文件操作结束之后,出现“Microsoft MASM 6.11 SetupInstallation Complete”屏幕,按“CTRL+C”键,退出安装。
2023-07-11 04:57:222

如何使用masm编译软件?

Segmented Executable Linker,Incermental Linker首先MASM软件包并不包含资源编辑器,资源编辑器值是当做Windows SDK的一部分来发布的,或者要从Micsoft Visual Studio软件包Common目录中找到,更有甚者连接器Link竟然不是32位的,只能连接DOS程序...Incermental Linker只能在Visual C++目录中找到。其他一些有用工具也不在MASM的软件包里,所以要使用MASM进行Win32汇编编程需要对软件包进行改造,一方面要舍弃一些MASM软件包的LInk,另一方面,需要到其他地方去找资源编译器和32位链接器等工具软件。Win32编程用的一些链接库导入文件MASM软件包并没有,同样需要到VisualC++中去找,,MASM软件包没有自己的头文件,也不可能用c++的头文件,需要自己根据资料整理Visualc++的.h文件整理出来,然而Windows的数据结构和预定义的数据多的是处了明的。MASM会是Win32编程非常难以下手。
2023-07-11 04:57:313

MASM,TASM,ASM是什么

ASM:宏汇编。(Macroassembler)MASM:微软公司开发的宏汇编,很常用。TASM:Borland公司开发的宏汇编,也很常用,现在已经与MASM全面兼容。另外还有NASM:通用网际的宏汇编。适用于跨平台的软件开发。
2023-07-11 04:57:382

masm out of memory

MASM是微软公司开发的汇编开发环境,拥有可视化的开发界面,使开发人员不必再使用DOS环境进行汇编的开发,编译速度快,支持80x86汇编以及Win32Asm是Windows下开发汇编的利器。它与windows平台的磨合程度非常好,但是在其他平台上就有所限制,使用MASM的开人员必须在windows下进行开发。out of memory 内存不足将你的源程序中所有的中文标点符号改为英文标点符号即可。
2023-07-11 04:57:453

为什么我用masm5.0编译汇编源程序时总是出现 unable to open input file ?

我也遇到过这种情况,因为是初学对masm不熟悉,你肯定是没有用cd命令。使用如下:假设你的masm程序在e盘(不论哪个文件夹),进入控制台(这个肯定会哈),先键入“e:”,回车;再用cd把masm所在的文件夹路径输入,例如“cd E:hb”,接下来就可以正常工作了。masm、link、debug神马的都正常运行喽!
2023-07-11 04:57:543

求MASM for Windows 注册码

晕学MASM还要注册?直接上www.aogosoft.com无论是dos汇编还是win32汇编资料多的是编译工具多的是
2023-07-11 04:58:032

masm 为什么生成exe文件后,却不能进行debug调试?

你运行过了么?如果直接用调试不成功,又确实生成了.exe文件的话,你可以用cmd来进行调试:1. win+R组合键2. 输入cmd,回车3. 在弹出的黑窗口中先输入debug,后跟空格4. 找到生成的.exe文件,拖入上述黑窗体中(其实这个拖进去是把.exe文件的路径输进去,省得敲键盘输入了)。5. 回车现在可以调试了。
2023-07-11 04:58:242

如何使用MASM?

你这种情况是因为没有生成目标文件(.obj)造成的。应该是先用masm(编译)成目标文件,然后在用link(连接)成可执行文件(.exe) 比如,如果在C盘下有运行环境masm5.0和源文件5_3.asm,则应该如下顺序操作: Microsoft Windows XP [版本 5.1.2600](C) 版权所有 1985-2001 Microsoft Corp.C:Documents and SettingsAdministrator>cdC:>cd masm5.0C:MASM5.0>masm 此过程编译成目标文件 5_3.obj:Microsoft (R) Macro Assembler Version 5.00Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved.Source filename [.ASM]: c:5_3Object filename [5_3.OBJ]: c:Source listing [NUL.LST]:Cross-reference [NUL.CRF]: 50670 + 415650 Bytes symbol space free 0 Warning Errors 0 Severe Errors 此过程连接成可执行文件 5_3.exeC:MASM5.0>linkMicrosoft (R) Overlay Linker Version 3.60Copyright (C) Microsoft Corp 1983-1987. All rights reserved.Object Modules [.OBJ]:c:5_3Run File [C:5_3.EXE]: c:List File [NUL.MAP]:Libraries [.LIB]:LINK : warning L4021: no stack segment 此过程debug跟踪调试:C:MASM5.0>debug c:5_3.exe-rAX=0000 BX=0000 CX=001C DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=13D6 ES=13D6 SS=13E6 CS=13E6 IP=0000 NV UP EI PL NZ NA PO NC13E6:0000 8CC8 MOV AX,CS-tAX=13E6 BX=0000 CX=001C DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=13D6 ES=13D6 SS=13E6 CS=13E6 IP=0002 NV UP EI PL NZ NA PO NC13E6:0002 8ED8 MOV DS,AX-tAX=13E6 BX=0000 CX=001C DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=13E6 ES=13D6 SS=13E6 CS=13E6 IP=0004 NV UP EI PL NZ NA PO NC13E6:0004 B82000 MOV AX,0020-tAX=0020 BX=0000 CX=001C DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=13E6 ES=13D6 SS=13E6 CS=13E6 IP=0007 NV UP EI PL NZ NA PO NC13E6:0007 8EC0 MOV ES,AX-tAX=0020 BX=0000 CX=001C DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=13E6 ES=0020 SS=13E6 CS=13E6 IP=0009 NV UP EI PL NZ NA PO NC13E6:0009 BB0000 MOV BX,0000- ps:当然,因为源文件以及生成文件都在当前路径下,所以c:可以省略直接写文件名即可...如果你的源文件和你的运行环境不在同一个盘符下,那么在生成文件时命名的时候前面记得要加路径,不然就会像楼主那样提示找不到文件...
2023-07-11 04:58:312

masm 不是内部命令,是怎么回事

在dos的命令处理模块command.com或windows的模拟dos模块cmd.exe中并不包含masm这个命令,所以masm不是内部命令。masm命令需要外部独立的可执行文件masm.exe的支持。你的机器中(或这path路径中)没有这个文件,所以运行时出错。
2023-07-11 04:58:381

MASM32与MASM6.11的区别?

masm是16位,masm32是32位的,你写的程序不可能在masm32下编译通过的.因为一个是编译dos程序的一个是编译windows 程序的.给你一个windows下的汇编程序吧!.386 .model flat,stdcall option casemap:none;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>; Include 文件定义;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>include windows.incinclude user32.incincludelib user32.libinclude kernel32.incincludelib kernel32.lib;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>; 数据段;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> .dataszCaption db "A MessageBox !",0szText db "Hello, World !",0;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>; 代码段;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> .codestart: invoke MessageBox,NULL,offset szText,offset szCaption,MB_OK invoke ExitProcess,NULL;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> end start
2023-07-11 04:58:453

下载MASM

  1. MASM 6.11  汇编语言编程调试工具,非常好用  download.pchome.net/development/linetools/10660.html  2. MASM 5.0  MASM 5.0  download.pchome.net/development/linetools/9028.html  3. Windows版本的MASM--集成宏汇编 V2.0  Windows版本的MASM2.0--集成宏汇编软件.对界面进行了全  www.skycn.com/soft/14754.html  4. WenMASM V2.70 修正版  WenMASM 2.70是一款强大的基于WINDOWS平台的的集成宏汇  www.skycn.com/soft/20024.html  5. Masm for Windows 集成实验环境 5.0  MasmforWindows集成实验环境是从事一线教学的大学教师针对汇编语言初学者的特点开发的  www.onlinedown.net/soft/43311.htm  6. Masm for Windows 集成实验环境 V5.0  Masm for Windows 集成实验环境是从事一线教学的大学教  www.skycn.com/soft/24321.html  7. MasmED V1.0.2.9 汉化版(第二版)  MasmEd是由著名的Win32汇编编辑器RadASM的作者所编写的  www.skycn.com/soft/22747.html  8. WenMASM R1.0  WenMASM是一个强大的集成宏汇编软件!全中文界面能使你在汇编时显的更得?  download.21cn.com/list.php?id=46673  9. 汇编编译环境下载:masm 5.0  汇编编译环境下载之masm 5.0  dl.pconline.com.cn/html/6/9/dlid=989&dltypeid=6&pn=0&.html  10. MasmED v1.0.2.9 汉化版  www.ddooo.com/softdown/36552.htm  11. Windows版本的MASM--集成宏汇编 V1.02  www.ddooo.com/softdown/12912.htm  12. Windows版本的MASM--集成宏汇编 V2.0  www.ddooo.com/softdown/28375.htm  13. WenMASM V2.70 修正版  www.ddooo.com/softdown/30332.htm  14. Masm for Windows 集成实验环境 V5.0  www.ddooo.com/softdown/36215.htm  15. WenMASM V2.70 中文版  download.winzheng.com/softview/SoftView_32104.htm  16. WenMASM R2.57 中文版  download.winzheng.com/softview/SoftView_31647.htm  17. MasmED V1.0.2.9 汉化版  download.winzheng.com/softview/SoftView_30406.htm  18. MasmED V1.0.2.9 汉化版(第二版)  download.winzheng.com/SoftView/SoftView_22744.htm  19. WenMASM R2.57 破解补丁  download.winzheng.com/softview/SoftView_25757.htm  20. Masm for Windows 集成实验环境 V5.0  download.winzheng.com/softview/SoftView_24318.htm
2023-07-11 04:58:521

怎么用命令提示符窗口打开MASM软件?

1.运行-->cmd;出现命令行提示符 2.执行 Edit 命令; 3.编辑源代码,保存为.asm,记住你保存文件的路径; 4.找到你的MASM的存储路径。并在Dos下进入该路径; 5.执行MASM 汇编你的源文件,产生.obj 文件 最终生成你的可执行文件
2023-07-11 04:59:013

汇编程序用masm和nasm和debug的区别?

debug是16位的调试工具,目前基本上没有用。而且它缺少宏等功能,写汇编语言基本上活受罪,现在除了学校里面学习,没人用了。nasm是跨平台的开源工具,功能相比MASM很薄弱。所以在Windows平台下面不太好用。Unix/Linux平台下面倒是很有些用户群了。MASM可以编写Windows程序,支持宏,一直随着Visual Studio的更新而更新,支持最新的64位操作系统,用起来也比较方便,但是学习资料很少(呵呵,你找的到最新的学习资料么?)。它主要用来对VC++写的程序进行局部调优。但一般也不用它!为什么?看后面!还有一个你没有说到的就是VC中的__asm { }指令,一般我们都用它来写汇编语言,进行VC的局部调优。你说的那三个东西,都是基于Intel语法的,还有一个gas汇编器,是AT&T语法的,那个东西是给经由gcc编译的C++语言代码进行汇编步骤的……根本不适合由人来书写它的代码。就这些,答完了。
2023-07-11 04:59:421

MASM的静态数组如何定义

对8086而言,在数据段或附加数据段或在代码段中用db、dw、dd等伪指令定义的数组都是静态数组。如:arr1 db 100 dup(?)arr2 dw 200 dup(?)arr3 dd 300 dup(?)
2023-07-11 05:00:001

masm怎么用?我写了一个程序,为什么输入程序名进去,回车几次就什么也没有了??

比如说你的文件名字叫a.asm。把这个文件放在你存masm的那个文件里。之后先在dos里进到你存程序的那个文件。然后 输入 masm a.asm然后就一直回车就行了。如果没有报错的话,下一步就该是连接了。输入 link a.obj然后也是一直按回车。之后就可以执行了。输入 a.exe。如果有输出则就又显示了。如果没输出,而只是在内存里的话,可以用debug命令查看。
2023-07-11 05:00:093

汇编关于masm对源程序编译的问题:输入源程序路径,得不到目标文件,却是:unabletoopeninputfile,请指教

我也遇到过这种情况,因为是初学对masm不熟悉,你肯定是没有用cd命令。使用如下:假设你的masm程序在e盘(不论哪个文件夹),进入控制台(这个肯定会哈),先键入“e:”,回车;再用cd把masm所在的文件夹路径输入,例如“cd E:hb”,接下来就可以正常工作了。masm、link、debug神马的都正常运行喽!
2023-07-11 05:00:161

masm 如何从键盘读整数啊???

masm是一个汇编工具你问到是怎样编写一个从键盘读入数据的程序吗?-------------------------可以利用DOS系统调用AH=1,功能:键盘输入并回显示,入口参数:无,出口参数:AL=输入字符AH=7,功能:键盘输入(无回显),入口参数:无,出口参数:AL=输入字符AH=10,功能:键盘输入到缓冲区,入口参数:DS:DX=缓冲区首地址,(DS:DX)=最大字符数,出口参数:(DS:DX+1)=输入字符数,(DS:DX+2)=输入字符例:MOV AH,1INT 21H
2023-07-11 05:00:243

masm的最新版本是什么?masm32和masm是一样的吗?Vista可以用吗?

MASM 和 MASM32 不是一样的,MASM是微软发布的的汇编开发软件包,最高版本是MASM6.15MASM32是国外汇编爱好者开发的一款汇编开发软件包,(她不是出自Microsoft)现在的最高版本是MASM32 V12.0
2023-07-11 05:00:311

我在记事本里写了一个汇编程序,怎样能用masm编译?

你把文本文件打开,点“文件”--“另存为…”,单击时在弹出的对话框的命名框中输入文件名加扩展名,如:A.asm。然后在下面的文件类型框中选“所有类型”,最后点确定即可!此法简单易操作且不用设置系统,以免引起其他方面操作的麻烦!
2023-07-11 05:00:403

DOS环境下MASM提示is not recognized as an internal or external command,是环境变量没有配好吗

DOS环境下MASM提示is not recognized as an internal or external command,是设置错误造成的,解决方法如下:1、首先在电脑中找到dosbox软件并打开。2、然后记住masm软件路径。在dosbox里面输入 mount c d:dos,这一步是把 d:dos文件夹挂载为C盘。3、输入c:进入C盘。4、输入masm,进入masm目录。5、将2.asm文件放入与masm程序相同目录下,然后键入masm 2.asm,一直按回车,直到出现如下界面。6、最后输入2.asm运行程序,就完成了。
2023-07-11 05:01:034

按照MASM语法,“AH”是一个寄存器名,“0AH”表达十六进制数。()

【答案】:对解析:MASM汇编语言中,表示十六进制数的后缀字母是H,按照MASM语法,“AH”是一个8位寄存器,“0AH”表达十六进制数。
2023-07-11 05:01:441

masm中3个简单程序

好这个问题问得好,我们刚好学了这个程序。#include"stdio.h"main(){ int a,b,c; a=(); b=(); c=b+a;scanf("%d,%d",a,b);(输入两个数字)printf("%d,%d",a,b);(将输出2个结果到显示器上)}其余的乘除你就照这个套就可以了。这个是最简单的。你加我的QQ我们一起学习吧718893026
2023-07-11 05:01:532

汇编 masm 使用方法

最好把MASM放在跟目录下例如D:MASM把编辑好的ASM文件(用TXT文档编写程序,保存.把后缀名TXT改成ASM)放在MASM文件夹下如(D:MASM文件名.ASM)点击开始菜单 .运行->CMD->D:回车->CD MASM回车->MASM 文件名3下回车->LINK 文件名 3下回车->DEBUG 文件名.EXE
2023-07-11 05:02:181

masm集成环境的使用方法

1、下载个masm5.0(简单,适合初学者),里面至少应包含masm.exe和link.exe,可能还包含其他的,不过我们只需要最基本的这两个。2、将masm5.0压缩包里的程序解压(包含masm.exe和link.exe),放到一个目录中(如D:masm),然后就在这个目录下建立个文本文件(如XX.txt)写入个汇编程序,保存,将后缀名改为XX.asm。3、进入命令提示行(开始--运行--输入cmd)4、进入程序所在文件夹(用dos的cd命令),以2中的为例,键入“d:”,回车,键入“cd masm”,回车,键入“masm XX”,回车3下,键入“link XX”,再回车3下,再键入“XX”,就运行完了。补充:1、若程序有问题,在4步骤中会提示,这时就要返回修改2、如果程序本身并不显示输出结果,则4步骤运行完后也不会看到什么反应,初学者建议找个有显示输出结果的程序做试验3、第二个步骤中,试验程序xx.asm应当和masm.exe link.exe放在一起,若不再一起,则需要添加masm环境变量。
2023-07-11 05:02:263

MASM 6.0的软件简史

自二十世纪80年代初 Microsoft 公司推出 MASM 1.0 以来,MASM的版本不断升级,已升至6.15,支持MMX Pentium、Pentium II、Pentium III及Pentium 4指令系统。MASM 4.0支持80286/80287的处理器和协处理器;MASM 5.0支持80386/80387处理器和协处理器,并加进了简化段伪定义指令和存储模式伪指令,汇编和连接的速度更快。MASM 6.0是1991年推出的,支持80486处理器,它对MASM 进行重新组织,并提供了许多类似高级语言的新特点。MASM 6.0之后又有一些改进,微软又推出MASM 6.11,利用它的免费补丁程序可以升级到MASM 6.14,支持到Pentium III指令系统。
2023-07-11 05:02:331

运行masm文件怎么做?

进CMD然后键入MASM的地址然后进入MASM后键入MASM*****(文件名)然后键入LINK*****运行直接键入*****如果调试键入DEBUG*****用计事本写好的程序,后缀名要用.ASM并且要放到MASM的文件夹内.最好你把MASM放到C盘这样进入CMDCDC:>CDMASMC:MASM>MASM*****(程序正确就可以下一步了)C:MASM>LINK*****(这一步生成.EXE在MASM文件夹下)(运行可以进文件夹直接双击运行)C:MASM>DEBUG*****(调试)
2023-07-11 05:02:461

MASM 6.0的使用方法

MASM 6.x安装文件(链接下载文件MASM611FULL.ZIP)包含在5张软盘上,在DOS(或Windows的MS-DOS模拟环境)下,运行第一张盘上的SETUP.EXE程序就可以开始安装,通常选择在MS-DOS / Microsoft Windows操作系统下使用MASM。一个MASM汇编系统,主要包含如下内容:· MASM 6.15的汇编程序ML.EXE和配套的汇编错误信息文件ML.ERR,连接程序LINK.EXE,子程序库管理文件LIB.EXE;· CV目录下的CodeView调试程序CV.EXE以及配套的库文件;· HELP目录下的快速帮助文件QH.EXE,以及MASM宏汇编语言、汇编程序ML、连接程序LINK、调试程序CV等所有帮助文件;· 本书作者为方便操作建立的批处理文件、I/O子程序库等。书中例题程序文件也可以建立在某个子目录(例如HBYYLT)下。
2023-07-11 05:02:551

masm的问题?

建议你按照以下步骤执行:【最好把MASM放在跟目录下例如D:MASM 把编辑好的ASM文件(用TXT文档编写程序,保存.把后缀名TXT改成ASM)放在MASM文件夹下如(D:MASM文件名.ASM) 点击开始菜单 .运行->CMD->D:回车->CD MASM回车->MASM 文件名3下回车 ->LINK 文件名 3下回车->DEBUG 文件名.EXE】zg.asm文件无法打开,无法链接成功
2023-07-11 05:03:071

masm调试窗口怎么变大

1、首先我们找到dosbox-0.74-3。2、然后在文件的目录里面找到DOSBox0.74-3options.bat。3、打开这文件修改参数1080x720即可。4、以上就是masm调试大窗口的方法。
2023-07-11 05:03:141

请教汇编高手:为什么书写这条指令:mov ax,a001H 使用masm编译时老是会报错? symbol not defined:a001H

a001H被看成一个变量名了,所以提示没有定义。在a001H前加0,编译器就认为是一个十六进制数。改成下面这句看看。mov ax,0a001H手头没有masm5.0编译器,没法检验,仅供参考。
2023-07-11 05:03:213

masm,link,debug,debug2000,cv,td的入口参数

masm: Usage: masm /options source(.asm),[out(.obj)],[list(.lst)],[cref(.crf)][;] /a Alphabetize segments /b<number> Set I/O buffer size, 1-63 (in 1K blocks) /c Generate cross-reference /d Generate pass 1 listing /D<sym>[=<val>] Define symbol /e Emulate floating point instructions and IEEE format /I<path> Search directory for include files /l[a] Generate listing, a-list all /M{lxu} Preserve case of labels: l-All, x-Globals, u-Uppercase Globals /n Suppress symbol tables in listing /p Check for pure code /s Order segments sequentially /t Suppress messages for successful assembly /v Display extra source statistics /w{012} Set warning level: 0-None, 1-Serious, 2-Advisory /X List false conditionals /z Display source line for each error message /Zi Generate symbolic information for CodeView /Zd Generate line-number information =========================================================== link: Microsoft (R) Overlay Linker Version 3.60 Copyright (C) Microsoft Corp 1983-1987. All rights reserved. Valid options are: /BATCH /CODEVIEW /CPARMAXALLOC /DOSSEG /DSALLOCATE /EXEPACK /FARCALLTRANSLATION /HELP /HIGH /INFORMATION /LINENUMBERS /MAP /NODEFAULTLIBRARYSEARCH /NOFARCALLTRANSLATION /NOGROUPASSOCIATION /NOIGNORECASE /NOPACKCODE /OVERLAYINTERRUPT /PACKCODE /PAUSE /QUICKLIBRARY /SEGMENTS /STACK =========================================================== debug: Runs Debug, a program testing and editing tool. DEBUG [[drive:][path]filename [testfile-parameters]] [drive:][path]filename Specifies the file you want to test. testfile-parameters Specifies command-line information required by the file you want to test. After Debug starts, type ? to display a list of debugging commands.============================================================用下面的命令弄出来的,应该够了吧?masm/helplink/helpdebug/?
2023-07-11 05:03:281

汇编软件问题:在dosbox软件 环境下利用masm汇编,link时候无法打开asm

你遇到的这个问题,出错是因为找不到 helloworld.asm文件。找不到helloworld.asm文件的原因,不是路径映射问题,而是文件名问题。在DOSbox里,它只支持纯DOS的8.3短文件名。文件名最大长度不能超过8个字符。你的问题有两个解决办法:1. 将源文件改名。将helloworld.asm改成hello.asm(或其它名字,要求前面的名字长度小于或等于8个字符)。建议用这个办法。2. 在命令行里使用系统可认的短文件名。helloworld.asm在8.3文件系统中的名字是hellow~1.asm,你将命令改成 masm hellow~1.asm即可。(用DIR命令可查看短文件名)
2023-07-11 05:03:373

win7操作系统。用cmd运行不了masm,怎么解决啊?谢谢啦!

这个还需要现在安装MASM软件,目前的最新版本为6.11,里面有masm.exe和link.exe,安装好就可以用了将下载的压缩包里的程序解压(包含masm.exe和link.exe),放到一个目录中(如D:masm),然后就在这个目录下建立个文本文件(如XX.txt)写入个汇编程序,保存,将后缀名改为XX.asm。 然后进入命令提示行(开始--运行--输入cmd) ,进入程序所在文件夹(用dos的cd命令),以上面的为例,键入“d:”,回车,键入“cd masm”,回车,键入“masm XX”,回车3下,键入“link XX”,再回车3下,再键入“XX”,就运行完了。
2023-07-11 05:03:582

为什么我的masm软件不能生成exe文件?

还要用到link软件。masm只能生成obj文件。需要link将obj文件连接成可执行的exe文件。
2023-07-11 05:04:052

masm中如何引用外部文件定义的东西

masm 可能在汇编的时候,默认符号前面是要加_ 或者__的。你试试extern _lpButnProc:DWORD或者extern __lpButnProc:DWORD
2023-07-11 05:04:121

为什么MOV AX, [1] 汇编的结果是 MOV AX, 1?

如果,你用 “MASM”软件,就是这个结果。如果,你用“DEBUG”软件,就是了 [1] 了。DEBUG 软件,是合理的,符合汇编语言的格式要求。MASM 软件,其作者,编写程序时,喝高了。。。
2023-07-11 05:04:193