汇编程序开发环境配置讲解
《汇编语言》实验报告_搭建开发环境
《汇编语言》实验报告得分:2、添加添加Irvine32.inc等所在的目录到include files中;3. 将masm32中的ml.exe和ml.err拷贝到VC的Microsoft Visual Studio\VC98\Bin 目录中二、创建与配置project:2.编辑教材85页不带输出的程序代码如下:.386.model flat,stdcall.stack 4096ExitProcess PROTO, dwExitCode:DWORD DumpRegs PROTO.dataRval SDWORD ?Xval SDWORD 26Yval SDWORD 30Zval SDWORD 40.codemain PROCmov ax,1000hinc axdec axmov eax,Xvalneg eaxmov ebx,Zvaladd eax,ebxmov Rval,eaxmov cx,1sub cx,1mov ax,0FFFFhinc axmov cx,0sub cx,1mov ax,7FFFhadd ax,2mov al,0FFhadd al,1mov al,+127add al,1mov al,-128sub al,1call DumpRegsINVOKE ExitProcess,0main ENDPEND main结果:3.输出各寄存器的值。
DumpRegs PROTO程序最后加入调用DumpRegs过程的语句call DumpRegs输出结果如下:4.单步执行的方式调试该程序,查看每步结果,并解释每步结果,并写成注释。
(特别注意对标志位的影响)1、按F10进行调试、alt+F5调出寄存器的变化信息框。
程序及标志位解读如下:.386.model flat,stdcall.stack 4096ExitProcess PROTO, dwExitCode:DWORDDumpRegs PROTO.dataRval SDWORD ?Xval SDWORD 26Yval SDWORD 30Zval SDWORD 40.codemain PROCmov ax,1000h //ax 4096 ;bx 57344;inc ax //ax 4097;bx 57344(实现自增)dec ax////ax 4096;bx 57344(实现自减)mov eax,Xval //把Xval复制给eaxneg eax //ax 26;bx 57344(取反令ax=-26)mov ebx,Zvalv //ax 65510 ;bx 40 ;cx(把Zval的40赋给ebx)add eax,ebx // ax 14 ;bx 40 (求和eax=ebx+eax=14)mov Rval,eax//把eax复制给Rvalmov cx,1 //ax=14;bx=40;cx=1sub cx,1mov ax,0FFFFhinc ax//ax 65535;bx=10;cx=0;mov cx,0sub cx,1mov ax,7FFFhadd ax,2 //ax 32767 bx=40 cx =65535mov al,0FFh//ax 32769add al,1 //ax 33023add al,1 //ax 32768mov al,-128 //ax 32895sub al,1 //ax 32896call DumpRegs //ax 32895INVOKE ExitProcess,0 //结束退出程序main ENDPEND main。
汇编语言开发过程详解
汇编语言开发过程详解汇编语言是一种低级别的编程语言,通过它可以直接控制计算机硬件,实现底层功能。
在这篇文章中,我们将详细介绍汇编语言开发的过程,包括环境搭建、代码编写和调试等。
一、环境搭建为了进行汇编语言开发,我们需要在计算机上搭建相应的开发环境。
首先,我们需要安装一个汇编器,如MASM(Microsoft Macro Assembler)或NASM(Netwide Assembler)。
这些汇编器可以将汇编语言代码转换成机器代码,并生成可执行程序。
其次,我们需要一个文本编辑器,用于编写汇编语言代码。
常用的文本编辑器有Notepad++、Sublime Text和Visual Studio Code等。
选择一个你熟悉且适合的编辑器,确保能够正确显示和保存汇编语言代码。
二、代码编写在开始编写汇编语言代码之前,我们需要了解目标计算机的体系结构和指令集。
不同的计算机体系结构有不同的指令格式和寄存器,因此编程时需要根据具体的体系结构进行相应的调整。
在编写汇编语言代码时,需要掌握汇编语言的语法和指令集。
汇编语言有不同的指令,如数据传输指令、算术逻辑指令、控制指令等,可以根据需要选择并使用相应的指令。
以下是一个简单的汇编语言代码示例,用于将两个数相加并将结果保存到一个变量中:```section .datanum1 dw 10 ; 定义变量num1并赋初值10num2 dw 20 ; 定义变量num2并赋初值20result dw ? ; 定义变量resultsection .textglobal _start_start:mov ax, [num1] ; 将变量num1的值加载到寄存器ax中add ax, [num2] ; 将变量num2的值与寄存器ax中的值相加mov [result], ax ; 将结果保存到变量result中mov eax, 1 ; 准备退出程序的系统调用号xor ebx, ebx ; 返回值(错误码)设置为0int 0x80 ; 调用系统中断```三、调试和测试完成汇编语言代码的编写后,我们需要对代码进行调试和测试,以确保程序的正确性和可靠性。
汇编语言Assemblylanguage实验环境搭建详解
汇编语言Assemblylanguage实验环境搭建详解汇编语言是一种底层的编程语言,常被用于嵌入式系统和操作系统的开发。
为了学习和实践汇编语言,搭建一个合适的实验环境是必不可少的。
本文将详细介绍如何搭建汇编语言实验环境。
一、选择合适的汇编语言工具搭建汇编语言实验环境的第一步是选择合适的工具。
汇编语言有很多不同的变体,因此需要根据具体的需求选择合适的工具。
以下是一些常用的汇编语言工具:1. Microsoft MASM:适用于Windows平台的汇编语言工具,可用于编写x86架构的汇编代码。
2. NASM:适用于多个平台的汇编语言工具,支持多种指令集架构。
3. GAS(GNU as):适用于GNU工具链的汇编语言工具,常用于开源项目。
根据自己的需求选择合适的汇编语言工具下载并安装。
二、安装实验环境1. 安装汇编语言工具按照所选的汇编语言工具的官方指引,下载并安装汇编语言工具。
安装过程中可能需要选择合适的版本和路径。
2. 配置环境变量为了方便使用汇编语言工具,在安装完成后需要配置环境变量。
打开操作系统的环境变量配置界面,在系统变量中添加汇编语言工具的安装路径。
三、编写与调试汇编代码1. 编写汇编代码使用任意文本编辑器,创建一个新的文件,并编写汇编代码。
根据具体的汇编语言工具,语法可能会有所不同,可以参考相关的官方文档或教程学习语法规则。
2. 保存文件保存编写的汇编代码文件,文件扩展名通常为.asm。
3. 汇编与链接使用汇编语言工具将编写的汇编代码转换为机器语言。
具体的汇编与链接过程因汇编语言工具而异,可参考对应工具的文档或教程。
4. 调试汇编代码根据具体的汇编语言工具,可以使用调试器来调试编写的汇编代码。
调试器可以帮助我们逐行执行代码,并查看寄存器状态和内存内容,帮助定位问题。
通过以上步骤,我们就可以成功搭建汇编语言的实验环境。
在这个环境中,我们可以编写、汇编和调试汇编代码,深入学习和理解底层计算机的工作原理和机器语言的执行过程。
汇编语言上机环境及基本操作
汇编语言上机环境及基本操作汇编语言是一种低级语言,它直接面向硬件,可以直接访问计算机的底层资源。
为了学习和实践汇编语言,我们需要了解如何搭建汇编语言上机环境以及其基本操作。
本文将介绍汇编语言上机环境的安装和基本操作的步骤,并给出一些示例。
1. 汇编语言上机环境的安装在搭建汇编语言的上机环境之前,我们首先需要确认计算机的操作系统。
通常,我们可以在Windows操作系统上进行汇编语言的开发和调试。
下面是汇编语言上机环境的安装步骤:1.1 下载汇编语言开发工具汇编语言开发工具有很多种,比如MASM、NASM等。
根据个人的喜好和需求选择合适的工具进行下载。
1.2 安装汇编语言开发工具双击下载文件并按照提示完成安装过程。
一般来说,安装过程中可使用默认配置,无需特殊设置。
1.3 配置环境变量配置环境变量可以使得我们在任意路径下都可以运行汇编语言代码。
找到系统环境变量中的"Path"变量,添加汇编语言开发工具的安装路径。
例如,如果您选择了MASM,将其安装路径添加到"Path"变量中即可。
安装好汇编语言开发工具后,我们就可以开始进行汇编语言的实践了。
2. 汇编语言的基本操作接下来我们将介绍汇编语言的一些基本操作,包括编写代码、汇编、链接和运行等。
2.1 编写汇编语言代码打开一个文本编辑器(如记事本),编写汇编语言的代码。
汇编语言与高级语言相比,语法更为底层,需要对计算机的底层结构有一定的了解。
可以参考相关教材或者网络资源,编写简单的汇编语言代码。
2.2 汇编将编写好的汇编语言代码保存为.asm文件。
然后,打开命令提示符(或者使用汇编语言开发工具自带的命令行工具),进入.asm文件所在目录,并执行如下命令进行汇编:> asm 文件名.asm汇编成功后,将生成相应的.obj文件。
2.3 链接汇编语言代码中可能会引用一些外部的库文件,我们需要将这些库文件与生成的.obj文件进行链接。
配置EditPlus为汇编语言的集成开发环境的步骤
配置EditPlus为汇编语言的集成开发环境的步骤首先,把汇编程序开发工具解压缩到某个盘的某个目录下。
例如D:\TOOLS\MASM5.0。
然后,正确安装EditPlus并运行。
其次,是配置汇编语言开发环境,步骤如下:1.在EditPlus界面中的Tools菜单下选择Configure User Tools 命令如下图:2.添加编译工具。
在弹出的窗口中点击Add Tool按钮后选择Program如下图:3.如下图正确设置Menu text,Command,Argument和Initial directory各栏。
4.添加连接工具。
完成添加编译工具后按照第2步操作。
各栏目的设置情况如下图:4.添加运行工具。
完成添加连接工具后按照第2步操作。
各栏目的设置情况如下图:然后点击OK返回主界面。
在主界面的View 菜单中把User Toolbar选上,则在菜单条就可以看到新建立的快捷工具了。
如果使用MASM 6.0以上的编辑器,则在第3步中要按如下图设置。
5.添加DEBUG工具。
完成添加“运行”工具后可也按照第2步操作,添加一个debug调试工具。
各栏目的设置情况如下图:下面要配置语法格式与关键字项。
建议先把解压缩后的Assembler.stx和asmtemplate.asm 文件拷贝到EditPlus的安装目录下。
再按如下步骤操作:1.在EditPlus界面中的Tool s菜单下选择Configure User Tools 命令弹出如下窗口:2.在Categories中点击Settings & syntax 然后再点击Add 按钮,在Description 栏中输入masm,在File extensions栏中输入asm。
然后在Settings & syntax标签中的Syntax file 栏中正确输入Assembler.stx文件所在的路径和文件名,如上图。
3.在Categories中点击Template 然后再点击Add 按钮,在Menu text 栏中输入masm,在File path栏中正确输入asmtemplate.asm文件所在的路径和文件名,如下图。
WindowsX8664位汇编语言入门
WindowsX8664位汇编语言入门Windows x86-64位汇编语言入门汇编语言是计算机硬件和操作系统之间的桥梁,它能够直接控制计算机的底层硬件。
对于计算机科学的学习者来说,了解汇编语言是非常重要的一步。
本文将介绍如何入门并学习Windows x86-64位汇编语言。
一、了解汇编语言的基本概念在开始学习汇编语言之前,我们需要先了解一些基本概念。
汇编语言是一种低级语言,它使用助记符来代替机器指令,这样更方便我们理解和编写程序。
汇编语言的基本单位是指令,每条指令对应着一条机器指令。
在x86-64架构中,指令长度可以是1到15个字节。
二、安装并配置开发环境要开始编写和执行汇编语言程序,我们首先需要安装一个好的开发环境。
在Windows操作系统上,常用的开发环境有MASM、NASM、TASM等。
这些开发工具可以帮助我们将汇编代码转换为可执行文件。
三、学习汇编语言的语法和指令集汇编语言与其他高级编程语言相比,语法更加简单和直接。
学习汇编语言的关键就是理解和掌握其语法和指令集。
在学习过程中,我们可以参考官方文档或者一些经典的教程,如《汇编语言程序设计》。
四、编写你的第一个汇编程序现在,我们可以尝试编写自己的第一个汇编程序。
我们可以从一个简单的程序开始,比如输出一个简单的“Hello, World!”。
下面是示例代码:section .datamsg db 'Hello, World!', 0section .textglobal _start_start:; 输出字符串mov eax, 4mov ebx, 1mov ecx, msgmov edx, 13int 0x80; 退出程序mov eax, 1xor ebx, ebxint 0x80这个程序使用Linux系统调用来输出字符串,并退出程序。
我们可以使用汇编器将其编译成可执行文件,然后在命令行中运行。
五、深入学习汇编语言的高级特性一旦掌握了汇编语言的基础知识,我们就可以进一步学习一些高级特性,如函数调用、内存管理、寄存器的使用等。
汇编语言程序设计的试验环境及实验步骤
汇编语言程序设计的实验环境 及实验步骤
实验环境
• 1、硬件环境:微机CPU 486以上,500MB以上 硬盘,32M以上内存; • 2、软件环境:装有MASM 5.0、DEBUG、 LINK、EDIT、CREF.EXE和EXR2BIN.EXE等 应用程序。
在PC系统上运行汇编语言源程序的过程如下
• (1) 用编辑软件建立或修改扩展名为.ASM的源文件程序 (注意:扩展名必须为.ASM)。 • (2) 用宏汇编程序MASM将.ASM文件汇编(.ASM → .OBJ)汇编所得目标代码的存放地址并不是可执 行的绝对地址,以此,需要链接之后才能调试和运行。 • (3) 用链接程序LINK将.OBJ文件链接(.OBJ → .EXE ) • (4) 使用调试程序Debug调试.EXE文件 • (5) 运行程序输出结果。
• 若汇编没有用到.LIB和.DEF文件,也不建立.MAP,简 化命令 • LINK HELLO; • 如果一个程序由三个模块组成 SUM.OBJ DUMP.OBJ MAX.OBJ,需要将它们链接在一起生成可执行文件 SUM.EXE • LINK SUM+DUMP+MAX;
Байду номын сангаас 4.EXE文件的运行
• 输入文件名(可以不输入扩展名.EXE),回车
• 若只生成.OBJ ,简化命令-• MASM HELLO;
3.目标文件的链接
• 由汇编程序生成的目标文件必须经过链接程序(LINK) 以后才能成为可执行文件。 • 链接程序可以把若干个模块链接在一起,这些模块可以 是汇编程序生成的目标文件,也可以是其他高级语言的 编译程序生成的目标文件
.EXE可执行文件 .MAP地址分配文件 .LIB库文件 .DEF模块定义文件
汇编语言实验环境和要求
汇编语言实验环境和要求《汇编语言》是计算机及计算机类专业学生的专业基础课,是培养学生直接使用计算机硬件资源能力的一门课程。
它不仅能帮助学生进一步理解计算机组成原理课程中的各种概念,而且还为其他课程:操作系统、接口与通信技术和计算机控制技术等课程提供必要的预备知识。
该课程在计算机学科设置中起着承上启下的作用。
一、实验环境汇编实验是在一般PC机上完成的,采用MASM6.11宏汇编进行实验。
MASM6.11版本对硬件环境无特殊要求,对软件的要求如下:(1) 操作系统:Windows2000的命令提示符状态。
(2) 编辑环境:等文本编辑器(随操作系统提供)。
(3) 汇编和连接程序:ML.EXEML.ERRLINK.EXE(4) 调试程序:DEBUG.EXE(随操作系统提供)。
二、PC机DEBUG调试工具的使用DEBUG.EXE程序是专门为分析和开发汇编语言程序而设计的一种调试工具,具有跟踪程序执行、观察中间运行结果、显示和修改寄存器或存储单元内容等多种功能。
是学习汇编语言必须掌握的调试工具。
⑴ DEBUG程序使用在命令提示符下键入命令:DEBUG [盘符:][路径][文件名.EXE][参数1][参数2]这时屏幕上出现DEBUG的提示符“-”,表示系统在DEBUG状态下,此时可以用DEBUG 进行程序调试。
若所有选项省略,则仅把DEBUG装入内存,此时可对当前内存中的内容进行调试,也可以使用N或者L命令从指定盘上装入要调试的程序;如果命令行中有文件名,则把DEBUG程序调入内存后,再由DEBUG将指定的文件名装入内存。
⑵ DEBUG的常用命令1) 汇编命令 A格式:A[起始地址]功能:将输入源程序的指令汇编成目标代码并从指定地址单元开始存放。
若缺省起始地址,则从当前CS:100地址开始存放。
A命令按行汇编,主要是用于小段程序的汇编或对目标程序的修改。
2) 反汇编命令 U格式1:U[起始地址]格式2:U[起始地址][结束地址|字节数]功能: 格式1从指定起始地址处开始将32个字节的目标代码转换成汇编指令形式,如果省略起始地址,则从当前地址CS:IP开始。
8086汇编语言学习(二)8086汇编开发环境搭建和Debug模式介绍
8086汇编语⾔学习(⼆)8086汇编开发环境搭建和Debug模式介绍1. 8086汇编开发环境搭建 在上篇博客中简单的介绍了8086汇编语⾔。
⼯欲善其事,必先利其器,在8086汇编语⾔正式开始学习之前,先介绍⼀下如何搭建8086汇编的开发环境。
汇编语⾔设计之初是⽤于在没有操作系统的裸机上直接操作硬件的,但对于⼤部分⼈来说,在8086裸机上直接进⾏编程将会⾯临各种困难。
好在我们可以使⽤软件模拟器来模拟硬件进⾏8086的学习实践。
在《汇编语⾔》中作者推荐通过windows环境下的masm和debug进⾏学习。
masm介绍: masm是⼀款DOS下的汇编⼯具包,在8086汇编的学习中我们需要其中的⼏个⽂件,分别是masm.exe,link.exe。
masm.exe 汇编器,⽤于将⽂本格式的汇编语⾔源⽂件编译为.obj结尾的⼆进制⽂件,其⽣成的.obj结尾的⼆进制⽬标⽂件是被编译的源⽂件的对应的机器码。
单独的源程序⽬标⽂件通常是⽆法直接运⾏的,还需要和互相依赖的其它同样编译完成的⼆进制⽂件链接在⼀起才能⽣成最终的可执⾏⽂件(⽐如所需要的静态库函数) 。
因此,obj⽂件通常也被叫做中间⽂件。
link.exe 链接器,obj⽂件需要通过链接才能转换成可执⾏程序,⽽链接器就是负责完成这⼀任务的。
链接器能将多个obj⽬标⽂件以及其所依赖的库程序进⾏统⼀处理(例如多个⽬标⽂件中指令、数据内存地址的偏移处理),并⽣成可执⾏⽂件。
debug介绍: debug.exe 调试器,windows提供了⼀个在dos中调试8086汇编程序的⼯具debug.exe,提供了展⽰程序运⾏时CPU中各寄存器、内存中数据,指令级的单步调试等功能。
debug程序的使⽤会在本篇博客的后半段进⾏详细介绍。
64位操作系统兼容性问题: 由于《汇编语⾔》⼀书出版较早,当时的windows系统还是32位的,32位windows系统都默认安装了masm与debug,能打开dos窗⼝直接使⽤。
详解汇编语言开发环境搭建方法
于这些日子一直都在研究底层的技术,从 Windows 驱动程序,到 Windows 内核等等技术的学习,让我对底层的技术越发有兴趣了,而刚好,在研究 WRK 时,对内存管理,寄存器,地址总线,数据总线,控制总线等的理解不够透彻,所以越发的想学习汇编程序设计来提升功力,而由于近来在公司里一直都有项目压着,所以在公司里也实在不好拿本汇编程序设计看,所以只好晚上回来学习了,汇编看了几个晚上,也算是蛮有感觉的。
今天就先来搭个开发环境再说吧。
开发环境搭配我介绍四种开发汇编程序的方式:第一种:直接在 Dos 环境下使用 Edit 命令调出源码编辑框,生成源码后,可以使用由微软提供的 masm 汇编编译器来对源码进行编译,编译完后再使用 Linker 连接器即可得到可执行文件,这种方式现在几乎被灭绝了(当然使用 masm 汇编编译器还是很普遍的),除非你真要在 DOS 环境下运行汇编程序;第二种:通过简化第一种方式而来;第三种:直接使用 Masm for Windows 集成实验环境,这个开发环境呢,非常适合汇编语言的初学者,因为这个 IDE 本身就是由一些从事汇编程序教学的大学老师开发的出来用于汇编初学者进行学习和实验的,所以使用简单,方便,这里可以对这个 IDE 稍加推荐;第四种:则是通过 Visual Studio 这个强大的 IDE 来实现汇编程序的编译,运行和调试,至于 Visual Studio 就不多做介绍了,.Net 用了这么多年,这东西强大到什么程度那是总所周知的;第一种方式:使用 Edit + MASM 5.0 编译器 + Linker 连接器其实这种方式是很简单的,只是很麻烦,因为简单而且麻烦,所以我采用尽可能的将截图传上来,然后稍加注解的方式进行介绍,软件准备:需要 MASM 5.0 或者以上的汇编编译器首先,是要编辑汇编源代码:其实对于源码的编辑根本不需要向如下这么麻烦,直接拿个记事本就 OK 了运行 cmd 命令输入 Edit 命令从而弹出汇编源码编辑框在源码输入框中输入汇编源码将编辑好的汇编源码保存到 xx.asm 文件中然后就是要编译编辑好的汇编源代码在 Dos 环境下进入到 MASM 5.0 汇编编译器所在的目录然后运行 masm.exe可以从上面的截图中看到 [. ASM] 的标记,这个标记代表的是需要在这里输入要编译的源程序文件名,这里有一点特别的是,由于默认的文件扩展名为 .asm ,所以在编译 .asm 的汇编源程序时可以不用指定源程序所在文件的扩展名。
汇编语言程序设计的环境及上机步骤
汇编语言程序设计的实验环境及上机步骤一、实验环境汇编语言程序设计的实验环境如下。
1.硬件环境微型计算机(Intel x86系列CPU)1台2.软件环境·Windows 98/XP/M2/2000操作系统;·任意一种文本编辑器(EDIT、NOTEPAD(记事本)、UltraEDIT等);·汇编程序(MASM.EXE或TASM.EXE);·链接程序(LINK.EXE或TLINK.EXE);·调试程序(DEBUG..EXE或TD.EXE)。
本书建议文本编辑器使用EDIT或NOTEPAD,汇编程序使用MASM.EXE,链接程序使用LINK.EXE,调试程序使用TD.EXE。
二、上机步骤汇编语言程序设计的实验2和实验3仅使用TD.EXE,关于TD.EXE的使用方法请参见参见资料。
下面介绍的上机实验步骤适用于除实验2和实验3的所有实验(包括硬件接口部分的全部实验)。
1.确定源程序的存放目录建议源程序存放的目录名为ASM,并放在C盘或D盘的根目录下。
如果没有创建过此目录,请用如下方法创建。
通过Windows的资源管理器找到C盘的根目录,在C盘的根目录窗口中单击右键,在弹出的菜单中选择“新建”“文件夹”,并把新建的文件夹命名为ASM。
请把MASM.EXE、LINK.EXE、DEBUG..EXE和TD.EXE都复制到此目录中。
2.建立ASM源程序建立ASM源程序可以使用EDIT或NOTEPAD(记事本)文本编辑器。
下面的例子说明了用EDIT 文本编辑器来建立ASM源程序的步骤(假定要建立的源程序名为HELLO.ASM),用NOTEPAD(记事本)建立ASM源程序的步骤与此类似。
在Windows中单击桌面左下角的“开始”按钮,选择“运行”,在弹出的窗口中输入“EDIT.COMC:\ASM\HELLO.ASM”,屏幕上出现EDIT的编辑窗口,如图2-1-1所示。
窗口标题行显示了.EDIT程序的完整路径名。
汇编语言程序环境搭建masm+debug64位win107
汇编语⾔程序环境搭建masm+debug64位win107介绍:MASM是Microsoft Macro Assembler 的缩写,是微软公司为微处理器家族开发的,拥有可视化的开发界⾯,使开发⼈员不必再使⽤环境进⾏汇编的开发,编译速度快,⽀持80x86汇编以及,是下开发汇编的利器。
它与平台的磨合程度⾮常好,但是在其他平台上就有所限制,使⽤MASM的开发⼈员必须在windows下进⾏开发。
1. 在windows下搭建汇编编程环境:王爽《汇编程序》第三版⽤的是MASM5.0下载安装包:1)、DOSBox 链接:密码:xdgh2) 、MASM5.0 链接:密码:hku53)、DEBUG 链接:密码:rmsi把debug.exe复制到masm⽬录下。
2. 下载汇编参考⼿册:链接:密码:80fc3. 第⼀个汇编程序:在命令⾏输⼊eg0101.exe,得到程序运⾏结果:Hello Assemly!汇编程序eg0101.asm的内容:include io32.inc.data ;数据段msg byte 'Hello,Assembly!',13,10,0.code ;代码段start:;程序执⾏起始位置mov eax,offset msgcall dispmsgexit 0;程序正常执⾏终⽌end start ;汇编结束5. debug完整配置:汇编语⾔环境:MASM,但是调试需要debug.exe,并且debug.exe不能⽤于64位计算机系统。
所以64位计算机系统使⽤的汇编语⾔环境是:1. 下载DOSBox2. 下载debug.exe在输⼊框状态下z:> ,z:>mount d d:\简洁的讲,你把你要虚拟的⽂件夹位置换掉上⾯的。
mount d d:\d:cd MASMdosbox配置debug1. 有疑问查看DOSBox⽬录下的DOSBox 0.74 Manual.txt⼿册指导2. 打开配置⽂件DOSBox 0.74 Options.bat,因为我的masm和debug都安装在D盘下,所以在本配置⽂件最后⾯的[autoexec]加上MOUNT D D:\D:意思是挂载到D盘下(这⼀步骤也可以不做,直接看下⾯的。
汇编环境搭建
汇编环境搭建
搭建汇编环境需要经过以下步骤:
1. 安装汇编工具:汇编工具有很多种,如NASM、MASM、TASM等,根据不同的操作系统需求选择合适的汇编工具,下载对应的安装程序
进行安装。
2. 配置汇编环境变量:Windows系统下需要将安装目录下的bin
路径添加到系统环境变量中,为方便使用可以在环境变量中配置一个
专门的变量来指向汇编工具的路径。
3. 准备编写汇编代码的编辑器或集成开发环境:汇编代码可以使
用记事本、Notepad++、Sublime Text等任意文本编辑器进行编写,但为了提高开发效率,可以选择使用集成开发环境如Visual Studio、Eclipse等。
4. 编写并调试汇编代码:搭建好汇编开发环境后,就可以使用汇
编语言来编写程序代码并进行调试了。
注意事项:
1. 汇编语言相对于高级语言难度较大,建议有一定的编程基础再
进入汇编开发。
2. 在编写汇编代码时,需要了解CPU的指令集和寄存器的功能,
以便更好地理解和掌握汇编语言的运用。
3. 在进行汇编程序调试时,一定要注意程序中可能存在的死循环或死锁,及时调整代码以避免出现系统崩溃的情况。
汇编语言环境搭建软件与教程
汇编语⾔环境搭建软件与教程1.编写汇编程序需要的环境:1】dosbox2】masm2.搭建步骤:1】下载dosbox2】安装dosbox下载的dosbox解压;运⾏exe,⼀直下⼀步即可;3】下载masmmasm⽤来编译汇编程序;到⽹上搜索下载即可;解压⽬录如下:将解压masm,将⽂件放在特定的⽬录下;例如:D:\GongJu\masm4】挂载dosbox⽬的是将dosbox的c盘挂载到masm的⽬录下;简单点说就是挂载完后,dosbox的c盘相当于是D:\GongJu\masm具体执⾏:打开dosbox解压⽬录,运⾏ xxxOption.bat会弹出⼀个记事本,找到[autoexec],组下⾯添加两⾏命令:MOUNT C D:\GongJu\masmset PATH=$PATH$;D:\GongJu\masm5】完成后,打开dosbox,输⼊命令 c: 切换到c盘,然后输⼊命令 dir,如果显⽰的是masm⽬录下的内容则挂载正确;6】创建汇编程序可以在masm的⽬录下新建⼀个 xxx.asm,然后编写代码即可;3.汇编的helloworld1】新建⼀个⽂本⽂件编写代码DSEG SEGMENTMESS DB 'Hello,World!' ,0DH,0AH,24HDSEG ENDSSSEG SEGMENT PARA STACKDW 256 DUP(?)SSEG ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSEGBEGIN: MOV AX,DSEGMOV DS,AXMOV DX,OFFSET MESSMOV AH,9INT 21HMOV AH,4CHINT 21HCSEG ENDSEND BEGIN将⽂件保存为hello.asm;2】编译运⾏将hello.asm移动到masm⽬录下;打开dosbox;编译:将 hello.asm编译成 hello.obj输⼊命令masm hello.asm连接:编译会⽣成⼀个 hello.obj⽂件,连接该⽂件⽣成可执⾏⽂件hello.exe 输⼊命令link hello运⾏:这时已经编译连接完成,⽣成了⼀个hello.exe;运⾏hello.exe命令:hello可以看到成功输出了 hello world。
Windows10下搭建汇编语言开发环境
Windows10下搭建汇编语言开发环境前言本学期学校安排有汇编语言这门课,需要自己搭建汇编语言开发环境,特此写下本文记录搭建过程.关于搭建汇编语言开发环境的教程,我也找了许多,可看下来却依旧一头雾水,经过本人摸索,同时结合网上教程,欲写下这篇易懂的文章. 准备工作1.下载DOSBox工具介绍:DOSBox是一个DOS模拟程序,由于它采用的是SDL库,所以可以很方便的移植到其他的平台.目前,DOSBox已经支持在Windows、Linux、Mac OS X、BeOS 、palmOS、Android 、webOS、os/2等系统中运行.不少DOS下的游戏都可以直接在该平台上运行.工具官网:DOSBox, an x86 emulator with DOS项目主页:https:///projects/dosbox/下载链接1(32位):/projects/dosbox/files/dosbox/0.74/D OSBox0.74-win32-installer.exe/download/下载链接2(这个是我下载好的,可能会快一点):https:///i4TQgm4zjkf/2.下载汇编工具包下载链接:https:///i4TQgm4zjkf/汇编工具截图安装教程1.安装DOSBox双击运行DOSBox安装程序点击next选择安装位置(我选择都是D:\DOSBox)然后点击install即可安装位置要记得,后面要用2.创建工作目录安装完毕创建一个工作目录(目录位置及目录名可自定义)我的是在D:/DOSBox/Debug之后再在Debug下创建两个文件夹ASM(放自己写的汇编程序)和MASM(放汇编工具)将汇编工具放入MASM文件夹3.挂载工作目录打开DOSBox安装目录(我的在D:\DOSBox)打开后找到DOSBox 0.74 Options.bat这个批处理文件直接双击运行会出现一个记事本使用快捷键Ctrl+F查找其中的[autoexec]部分(一般在文件末尾)在文件中添加下列内容并保存MOUNT F D:\DOSBox\Debug set PATH=%PATH%;F:\MASM; F:cd F:\ASMcls命令解释:#挂载工作目录挂载到虚拟盘符F(虚拟盘符可自定义,命令不区分大小写)MOUNT F D:\DOSBox\Debug#添加系统临时变量(此时的F代表的是D:\DOSBox\Debug)set PATH=%PATH%;F:\MASM;#转到F盘符F:#切换到F:\ASM目录cd F:\ASM#执行一次清屏cls如果不加cls,打开会是这样加上cls,打开会是这样(我觉得更美观,依个人喜好)注意:不进行此种配置的话,每次打开DOSBox是需要手动输入上述命令,非常麻烦使用说明DOSBox常用快捷键快捷键作用Alt+Enter 切换全屏Ctr+F1 改变键盘映射Alt+Pause 暂停模拟Ctrl+Alt+F5 开始/停止录制视频Ctrl+F4 交换挂载的磁盘映像,也就是更新磁盘文件Ctrl+F5 截图Ctrl+F6 开始/停止录制声音Ctrl+F7 减少跳帧Ctrl+F8 增加跳帧Ctrl+F9 关闭DOSBOXCtrl+F10 捕捉/释放鼠标Ctrl+F11 模拟减速Ctrl+F12 加速模拟Alt+F12 不锁定速注意:以上快捷键我并没有全部测试,更多详细信息参见README.txt(在DOSBox安装目录中的Documentation里面)调整窗口大小初始的界面很小,且不能直接拉伸界面,所以有需要的可以按照下面的方法调整一下双击打开DOSBox 0.74 Options.bat使用快捷键Ctrl+F查找windowresolution字段将windowresolution=originaloutput=surface改为windowresolution=800x500 #800x500为自定义大小,可修改output=opengl注意:不用删除原来的语句,在前面加上#注释掉即可保存后,重启DOSBox生效创建并编辑文件关于创建并编辑文件,如果你的工作目录(挂载的目录)有文件(我提供的汇编工具包中有),那么你就可以在DOSBox 中创建并编辑文件,如果没有请使用我提供的工具包或者耐心往下看. 使用DOSBox创建并编辑文件(不推荐)打开DOSBox使用下面命令创建并编辑test.asm文件edit test.asm回车后进入下面界面即可进行编辑(注意:鼠标箭头只能在编辑器里活动,想将鼠标退出来的话可以用Ctrl+F10组合键退出)使用记事本创建并编辑文件(其他编辑器也可以)下面以此种方式创建test.asm文件新建文本文档,将下面代码复制到里面并保存datas segmentbuf db'Hello, World!$'datas endsstacks segment stackdb 200 dup(0)stacks endscodes segmentassume cs:codes,ds:datas,ss:stacks start:mov ax,datasmov ds,axmov dx,seg buflea dx,bufmov ah,09hint 21hmov ah,4chint 21hcodes endsend start之后重命名为test.asm编译调试打开DOSBox输入下面命令masm test.asm回车后会询问文件名,建议直接回车编译程序提示输入交叉引用文件的名称,这个文件同列表文件一样,是编译器将源程序编译为目标文件过程中产生的中间结果.可以让编译器不生成这个文件,直接按Enter键即可可以像上图一样分别输入文件名,打开ASM查看如下本文全部默认即不分别输入文件名直接回车打开ASM文件夹查看如下继续输入命令link test.obj运行完毕,查看ASM文件夹继续执行下列命令debug test.exedebug的简单使用debug是Dos、Windows提供的实模式(8086方式)程序的调试工具•可以查看CPU各种寄存器的内容•可以查看内存的情况•可以在机器码级别跟踪程序的运行命令作用R命令查看、改变CPU寄存器的内容D命令查看内存中的内容(机器指令形式)(16进制显示)E命令改写内存中的内容,即提供指令(使用机器指令),用得比较少,多为A命令U命令查看内存中的内容(将机器指令形式转换为汇编指令的形式)(反编译) T命令执行一条汇编(机器)指令(就是执行当前指令缓冲器中的指令)A命令相比较E,使用汇编指令进行内存修改——向内存提供机器指令P命令在遇到汇编指令为int xx 时,使用p指令结束(否则CPU会指向一个未知的地址段)G命令执行完exe运行结果显示Q命令退出debug命令查看指令帮助R命令查看CPU寄存器的内容标识名置位复位溢出Overflow(是否) OV NV 向Direction(减量/增量) DN UP 中断Interrupt(允许/屏蔽) EI DI 符号Sign(负正) NG PL 零Zero(是否) ZR NZ 辅助进位Auxiliary Carry(是否) AC NA 奇偶Parity(偶奇) PE PO 进位Carry(是否) CY NC 改变标志位的值rf改变CPU寄存器的内容改变ax的值直接回车退出修改改变CS:IP的值D命令使用D命令,debug将输出3部分内容:1.中间是从指定地址开始的128个内存单元的内容,用16进制的格式输出,每行的输出从16的整数倍的地址开始,最多输出16个单元的内容.注意在每行的中间有一个'-',它将每行的输出分为两部分,这样便于查看2.左边是每行的起始地址3.右边是每个内存单元中的数据对应的可显示的ASCII码字符.若没有对应可显示的ASCII字符,debug就用'.'来代替在一进入debug后,用D命令直接查看,将列出debug预设的地址处的内容使用d 段地址:偏移地址查看(以d 1000:0为例)格式:d 段地址:偏移地址使用'd 段地址:偏移地址'的格式来查看,debug将列出从指定内存单元开始的128个内存单元的内容在使用'd 段地址:偏移地址'之后,接着使用D命令,可列出后续的内容也可以指定D命令的查看范围,此时采用'd 段地址:起始偏移地址结尾偏移地址'的格式若输入的地址不是16的倍数,则输出效果是这样的E命令将内存1000:0-1000:9单元中的内容分别写为0、1、2、3 (9)可以用'e 段地址:起始地址数据数据数据……'的格式来进行用E命令以提问的方式来逐个地修改从某一地址开始的内存单元中的内容•红色部分为用户输入的修改的数据,到了某一内存单元的时候,可以选择修改(输入要修改的数值),也可以选择不修改(直接按空格),处理完一个内存单元之后,按空格,继续处理下一个内存单元;全部都处理完毕之后,按enter可以用E命令向内存中写入字符也可以用E命令向内存中写入字符串用E命令向内存中写入机器码,用T命令执行内存中的机器码e 1000:0 b8 01 00 b9 02 00 01 c8机器码对应的汇编指令b80100 mov ax,0001b90200 mov cx,000201c8 add ax,cx用E命令向从1000:0开始的内存单元中写入了8个字节的机器码用D命令查看内存1000:0~1000:1f中的数据(从数据的角度看一下写入的内容)用U命令查看从1000:0开始的内存单元中的机器指令和他们所对应的汇编指令U命令对机器代码反汇编显示按地址反汇编u 地址该命令从指定地址开始,反汇编32个字节,若地址省略,则从上一个U命令的最后一个指令的下一个单元开始显示32个字节按范围反汇编u 范围T命令命令输入?查看更多命令结果如下:。
05、汇编语言--环境搭建
05、汇编语⾔--环境搭建环境搭建开发汇编语⾔程序,⾸先需要安装开发软件,熟悉开发平台。
开发环境在DOS和Windows操作系统下,最流⾏微软汇编程序MASM,Borland公司的TASM也常⽤,两者相差不⼤。
在Linux操作系统下,标准的汇编程序是GAS,NASM也较常⽤。
开发软件包MASM5.0搭建开发环境需要⽤到如下⼯具:⾥⾯包含:MASM5.0、MASM6.0和DOSBox0.74编译程序只需要MASM、LINK、DEBUG即可,编辑器可以考虑使⽤NotePad++。
MASM.EXE:汇编程序,⽤于汇编源程序(.asm),得到⽬标程序(.obj);LINK.EXE:连接程序,⽤于连接⽬标程序,得到可执⾏程序(.exe);DEBUG.EXE:调试程序,⽤于调试可执⾏程序。
下⾯的步骤看看就好,推荐使⽤VSCode + MASM/TASM插件构建开发环境:开发环境的具体搭建步骤如下:1、安装DOSBox,可以安装到任意位置。
2、在任意盘符下创建Assembly(⾃定义)的⽂件夹,⾥⾯包含ASM和MASM。
ASM:⽤来存放要编译的汇编程序,也就是源码⽬录MASM:⽤来存放编译程序MASM.EXE、LINK.EXE、DEBUG.EXE等三个⽂件3、由于每次配置都⾮常⿇烦,所以在DOSBox 0.74 Options.bat中的结尾处添加配置(双击打开):# 挂载驱动器(将放汇编程序、编译⼯具⽂件夹挂载到⼀个虚拟盘)mount G: D:\Assembly# 添加系统临时变量(此时的 G: 代表的是D:\Assembly)set PATH=%PATH%;G:\MASM;# 转到 G:G:# 进⼊ASM⽂件夹cd G:\ASM4、编写汇编源程序代码,代码如下所⽰:;hello.asm(⽂件名).model small.stack.datamsg db'Hello,Assembly!',13,10,'$' ;定义要显⽰的字符串.code.startupmov dx,offset msg ;指定字符串在数据段的偏移地址mov ah,9 ;AH赋值9int 21h ;利⽤功能调⽤显⽰信息.exitend5、输⼊如下命令进⾏编译、链接和运⾏等操作(如果使⽤MASM5.0编译会出错)masm hello.asmlink hello.objdebug hello.exe当遇到空⾏显⽰直接回车即可。
Win10系统VS2022开发环境中(X86)Win32汇编(MASM32)环境配置和一些。。。
Win10系统VS2022开发环境中(X86)Win32汇编(MASM32)环境配置和⼀些。
抱歉,还是只能⽤⽶国的软件以及技术以及等等等等。
如果配置完成,在vs2022调试环境下正确编译运⾏后,可以看到如下画⾯:在VS022中开发学习汇编必然很⽅便。
这⾥可以下载vs2022项⽬源码:注意, AsmDude()只⽀持到vs2019。
主要配置过程如下:step1: 按照vs2022(直接官⽹下载Community版本)step2:这⾥下载masm32v11r.zip这个压缩包step3: 将MASM32的install.exe运⾏安装到C盘(也可以是别的盘),安装过程注意同意其解压,这⾥会耽搁⼀⼩段时间。
step4: 在vs中建⽴⼀个控制台应⽤。
删除原来默认⽣成的cpp⽂件。
step5: 在项⽬图标上上右键, ⽣成依赖项->⽣成⾃定义->选中masm, 如下图:step6: 在源⽂件图标上右键,添加 -> 新建项, 新建 test.asm⽂件。
step7: 在test.asm写⼊代码如下:.386.model flat, stdcall.stack 4096option casemap:noneinclude windows.incinclude user32.incincludelib user32.libinclude kernel32.incincludelib kernel32.lib.constszCaption db '恭喜',0szText db 'Win32汇编程序成功编译!',0.dataExitProcess proto, dwExitcode: dword; 代码段.codemainT PROCinvoke MessageBox,NULL,offset szText,offset szCaption,MB_OKinvoke ExitProcess,NULLmainT ENDPEND mainT// 部分代码源⾃ <<[琢⽯成器—Windows环境下32位汇编语⾔程序设计].罗云彬.第三版>>上⾯代码中的 mainT是我这⾥为了解释如何配置⽽故意起的名字。
汇编开发环境
Windows环境下32位汇编语言开发环境的建立在Windows环境下进行汇编语言程序设计之前,首先需要搭建一个汇编语言的开发环境。
现在汇编语言开发工具包常见的是MASM,TASM和NASM。
MASM是微软开发的宏汇编工具,适合在Windows 环境下进行程序设计,性能稳定,持续升级;NASM的语法与MASM略有不同,它可以在不同的环境下使用,LINUX或Windows。
鉴于目前汇编语言程序设计教学中更多的选择了MASM,本文将介绍基于MASM的32位汇编开发环境的几种搭建方法。
其他汇编工具的具体内容可参考相关的手册。
汇编语言的开发分为源代码编辑,汇编和连接三个步骤,在必要的时候还需要对程序进行调试。
因此汇编语言开发环境中应包含编辑软件,汇编软件,连接软件和调试软件。
如果将这些软件集成在一起就是构成一个集成开发环境。
一、命令行环境首先下载一个MASM615开发工具包。
在许多汇编网站和汇编教材的配套光盘中都提供了该工具包。
根据提示,进行安装。
然后就可以用它来开发汇编程序。
(1)源代码编辑汇编源程序是纯文本文件,其扩展名为.asm,可以用任何一种文本编辑软件来编写汇编原代码。
比如EditPlus,UltraEdit,NotePad,Word, VC++等,注意文件保存的时候必须以纯文本格式保存,并取.asm后缀名。
(2)汇编源文件不能直接被机器执行,需要运行汇编软件对它进行汇编生成目标文件,后缀为.obj.,这是一个二进制文件。
如果出现语法错误,汇编程序会产生错误报告,程序员可以根据这些错误报告对源程序进行重新编辑,重新汇编,直到没有语法错误为止。
MASM汇编器的命令是ml.exe,其命令行格式为:Ml [/option] 源文件 [/link option]生成32位应用程序时,常用的命令行是:ML /coff /c /Fl /Zi filename;例如,要汇编test.asm源文件,生成coff格式的目标文件,列表文件和调试信息,可以使用命令行:ML /coff /c /Fl /Zi test.asm;为了避免每次汇编源文件的时候都要输入许多参数,可以建立一个批处理文件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
引子
由于这些日子一直都在研究底层的技术,从Windows 驱动程序,到Windows 内核等等技术的学习,
让我对底层的技术越发有兴趣了,而刚好,在研究WRK 时,
对内存管理,寄存器,地址总线,数据总线,控制总线等的理解不够透彻,
所以越发的想学习汇编程序设计来提升功力,
而由于近来在公司里一直都有项目压着,所以在公司里也实在不好拿本汇编程序设计看,所以只好晚上回来学习了,汇编看了几个晚上,也算是蛮有感觉的。
今天就先来搭个开发环境再说吧。
开发环境搭配
我介绍四种开发汇编程序的方式:
第一种:直接在Dos 环境下使用Edit 命令调出源码编辑框,
生成源码后,可以使用由微软提供的masm 汇编编译器来对源码进行编译,
编译完后再使用Linker 连接器即可得到可执行文件,
这种方式现在几乎被灭绝了(当然使用masm 汇编编译器还是很普遍的),
除非你真要在DOS 环境下运行汇编程序;
第二种:通过简化第一种方式而来;
第三种:直接使用Masm for Windows 集成实验环境,这个开发环境呢,非常适合汇编语言的初学者,
因为这个IDE 本身就是由一些从事汇编程序教学的大学老师开发的出来用于汇编初学者进行学习和实验的,
所以使用简单,方便,这里可以对这个IDE 稍加推荐;
第四种:则是通过Visual Studio 这个强大的IDE 来实现汇编程序的编译,运行和调试,至于Visual Studio 就不多做介绍了,.Net 用了这么多年,这东西强大到什么程度那是总所周知的;
第一种方式:使用Edit + MASM 5.0 编译器+ Linker 连接器
其实这种方式是很简单的,只是很麻烦,因为简单而且麻烦,
所以我采用尽可能的将截图传上来,然后稍加注解的方式进行介绍,
软件准备:
需要MASM 5.0 或者以上的汇编编译器
首先,是要编辑汇编源代码:
其实对于源码的编辑根本不需要向如下这么麻烦,直接拿个记事本就OK 了
运行cmd 命令
输入Edit 命令从而弹出汇编源码编辑框
在源码输入框中输入汇编源码
将编辑好的汇编源码保存到xx.asm 文件中
然后就是要编译编辑好的汇编源代码
在Dos 环境下进入到MASM 5.0 汇编编译器所在的目录
然后运行masm.exe
可以从上面的截图中看到[. ASM] 的标记,这个标记代表的是需要在这里输入要编译的源程序文件名,
这里有一点特别的是,由于默认的文件扩展名为 .asm ,所以在编译 .asm 的汇编源程序时可以不用指定源程序所在文件的扩展名。
我们将一开始编辑好的汇编源程序所在的文件输入以进行编译
指定文件所在路径后按Enter 键
此时可以看到编译器提示需要输入要编译出的目标文件的名称,由于在一开始已经指定了BoyXiao. asm ,
所以编译器自动指定了目标文件的名称为BoyXiao. obj 的名称,如果在这里不做修改的话,
则编译器会以默认目标文件名称BoyXiao. obj 进行输出,在这里我并不改变名称,所以直接按Enter 键即可
此时又提示需要输入列表文件的名称,其实是完全可以不要让编译器生成这个LST 文件的,所以也不需要进行输入,
直接按Enter 键即可
此时又提示需要输入交叉引用文件的名称,这里也完全可以不要让编译器生成这个CRF 文件,
所以也不需要进行输入,直接按Enter 键即可
至此,汇编源程序编译成功,
编译得到的结果就是在我的E:ToolsMASMMASM 5.0 目录下生成了一个BoyXiao.obj 文件
下面就是要实现对目标文件的连接
经过编译操作后,我们得到了一个 .obj 的目标文件,但很显然,这还并不是一个可执行文件,
下面就需要对目标文件进行连接,从而得到一个可执行文件。
一般来说,需要准备一个连接器,这里我使用的是微软提供的Linker 连接器,即LINK.EXE ,
进入LINK.EXE 文件所在目录,直接运行LINK.EXE
此时提示需要输入被连接的目标文件的名称,这里也就是BoyXiao.obj ,
由于我的BoyXiao.obj 和Link.exe 在同一目录下,所以不需要指定路径,直接给出 .obj 的名称即可,
按Enter 键
这里提示需要输入要生成的可执行文件的名称,此时如果想要将可执行文件输入到指定目录下,
则需要指定目录,否则只需要指定名称即可,并且可以看到名称已有默认值:BOYXIAO.EXE 在这里我选择默认值,所以直接按Enter 键即可
按Enter 键
又继续提示需要输入映像文件的名称,在这里,不需要生成这个文件,所以直接按Enter 键即可
此时又提示需要输入库文件的名称,由于我们的这个程序中没有使用任何的子程序,
也就是根本没有调用什么库文件,所以这里也可以直接按Enter 键处理
至此,整个目标文件的连接工作结束,得到的结果是一个EXE 文件
执行汇编程序
其实执行起来是看不到什么结果的,因为上面的汇编代码没有输出任何内容,而只是改变了几个寄存器的值而已,
自然也就看不到任何的输出了。
第二种方式:使用Edit + MASM 5.0 编译器+ Linker 连接器(简化版)
这种方式其实和第一种方式说不上有什么区别,只不过在编译和连接过程中使用了很多编译器和连接器的默认设置而已
软件准备:
和第一种方式一样
编辑汇编源代码:
和第一种方式一样,也可以是直接使用文本编辑器编辑即可
编译编辑好的汇编源代码
直接到MASM.EXE 文件目录,然后直接使用masm 编译指定路径的文件即可
特别注意的是,需要在目录的后面加上“;”
同样在E:ToolsMASMMASM 5.0目录下生成了BoyXiao.obj 目标文件
实现目标文件的连接
同样,直接下到连接器LINK.EXE 文件所在的目录,然后直接使用LINK 连接指定的目标文件即可
同样需要注意在目录或文件名的后面加上“;”
可以看到连接成功了,从而生成了可执行文件,当然这个可执行文件运行的效果和第一种方式中一样,
即看不到任何输出
第三种方式:MASM For Windows 集成开发环境
上面的两种方式都显得非常麻烦,编译了还要连接,谁有那么多时间去浪费啊,
所以,下面介绍的这个MASM For Windows 集成开发环境就显得非常有优势了,
软件准备:
MASM For Windows 集成开发环境,我这里使用的是2010 版本,大小15.5 MB
实现HelloWorld
直接打开MASM For Windows 集成开发环境,然后找到范例程序,然后直接运行即可
可以看出,使用这个东东确实会方便很多很多
第四种方式:使用Visual Studio 来实现开发汇编程序
软件准备:
既然是使用Visual Studio 来开发了,自然就需要Visual Studio IDE 了,
在这里呢,我使用的是Visual Studio 2010 ,当然2008 和2005 都是可以的,
只不过在一些设置上有些许区别而已,在这里,我也不做区分,大家感兴趣的可以去网上淘一大把,
然后就是<<Intel 汇编语言程序设计>>中的Irvine 包,这个在网上也有一大把
VS 2010 设置:
在VC++ 中新建一个空项目,取名为Test
定制VC++ 工程构建规则
设置完VC++ 生成自定义项文件后,再添加一个C++ 文件,并注意取名时后缀名记为 .asm
设置VC++ 工程的项目属性
需要添加库路径,这里的库路径指的是<<Intel 汇编语言程序设计>> 中的Irvine 库
设置包含路径
设置依赖库文件,添加Irvine32.lib
设置项目输出
设置生成汇编代码列表,添加$(ProjectName).lst 属性
Hello World 程序:
直接运行即可
结束语
花了这么多的截图来介绍这四种汇编程序开发方式,也算是良苦用心了,事实上呢,这四种方式,
我们并没有必要全部掌握,我们只需找到适合自己的方式即可,
比如,初学的话,我觉得MASM For Windows IDE 就非常不错,
而至于系统性的开发,尤其是对于Win32 汇编程序的开发,则选择Visual Studio 是个不错的选择。