文档章节

在ubuntu系统中配置《汇编语言的编程艺术》开发环境

wangxuwei
 wangxuwei
发布于 2017/04/23 16:50
字数 313
阅读 57
收藏 0

《汇编语言编程艺术》(The Art of Assembly Language)
使用了一种高级汇编语言HLA ( High Level Assembly ),只能运行在32位linux平台。

一、打开32位支持

  1. sudo dpkg --add-architecture i386
  2. sudo apt -get update
  3. sudo apt-get dist-upgrade

二、下载HLA的linux程序

http://www.plantation-productions.com/Webster/HighLevelAsm/HLAv2.16/linux.hla.tar.gz

解压后程序在当前目录下的usr/hla

sudo cp -Rf usr/hla /opt/.

rm -rf usr

三、配置环境

~/.bashrc里追加

export hlalib=/opt/hla/hlalib
export hlainc=/opt/hla/include
export PATH=$PATH:/opt/hla

并使之生效

.  ~/.bashrc

四、测试

 cat hw.hla 
program HelloWorld;
#include( "stdlib.hhf" )
begin HelloWorld;
stdout.put( "Hello, World of Assembly Language", nl );
end HelloWorld;

汇编:

$ hla -lmelf_i386 hw.hla

-lmelf_i386是为了吧-m elf_i386参数传递给ld,否则会出现ld: i386 架构于输入文件 hw.o 与 i386:x86-64 输出不兼容错误。

或者分两部:

汇编(只产生目标代码):hlaparse -LINUX hw.hla

链接:ld -m elf_i386  -o hw hw.o /opt/hla/hlalib/hlalib.a
运行:

$ ./hw 
Hello, World of Assembly Language

为了方便也可在.bashrc中增加别名alias hla='hla -lmelf_i386'
这样hla hw.hla就不会出错了

先翻译成gas格式再汇编和链接:
hlaparse -LINUX -sg  hw.hla
会生成hw.asm

$ as --32 -o hw.o hw.asm
$ ld -m elf_i386  -o hw hw.o /opt/hla/hlalib/hlalib.a
$ ./hw 
Hello, World of Assembly Language

 

© 著作权归作者所有

wangxuwei
粉丝 25
博文 335
码字总数 117394
作品 0
杭州
其他
私信 提问
Win32汇编开发环境介绍和RadAsm简明教程

Win32汇编开发环境介绍和RadAsm简明教程 现在很多朋友都在学习汇编语言,一方面汇编语言是大学计算机课程的必修课,另一方面则是为了从其它语言转到汇编语言来,无论什么原因,我认为学习汇编...

nothingfinal
2009/08/01
0
0
Fresh IDE 2.2.0 发布,汇编集成开发环境

Fresh IDE 2.2.0 发布,此版本是个大版本更新,基于大量的配置文件处理和系统库的改进,此版本的配置处理变得更加方便快捷。此版本主要的改进在于 FreshLib 库,使得多线程程序代码速度快十倍...

oschina
2014/05/03
1K
2
手把手教你跑 Larave 框架实战笔记系列之一

         [宗旨]严格遵循现代编程组件化Web开发原理,通过phpRE+Composer + PhpStorm+Laravel快捷安装配置集成强大现代优雅开发平台,实现一站式Web开发。 [前 言]据调查显示,目...

人可工作室
2018/06/26
0
0
Fresh IDE 2.1.9 发布,汇编集成开发环境

Fresh IDE 2.1.9 发布,此版本主要的新特性都集中在 context 帮助系统: It now, besides .hlp and .chm files, supports .html in several flavors and .md (markdown formatted) text fil......

oschina
2014/04/17
881
1
逆向工厂(一):从hello world开始

前言 从本篇起,逆向工厂带大家从程序起源讲起,领略计算机程序逆向技术,了解程序的运行机制,逆向通用技术手段和软件保护技术,更加深入地去探索逆向的魅力。 一、程序如何诞生? 1951年4...

Oscarfff
2016/09/18
50
0

没有更多内容

加载失败,请刷新页面

加载更多

利用mybatis generator生成实体类、Mapper接口以及对应的XML文件

项目中通常会遇到数据的持久化,如果是采用mybatis的orm,就会涉及到生成xml的问题,刚好mybatis官网提供了这么个插件MyBatis Generator,效果简直是棒呆。 1. 首先需要在build.gradle文件中...

啊哈关关
今天
2
0
SpringSocial相关的知识点

使用SprigSocial开发第三方登录 核心类 ServiceProvider(AbstractOauth2ServiceProvider):主要负责实现server提供商(例如QQ,微信等共有的东西),默认实现类是AbstractOauth2ServiceProvider...

chendom
今天
1
0
Java并发之AQS详解

一、概述   谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)!   类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源...

群星纪元
昨天
2
0
Fabric-sdk-java最新教程

Fabric Java SDK是Fabric区块链官方提供的用于Java应用开发的SDK,全称为Fabric-sdk-java,网上可用资料不多,本文列出了精心整理的针对Fabric Java SDK的最新精选教程。 如果希望快速掌握F...

汇智网教程
昨天
2
0
react 子组件监听props 变化

componentWillReceiveProps //已经被废弃 getDerivedStateFromProps// 推荐使用//如果条件不存在必须要返回null static getDerivedStateFromProps(props, current_stat...

一箭落旄头
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部