{"id":16932155,"url":"https://github.com/pyvesb/javassembly","last_synced_at":"2025-06-23T01:35:08.777Z","repository":{"id":65547864,"uuid":"91018841","full_name":"PyvesB/javassembly","owner":"PyvesB","description":":floppy_disk: Calling Assembly from Java: simple example using the JNI and NASM.","archived":false,"fork":false,"pushed_at":"2019-09-14T18:22:10.000Z","size":26,"stargazers_count":35,"open_issues_count":0,"forks_count":10,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-04T06:41:29.847Z","etag":null,"topics":["assembler","assembly","java","jni","nasm","x86-64","yasm"],"latest_commit_sha":null,"homepage":"","language":"Assembly","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PyvesB.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-05-11T20:05:09.000Z","updated_at":"2024-09-09T19:23:34.000Z","dependencies_parsed_at":"2023-01-28T17:25:10.595Z","dependency_job_id":null,"html_url":"https://github.com/PyvesB/javassembly","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/PyvesB/javassembly","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PyvesB%2Fjavassembly","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PyvesB%2Fjavassembly/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PyvesB%2Fjavassembly/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PyvesB%2Fjavassembly/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PyvesB","download_url":"https://codeload.github.com/PyvesB/javassembly/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PyvesB%2Fjavassembly/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261396043,"owners_count":23152439,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["assembler","assembly","java","jni","nasm","x86-64","yasm"],"created_at":"2024-10-13T20:45:43.148Z","updated_at":"2025-06-23T01:35:03.756Z","avatar_url":"https://github.com/PyvesB.png","language":"Assembly","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JavAssembly\n\u003ca href=\"https://github.com/PyvesB/JavAssembly/blob/master/LICENSE\"\u003e\n\u003cimg src =\"https://img.shields.io/github/license/PyvesB/JavAssembly.svg\" /\u003e\n\u003c/a\u003e\n\u003ca href=\"https://github.com/PyvesB/JavAssembly/issues\"\u003e\n\u003cimg src =\"https://img.shields.io/github/issues/PyvesB/JavAssembly.svg\" /\u003e\n\u003c/a\u003e\n\u003ca href=\"https://github.com/PyvesB/JavAssembly/stargazers\"\u003e\n\u003cimg src =\"https://img.shields.io/github/stars/PyvesB/JavAssembly.svg\" /\u003e\n\u003c/a\u003e\n\n**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.**\n\n# Getting started\n\n#### :heavy_check_mark: Requirements\n\nTo compile and run this project, you will need:\n- the JDK\n- an assembler such as NASM or Yasm\n- a compiler such as GCC, Clang or MinGW-w64\n\nThe example and build scripts can easily be modified to accommodate other assembler or compiler requirements.\n\n#### :cd: Running the code\n\nSimply use the following commands:\n```\ngit clone https://github.com/PyvesB/javassembly.git\ncd JavAssembly\n#Linux or macOS\n./build nasm\n#Windows\nbuild nasm\njava JNIArraySum\n```\n\n#### :earth_americas: Useful links\n\nThe following pages may be of interest:\n- Related [DZone article](https://dzone.com/articles/pushing-the-jni-boundaries-java-meets-assembly)\n- Related [StackOverflow answer](https://stackoverflow.com/questions/11632078/code-injecting-assembly-inlining-in-java/43926410#43926410)\n- [Java JNI Functions](http://docs.oracle.com/javase/8/docs/technotes/guides/jni/spec/functions.html)\n- 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)\n\n# Contributing\n\n#### `$ code`\n\nWant 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!\n\n#### :speech_balloon: Support\n\nThought of a cool idea? Found a problem or need some help? Simply open an [**issue**](https://github.com/PyvesB/JavAssembly/issues)!\n\n#### :star: Thanks\n\nFind the project useful, fun or interesting? **Star** the repository by clicking on the icon on the top right of this page!\n\n# License \n\nMIT License\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpyvesb%2Fjavassembly","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpyvesb%2Fjavassembly","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpyvesb%2Fjavassembly/lists"}