当前位置:首页 » 编程软件 » 个人电脑如何编译汇编语言

个人电脑如何编译汇编语言

发布时间: 2023-01-31 15:37:04

A. 汇编用什么软件编译

通常我都用记事本或者ultra-edit写程序,然后进到命令行里,用masm编译链接,最后用debug调试,这是标准流程啊。
汇编小站上介绍了一个工具叫masmplus,据说是一个类似于vc的IDE,你可以看下,上面对它的评价挺高的。

B. 怎样用自己的电脑进行编程练习

1.首先,打开Microsoft Visual C++6.0这个软件。(没有的安装一个,在网上有很多免费下载),点击如图图标。

C. 使用普通电脑,可以用汇编语言编程吗可以的话怎样操作能出现C:\marm>masm祥细点

可以.
1.> 下载个masm软件, 存c:\Masm下.
2.> 点桌面的开始->选运行, 键入CMD,点运行按钮
3.> 弹出的黑底窗口, 下面操作都在这里做. 先键入C:回车
4.> 键入CD \MASM回车.
注: 不是非得按教程在DOS环境写汇编的.

D. 如何编写最简单的汇编语言

首先明白编译环境:以上4个exe程序必须在32机中运行,若是64位机,请参照dosbox0.74(如何在64位机中使用debug)使用方法。

了解计算机CPU原理:详情请参照“80X86计算机组织”和“80X86的指令系统和寻址方式”

首先有一道题:

求表达式Y=A*X+B-C的值,已知A、B、C分别存放在DA-1、DA-2、DA-3字节单元,它们的值分别是:5 、 6、 7,X存放在INPUT字节单元,结果Y放入JSJ_10字节单元。

分析顺序结构程序代码:由记事本敲出来的

data segment da_1 db 5 da_2 db 6 da_3 db 7 input db 1 jsj_10 db 0data ends ;这一段在内存中定义了一个段,叫做data,并且其中存入了5个变量并且付入初值,db代表每个变量占用1个字节,若是dd则为字,为2个字节code segment ;名字叫做code的段的定义,显然这儿作为代码段,当然code这个名字可以更改 assume cs:code,ds:data ;指定data为DS数据段,code为CS代码段start: mov ax,data ;加法指令 mov ds,ax ;加法指令 mov al,da_1 ;加法指令

mov bl,input ;加法指令

mul bl ;乘法 add al,da_2 sub al,da_3 ;减法 mov jsj_10,al

exit: mov ah,4ch int 21h ;这两行相当于ret(返回值),就像C语言中的return 0;

code ends end start

注释: XXXX segment

.............

XXXX ends ;定义一个段

assume ds:XXXX 把XXXX段指定为ds(ds是段地址寄存器)

请先提前把masm edit debug link文件放入预定的文件夹,并把编写的xxxx.asm代码文件放入该文件夹,asm文件可用记事本写成,并改格式txt为asm(有的看不到文件后缀.txt的请参照网络)

E. 怎样在PC上编写 汇编语言

如果只是抒写,建一个文本,最后把格式改为.asm
如果要编译并且运行它,那么你就要下一个编译软件
现在比较好用的是用VC2005编译和运行
网上很多下载的,可以下载~

F. 汇编语言编译器是怎么编写的

编译器自举!搜索这个关键字
程序都是编译器编译的。这个是肯定的
至于第一款X语言编译器是不是直接1010101010自己写的那就不知道啦

一般开发编译器的话。有两条路选择
1.利用yacc(或者其变种)&lex(词法分析)-等工具自己生成语法模板
词法语法都可以使用这些工具自己生成
然后自己编写生成的中间码和生成的机器码就可以了
一般做编译原理类似试验都是如此的。许多编译器也的确是这样

2.自己写词法分析和语法分析。可以参考一些开源的编译器
lcc-这个是ANSI C99标准的编译器是开源的
或者nasm,watcom等编译器到www.sf.net上不少开源的编译器

总的来说。高级语言编译器比较难写
如果想快速写出一个的话
可以采用第一种做法。利用工具生成语法词法模板
先写一个简单的汇编编译器比较简单
开源的有nasm,jwasm(支持masm语法开源的编译器)
http://www.japheth.de/JWasm.html
fasm(这款编译器是自举的.就是自己可以编译自己),
http://flatassembler.net/

剩下的就是自己做好语言规则关键字map
引用高手的话。语言map做好了你的编译器也做好一半了
剩下的都是机械性的工作了。
生成x86或者arm指令。

优化工作这个很难解释.根据你所需要的做吧
毕竟可以做出一个无错,又XX的编译器已经很难得

你可以选择使用现有的编译器开发自己的编译器
然后等到你的编译器支持相当数量指令和成熟度的时候
使用自己的语法重新写一遍编译器.
这样你就可以用自己的编译器开发自己的编译器了(是不是很邪恶?)

