{"id":29101951,"url":"https://github.com/tyilo/ijvm-disasm","last_synced_at":"2025-10-07T14:52:03.185Z","repository":{"id":144985372,"uuid":"26761560","full_name":"tyilo/ijvm-disasm","owner":"tyilo","description":"Tool for disassembling IJVM bytecode files","archived":false,"fork":false,"pushed_at":"2014-11-20T11:41:15.000Z","size":148,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-28T21:09:04.748Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tyilo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-11-17T14:58:11.000Z","updated_at":"2014-11-20T11:41:15.000Z","dependencies_parsed_at":"2023-03-23T01:16:26.650Z","dependency_job_id":null,"html_url":"https://github.com/tyilo/ijvm-disasm","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tyilo/ijvm-disasm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyilo%2Fijvm-disasm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyilo%2Fijvm-disasm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyilo%2Fijvm-disasm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyilo%2Fijvm-disasm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tyilo","download_url":"https://codeload.github.com/tyilo/ijvm-disasm/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyilo%2Fijvm-disasm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278794400,"owners_count":26046968,"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","status":"online","status_checked_at":"2025-10-07T02:00:06.786Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2025-06-28T21:08:57.028Z","updated_at":"2025-10-07T14:52:03.169Z","avatar_url":"https://github.com/tyilo.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"ijvm-disasm\n===========\n\nTool for disassembling IJVM bytecode files\n\nUsage\n-----\n\n```\nUsage: ijvm-disasm bc-file [bc-file2 ...]\n```\n\nExample\n-------\n\nSource code `fib.j`:\n\n```\n.method fib\n.args 2\n.define n = 1\n.define OBJREF = 44\n\n\tiload n\n\tbipush 2\n\tisub\n\tiflt ret1\n\n\tbipush OBJREF\n\tiload n\n\tbipush 1\n\tisub\n\tinvokevirtual fib\n\n\tbipush OBJREF\n\tiload n\n\tbipush 2\n\tisub\n\tinvokevirtual fib\n\n\tiadd\n\n\tireturn\n\nret1:\n\tbipush 1\n\n\tireturn\n\n.method main\n.args 2\n.define n = 1\n.define OBJREF = 44\n\n\tbipush OBJREF\n\tiload n\n\n\tinvokevirtual fib\n\n\tireturn\n```\n\nAssembled bytecode `fib.bc` (`ijvm-asm fib.j fib.bc`):\n\n```\nmain index: 1\nmethod area: 49 bytes\n00 02 00 00 15 01 10 02 64 9b 00 19 10 2c 15 01\n10 01 64 b6 00 00 10 2c 15 01 10 02 64 b6 00 00\n60 ac 10 01 ac 00 02 00 00 10 2c 15 01 b6 00 00\nac\nconstant pool: 2 words\n00000000\n00000025\n```\n\n`ijvm-disasm` output (`ijvm-disasm fib.bc`):\n\n```\n; ====================\n; Method area:\n; 0x0 - const_0\n; args: 2, locals: 0\n04:  15 01     iload 1\n06:  10 02     bipush 2\n08:  64        isub\n09:  9b 00 19  iflt 0x19       ; address: 0x22\n0c:  10 2c     bipush 44\n0e:  15 01     iload 1\n10:  10 01     bipush 1\n12:  64        isub\n13:  b6 00 00  invokevirtual 0 ; method location: 0x0\n16:  10 2c     bipush 44\n18:  15 01     iload 1\n1a:  10 02     bipush 2\n1c:  64        isub\n1d:  b6 00 00  invokevirtual 0 ; method location: 0x0\n20:  60        iadd\n21:  ac        ireturn\n\n; Label: loc_0x22\n22:  10 01     bipush 1\n24:  ac        ireturn\n\n; 0x25 - main (const_1)\n; args: 2, locals: 0\n29:  10 2c     bipush 44\n2b:  15 01     iload 1\n2d:  b6 00 00  invokevirtual 0 ; method location: 0x0\n30:  ac        ireturn\n\n; ====================\n; Constant area:\n0: 00000000\n1: 00000025\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftyilo%2Fijvm-disasm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftyilo%2Fijvm-disasm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftyilo%2Fijvm-disasm/lists"}