An open API service indexing awesome lists of open source software.

https://github.com/pyvesb/javassembly

:floppy_disk: Calling Assembly from Java: simple example using the JNI and NASM.
https://github.com/pyvesb/javassembly

assembler assembly java jni nasm x86-64 yasm

Last synced: 7 months ago
JSON representation

:floppy_disk: Calling Assembly from Java: simple example using the JNI and NASM.

Awesome Lists containing this project

README

          

# JavAssembly








**A simple example showing how assembly language can be called from Java using the Java Native Interface (JNI). The native function sums the elements of an array of integers and returns the result as a long.**

# Getting started

#### :heavy_check_mark: Requirements

To compile and run this project, you will need:
- the JDK
- an assembler such as NASM or Yasm
- a compiler such as GCC, Clang or MinGW-w64

The example and build scripts can easily be modified to accommodate other assembler or compiler requirements.

#### :cd: Running the code

Simply use the following commands:
```
git clone https://github.com/PyvesB/javassembly.git
cd JavAssembly
#Linux or macOS
./build nasm
#Windows
build nasm
java JNIArraySum
```

#### :earth_americas: Useful links

The following pages may be of interest:
- Related [DZone article](https://dzone.com/articles/pushing-the-jni-boundaries-java-meets-assembly)
- Related [StackOverflow answer](https://stackoverflow.com/questions/11632078/code-injecting-assembly-inlining-in-java/43926410#43926410)
- [Java JNI Functions](http://docs.oracle.com/javase/8/docs/technotes/guides/jni/spec/functions.html)
- Assembler manuals: [NASM](http://www.nasm.us/xdoc/2.13.01/html/nasmdoc0.html), [Yasm](http://www.tortall.net/projects/yasm/manual/html/index.html)

# Contributing

#### `$ code`

Want to make JavAssembly better, faster, stronger? Contributions are more than welcome, open a **pull request** and share your code! Simply **fork** the repository by clicking on the icon on the top right of this page and you're ready to go!

#### :speech_balloon: Support

Thought of a cool idea? Found a problem or need some help? Simply open an [**issue**](https://github.com/PyvesB/JavAssembly/issues)!

#### :star: Thanks

Find the project useful, fun or interesting? **Star** the repository by clicking on the icon on the top right of this page!

# License

MIT License