另外举几个例子
Delphi的编译器是C++ Builder开发的。
而C++ Builder的IDE是Delphi开发的
C++ Builder的编译器是C++ Builder开发的-这个就是编译器自举了。。Delphi和C++ Builder共享一个后端化优化器。
Delphi 早期的版本的编译器是tasm直接编译的。可见Anders的汇编功力多强悍(Anders也就是后来VJ++,C#,.NET工程的核心架构师.最关键的灵魂级人物)

VC++的编译器是VC++开发的。很明显这都说明了编译器自举
自己开发自己。如果一个编译器可以做到自己编译自己。那基本上就可以实现任何功能了。

关于编译器开发的书籍可以看一下
龙书《编译原理(第二版)》
虎书《现代编译原理-C语言描述》
鲸书《高级编译器设计与实现》
建议从鲸书看起。然后是龙书
再来是虎书--虎书里面描述了许多现代编译器(正如其名)技术
例如面向对象啦,优化,垃圾回收等等.
鲸书看完基本上就可以实现一个简单的Tiny C编译器了
然后在龙书巩固,读一下语言规范,自己看一些开源的汇编编译器代码
自己就可以尝试做一个汇编语言编译器了.等到技术提高了
在尝试做一些高级语法识别,参考LCC代码做一下ANSI C99的
C语言编译器。再来就看你自己的兴趣和领悟度拉
如果想支持C++的话就得要对编译器做许多方便的研究

类似Java那种跨平台或者Ruby,Python等动态语言
虎书中也有描述。当然看自己功力了

G. 怎么用电脑的命令符窗口进行汇编程序

详细步骤如下:

  1. 将写好的汇编代码保存为1.asm

  2. 将1.asm复制到c盘下

  3. 点开始(即左下标那个windows图标),找到运行,或(附件中的命令提示符)

  4. 找到运行后,输入cmd 或 command

  5. 进入后输入cd c:

  6. 输入masm 1;(1后面有分号),然后回车

  7. 输入link 1;然后回车

  8. cls清屏然后回车

  9. 输入1.exe,然后回车

  10. 完成

如果你需要debug,步骤如下:
1 - 8步同上
9.输入debug 1.exe,然后回车
10 完成

通过以上步骤你便可以通过命令符窗口进行汇编程序。

汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。普遍地说,特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。

许多汇编程序为程序开发、汇编控制、辅助调试提供了额外的支持机制。有的汇编语言编程工具经常会提供宏,它们也被称为宏汇编器。

汇编语言不像其他大多数的程序设计语言一样被广泛用于程序设计。在今天的实际应用中,它通常被应用在底层,硬件操作和高要求的程序优化的场合。驱动程序、嵌入式操作系统和实时运行程序都需要汇编语言。

H. 汇编语言用什么编写

任何语言的源程序都是可以用“任何”文本编辑器生成的,唯一的要求:非格式化。也就是不要有字体、颜色、段落等等格式控制,换句话说,要纯ASCII文本文件。
通常我就用“记事本”,在命令行方式下就用EDIT。
至于IDE,网上也有很多,但是没见过几个特别好用的,没有集成调试(DEBUG)功能的话,还不如就用批处理。

I. 汇编语言程序设计在电脑上怎样运行

这要看楼主要学那方面的汇编了,我们知道,汇编语言是针对硬件直接操作的,因此,每一种CPU都有自己的硬件结构,因此,汇编语言也有所不同。不同的汇编需要装不同的编译器,连接定位器软件。一般用汇编的芯片有8086系列的,MCS51系列的,pic系列的。分别有着不同的开发软件,可以进行语法检查和编译工作。但楼主要验证是否正确,还是要烧到相应的芯片中具体执行,才说的准。

J. 怎么用记事本编写汇编语言源程序(扩展名为:ASM),功能为在DOS环境下循环输出字符串“Hello World”3次

直接在记事本里面编写 汇编语言
data segment
;DATA HERE
String db 'Hello World!$'
data ends

stack segment stack
db 20 p('STACK')
stack ends

;-------------------------------------------------
code segment
assume ds:data,es:data,ss:stack,cs:code
.586p
start:
mov ax, data
mov ds, ax
mov es, ax
;CODE HERE

mov dx, offset String
mov ah, 09h
int 21h

mov ax, 4c00h
int 21h
code ends
end start
存为hello.asm文件即可

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:750
制作脚本网站 发布:2025-10-20 08:17:34 浏览:1012
python中的init方法 发布:2025-10-20 08:17:33 浏览:719
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:879
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:774
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1127
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:351
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:229
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:912
python股票数据获取 发布:2025-10-20 07:39:44 浏览:876