HLA简介及安装、使用 (HLA的安装非常简单!三、五分钟就能搞定!然后你就可以编程了!爽就一个字!)
搞汇编的人都知道一本非常牛的书: AOA !
这本AOA是用HLA讲述汇编的。那么什么是AOA?什么是HLA?
○ HLA简介
HLA,英文"High Level Assembler"(高阶汇编)的缩写,即所谓高级语法的汇编,它将一些高级语言中的特性加入汇编编写中,但它在最终的编译连接时还是要用到MASM的编译器和连接器。
更进一步的解释请参看:
http://webster.cs.ucr.edu/AsmTools/HLA/index.html
强烈建议没装过、用过HLA,都用用HLA。没看过《The Art of Assembly Language》(汇编语言的艺术)这本书的都看看。HLA是最牛逼的汇编了!《The Art of Assembly Language》是非常牛的一本汇编书了!
安装HLA,只要三、五分钟就搞定,然后你就可以用它编程了,非常爽!都来试试吧。
● HLA的安装
1.下载并安装MASM32
到http://www.masm32.com
去下载一个MASM32,并安装它。
2.下载并安装HLA
先到
http://webster.cs.ucr.edu
点击“High Level Assembly”的链接,打开http://webster.cs.ucr.edu/AsmTools/HLA/index.html
再点击“Download HLA”的链接,打开http://webster.cs.ucr.edu/AsmTools/HLA/dnld.html
再找到“Windows Users”下的“HLA Installation Program”,比如hlasetup.exe,然后下载它。
再安装它,安装时选择的目录不要带空格,比如不要装在C:\Program Files,而装在C:\Inetpub可以。
3.设置HLA
到MASM32的bin子目录下,把其中的ml.exe、ml.err、link.exe、mspdb50.dll四个文件复制到HLA所在目录。注意是复制而不是移动。
然后再到MASM32\lib目录下,把其中的gdi32.lib、kernel32.lib、user32.lib三个文件复制到hla\hlalib目录下(如果原本就有这些文件,可覆盖它们)。注意是复制而不是移动。
设置并确认以下四个系统环境变量:
set hlainc=c:\hla\include
set hlalib=c:\hla\hlalib\hlalib.lib
(安装程序可能已把以上两个系统环境变量设好,不必再改动了)
set lib=c:\hla\hlalib; 《some text》
(安装程序可能已把以上这个系统环境变量设好,但需要检查设置的对不对,有没有重复的地方)
set path=c:\hla; 《some text》
(一般这个系统环境变量的新增部分需要手工添加,注意如果同时安装了Cygwin,要确保HLA的路径在Cygwin之前,否则Cygwin也带有link.exe,它会先于HLA被执行,导致HLA连接时出错)
4.运行HelloWorld测试HLA
编辑并存盘一个HelloWorld.hla文件,把它存到c:\hla\test,内容如下:
program HelloWorld;
#include( "stdlib.hhf" );
begin HelloWorld;
stdout.put( "Hello, World of Assembly Language", nl );
end HelloWorld;
注意:Randall Hyde在他的AOA(The Art Of Assembly)一书里的上述源码中,英文引号(" ")都变成了中文引号(“”),需要改正过来才可无错运行。我给出的代码是没这个问题的,你拷贝过去就可直接无错运行了。
编译并运行它:
C:\hla\test>hla HelloWorld.hla
Assembling: HelloWorld.asm
C:\hla\test>HelloWorld
Hello, World of Assembly Language
C:\hla\test>
进一步修炼HLA,看《The Art of Assembly Language》这本书。
参考网址:
http://webster.cs.ucr.edu
问题点数:0、回复次数:12Top
1 楼gemhop(真美好)回复于 2006-08-01 12:53:29 得分 0
呵呵,在http://community.csdn.net/Expert/topic/4874/4874821.xml?temp=.2486536里的回复,专门拎出来开作一贴,让大伙,没试过、用过的都来装一下试试,这个HLA是绝对不会让你失望的!Top
2 楼DelphiGuy()回复于 2006-08-02 18:07:09 得分 0
有意义吗?
怎么看着都象C和Pascal的混合物,与ASM相距甚远。
Top
3 楼asmzyd(HAA55)回复于 2006-08-02 20:14:44 得分 0
靠,我那一百多条指令白记了........郁闷。Top
4 楼gemhop(真美好)回复于 2006-08-03 18:48:42 得分 0
DelphiGuy() ( ) 信誉:100 2006-8-2 18:07:10 得分: 0
有意义吗?
怎么看着都象C和Pascal的混合物,与ASM相距甚远。
=============================================
你错了 !
HLA是真正意义上的汇编,你只看到了我本贴的 hello world,就下了结论未免失之偏颇.
其实你应该认真看完那本很牛的AOA, 就会知道你现在的认知是多么地错了!
呵呵, 学下 Randall Hyde 的 "AOA" 吧.他是搞汇编的大虾都无人不知无人不晓的一本牛书,它的中文版有没有不知道,反正英文版是作者免费提供下载的:
http://webster.cs.ucr.edu/AoA/index.html
分不同版本(根据操作系统), 其中Windows版的"AOA"电子书下载:
http://webster.cs.ucr.edu/AoA/Windows/index.html
有html,pdf,chm几个版本可以选择
"AOA"已经很牛了,但Randall Hyde最牛的书还是更高级修炼的"The Write Great Code"系列,到目前为止出了4卷本:
http://webster.cs.ucr.edu/WriteGreatCode/index.html
学完AOA再学 Write Great Code,感到他实在太牛了,强人啊
牛人Randall Hyde的网站:
http://webster.cs.ucr.edu
以上的下载和书讯都是他这个站的,HLA也在这里下载,牛人啊!
Top
5 楼gemhop(真美好)回复于 2006-08-03 18:57:25 得分 0
asmzyd(HAA55) ( ) 信誉:99 2006-8-2 20:14:44 得分: 0
靠,我那一百多条指令白记了........郁闷。
===========================================
没白费, HLA里仍然可以用
详细的,看AOA这本牛书吧
而且HLA写的代码,结构更清晰,可读性更好Top
6 楼DelphiGuy()回复于 2006-08-03 21:14:45 得分 0
真正的汇编不是那样的。
真正的汇编是栈框架都需要自己写。
按您这种逻辑,那我可以说支持强大BASM的Delphi才是HLA。:)
Top
7 楼icbm(雪狼)回复于 2006-08-08 12:43:42 得分 0
我也觉得很奇怪,要程序的开发效率,用c就可以了。要提高运行效率,用汇编。
hla的目的是为了提高汇编的开发效率,设计出一套框架和库。论开发效率,不如c;论运行效率,略逊于纯汇编(框架总有规范和要求,避免不了一些冗余的东西)。
个人拙见,请批评指正。Top
8 楼wycg49(一直努力)回复于 2006-08-08 21:04:59 得分 0
lz的语气好像那些到我家推销保险的 :)Top
9 楼DelphiGuy()回复于 2006-08-09 08:50:00 得分 0
是啊。
楼主,卖保险可比卖这HLA有前途啊。:)
Top
10 楼RockyCoder(石头码客)回复于 2006-08-11 15:55:09 得分 0
楼主买书的!哈哈Top
11 楼intraweb(★人贱人爱★)回复于 2006-10-21 20:58:29 得分 0
不错,谢谢了。Top
12 楼intraweb(★人贱人爱★)回复于 2006-10-21 20:59:03 得分 0
如果再介绍一下HLA与RadAsm的结合使用就更好了。Top



