导航:首页 > 源码编译 > 怎么连接汇编编译器

怎么连接汇编编译器

发布时间:2023-08-12 07:53:04

1. 源代码到可执行 文件之间的转换用到的 编译器如gcc、汇编器、连接器等是怎么集成到IDE环境中的

在VisualC 2005中,如何调用其它编译器编译cpp文件呢?换句话说,如何把其它编译器集成到VC2005的IDE中呢?

象ICC这样的编译器安装之后会自动集成进来,要集成其他编译器那还得自己动手。下面介绍一种简单、浅层的“集成”方法。

你也许注意到了,在VC2005的IDE中是不能编译单个.cpp文件的,除非把它放在工程中。但是,我们可以通过调用外部工具实现编译单文件。

下面以调用G 为例说明如何编译单个.cpp文件。如果要编译单个.c文件,使用GCC即可,方法同理。

也许你现在还不知道G 。G 是GCC中的一员。GCC的含义是GNU编译器集合(GNUCompilerCollection),包括C、C 、Objective-C、Fortran、Java、Ada连同与这些语言相配的库等。GCC被誉为“世界上最重要的软件”。许多免费的编译器都是GCC的移植版—MinGW(MinimalistGNUforWindows)中携带的编译器就是如此。

以MinGW为例,我们可以下载DevC ,DevC 目前最新版为4.9.9.2。安装DevC 的同时就安装了MinGW,其中包含了G 3.4.2.

假设DevC 安装在D:\Dev-Cpp目录下。

下面我们在VC2005的菜单点击“工具(Tools)->外部工具(ExternalTools)->添加(Add)”。

分别填入:

标题(Title):GNUC Compiler

命令(Command):D:\Dev-Cpp\bin\g .exe

参数(Arguments):-Wall-o$(ItemFileName)$(ItemFileName)$(ItemExt)-time

初始目录(Initialdirectory):$(ItemDir)

再钩选下面的"使用输出窗口(UseOutputwindow)".

说明:如果你已经把D:\Dev-Cpp\bin\目录添加到系统环境变量中,那么Command指定为g .exe即可。Cygwin同理。

这些参数只是一个参考。你可以查阅VC编译器的宏设置你需要的参数。

干脆顺带补充一下DigitalMarsC 编译器的参考参数设置:

标题(Title):DigitalMars

命令(Command):C:\dm\bin\dmc.exe

参数(Arguments):$(ItemFileName)$(ItemFileName)$(ItemExt)

初始目录(Initialdirectory):$(ItemDir)

好,下面切换到main函数所在文件,点击工具(Tools)菜单下的“GNUC Compiler”开始编译。

注意g 此时编译的指是纯C 程序,对于包含int_tmain(intargc,_TCHAR*argv[])这类VC特有的C 程序自然是无法通过编译的。

如果编译没有出错,对于早期版本的g 而言,Outputwindow是没有任何输出的。

而对于较新版本的g ,将输出类似以下的信息:

#cc1plus0.670.22
#as0.050.01
#collect20.360.19

这是-time报告的编译过程中每个子过程所占用的CPU时间。

当然,你还可以更改编译参数,使输出窗口输出其他编译信息。

我们还可以通过添加外部工具来实现运行g 生成的程序的功能。步骤如下:

在VC2005的菜单点击“工具(Tools)->外部工具(ExternalTools)->添加(Add)”。

分别填入:

标题(Title):RunasC Application

命令(Command):%systemroot%\system32\cmd.exe

参数(Arguments):/c$(ItemFileName).exe

初始目录(Initialdirectory):$(ItemDir)

不要钩选下面的“使用输出窗口”和“退出时关闭”。

注意:cpp文件必须放在工程中,g 生成的程序才能被运行!

用MinGW的g 编译出的程序可以在没有安装MinGW的Windows系统上运行!

但是在Cygwin/gcc下编译出来的程序,在windows执行必须依赖cygwin1.dll。

通过VC2005创建不带预编译头的Win32控制台应用程序空环境,这样编译出来的可执行文件也不是放在哪台机子都能跑的。但是常规空环境可以做到。

下面讲讲如何设置快捷键。

点击菜单中的"工具->自定义",

点击右下角的"键盘",

点击"按快捷键"下面的文本框,

按下Shift Ctrl F7,如果这个快捷键已经分配给了其他的命令,更换一个即可。

2. 在开始目录下如何打开汇编语言编译器

最好把MASM放在跟目录下例如D:\MASM
把编辑好的ASM文件(用TXT文档编写程序,保存.把后缀名TXT改成ASM)放在MASM文件夹下如(D:\MASM\文件名.ASM)
点击开始菜单 .运行->CMD->D:回车->CD MASM回车->MASM 文件名3下回车
->LINK 文件名 3下回车->DEBUG 文件名.EXE
现在我们都用 masm集成环境了,建议你用

3. 怎么编译连接16位的汇编程

如果是写16位汇编,下载masm5.0(微软的16位宏汇编包),网络一下就有下载!使用masm.exe编译16位汇编源代码生成*.obj文件,在用link.exe连接生成16位可执行文件*.exe。在32位机器上是可以写16位程序的,因为x86的计算机体系就是为了兼容低阶程序而存在的,计算机在启动的时候就是以实模式(可以简单理解为16位的)启动的,之后操作系统才使用机器指令转向32位保护模式(因为这样从硬件级支持多任务)。编写16位、32位、以及64位汇编程序只要下载安装相应的汇编包就可以了。

4. 汇编程序是怎么编译的

汇编语言是一种低级语言,汇编语言是汇编指令集、伪指令集和使用它们规则的统称,使用具有一定含义的符号为助忆符,用指令助忆符、符号地址等组成的符号指令称为汇编格式指令。


过程:

  1. 编辑:用编辑软件(EDIT.EXE或记事本)形成源程序(.ASM)

  2. 汇编:用汇编程序(MASM.EXE)对源程序进行汇编,形成目标文件(.OBJ),格式如下:MASM LX.ASM;

  3. 连接:用连接程序(LINK.EXE)对目标程序进行连接,形成可执行文件(.EXE),格式如下:LINK LX.OBJ;

  4. 执行:如果结果在屏幕在显示,则直接执行可执行文件。

  5. 调试:用调试程序(LINK.EXE)对可执行文件进行调试,格式如下:DEBUG LX.EXE


汇编语言中,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。汇编程序(如MASM)的原理实际上就是把汇编的代码转成电脑可以识别的二进制码

5. 在c语言(C++或G++)中如何嵌入汇编

今天有点时间,重新改下了下,为避免因编译器和平台实现而出现的问题,我写了三个版本,分别是windows下vc6.0,windows下mingw和cygwin和linux下的gcc/g++。

vc6.0:

#include <stdio.h>

const char* input = "%d";

const char* output = "%d\n";

int n;

int main()

{

__asm

{

lea eax, n

push eax

push input
loopx:

call scanf

cmp eax, 1

jne end

mov ecx, n

jecxz end

dec ecx

push ecx

push output

call printf

add esp, 8

jmp loopx
end:

add esp, 8

}

return 0;

}

mingw/cygwin:

#include <stdio.h>

const char* input = "%d";

const char* output = "%d\n";

int n;

int main()

{

__asm__

(

"loop: \n"

"pushl $_n \n"

"pushl _input \n"

"call _scanf \n"

"addl $8, %esp \n"

"cmpl $1, %eax \n"

"jne end \n"

"movl _n, %ecx \n"

"jecxz end \n"

"decl %ecx \n"

"pushl %ecx \n"

"pushl _output \n"

"call _printf \n"

"addl $8, %esp \n"

"jmp loop \n"

"end:"

);

return 0;

}

linux gcc/g++:

#include <stdio.h>

const char* input = "%d";
const char* output = "%d\n";
int n;

int main()
{
__asm__
(
"pushl $n \n"
"pushl input \n"
"loop: \n"
"call scanf \n"
"cmp $1, %eax \n"
"jne end \n"
"movl n, %ecx \n"
"jecxz end \n"
"decl %ecx \n"
"pushl %ecx \n"
"pushl output \n"
"call printf \n"
"addl $8, %esp \n"
"jmp loop \n"
"end: \n"
"addl $8, %esp \n");

return 0;
}

6. 全国计算机三级PC汇编语言编译器是什么怎么用进入考试系统后进入到如图所示,怎么做了

1.输入edit 1.asm(源程序文件名)
或者在考试文件夹打开源程序文件,asm格式的,用记事本打开.就能编辑了
我当时考试的时候采取的后者,因为后者能用鼠标,,哈哈哈哈哈哈,
2.masm 1.asm(源程序文件名) 编译生成1.obj文件
3.link 1.obj 1.asm(源程序文件名) 将1.obj文件写入1.exe文件
这样就可以了

阅读全文

与怎么连接汇编编译器相关的资料

热点内容
苹果如何创建服务器错误 浏览:495
软考初级程序员大题分值 浏览:473
js压缩视频文件 浏览:578
linux如何通过命令创建文件 浏览:989
应用加密app还能访问应用嘛 浏览:433
安卓怎么用支付宝交违章罚款 浏览:665
php面向对象的程序设计 浏览:504
数据挖掘算法书籍推荐 浏览:894
投诉联通用什么app 浏览:150
web服务器变更ip地址 浏览:954
java正则表达式验证邮箱 浏览:360
成熟商务男装下载什么软件app 浏览:609
加密2h代表长度是多少厘米 浏览:23
拍卖程序员 浏览:101
电脑的图片放在哪个文件夹 浏览:276
unsignedintjava 浏览:217
编译器下载地址 浏览:43
什么是面对对象编程 浏览:708
b站服务器什么时候恢复 浏览:721
6p相当于安卓机什么水准 浏览:499