{"id":13739570,"url":"https://github.com/samth/disassemble","last_synced_at":"2026-01-06T07:03:34.802Z","repository":{"id":1284838,"uuid":"1224531","full_name":"samth/disassemble","owner":"samth","description":"Disassembler for Racket","archived":false,"fork":false,"pushed_at":"2023-04-27T01:45:19.000Z","size":137,"stargazers_count":78,"open_issues_count":0,"forks_count":14,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-17T18:01:22.063Z","etag":null,"topics":["disassembler","racket"],"latest_commit_sha":null,"homepage":"","language":"Scheme","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/samth.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-01-05T22:14:44.000Z","updated_at":"2024-11-28T16:28:26.000Z","dependencies_parsed_at":"2023-02-19T04:40:13.987Z","dependency_job_id":null,"html_url":"https://github.com/samth/disassemble","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samth%2Fdisassemble","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samth%2Fdisassemble/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samth%2Fdisassemble/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samth%2Fdisassemble/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/samth","download_url":"https://codeload.github.com/samth/disassemble/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245458729,"owners_count":20618697,"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":["disassembler","racket"],"created_at":"2024-08-03T04:00:35.346Z","updated_at":"2026-01-06T07:03:34.713Z","avatar_url":"https://github.com/samth.png","language":"Scheme","funding_links":[],"categories":["Racket","Compilers"],"sub_categories":[],"readme":"[![Build Status](https://api.travis-ci.org/samth/disassemble.svg)](https://travis-ci.org/samth/disassemble)\n\nA disassembler for JITed functions in Racket.\n\nTo install:\n\n    % raco pkg install disassemble\n\nTo use it, try something like this:\n\n```\n[samth@punge:~/sw/disassemble (master) plt] racket\nWelcome to Racket v6.0.1.10.\n\u003e (require disassemble)\n\u003e (define (f x) 1)\n\u003e (disassemble f)\n       0: 488943f8                       (mov (mem64+ rbx #x-8) rax)\n       4: 4883c3f8                       (add rbx #xfffffffffffffff8)\n       8: b803000000                     (mov eax #x3)\n       d: 4c8b75c8                       (mov r14 (mem64+ rbp #x-38))\n      11: 4883c428                       (add rsp #x28)\n      15: 415d                           (pop r13)\n      17: 415c                           (pop r12)\n      19: 5b                             (pop rbx)\n      1a: 5d                             (pop rbp)\n      1b: c3                             (ret)\n\u003e\n```\n\nIf you have `ndisasm` installed (and in your `PATH`) you can also try:\n\n```\n\u003e (disassemble f #:program 'nasm)\n00000000  488943F8          mov [rbx-0x8],rax\n00000004  4883C3F8          add rbx,byte -0x8\n00000008  B803000000        mov eax,0x3\n0000000D  4C8B75C8          mov r14,[rbp-0x38]\n00000011  4883C428          add rsp,byte +0x28\n00000015  415D              pop r13\n00000017  415C              pop r12\n00000019  5B                pop rbx\n0000001A  5D                pop rbp\n0000001B  C3                ret\n```\n\nThis works only on x86 or x86-64.\n\nAlso, the `dump` function writes the bytes of the machine code to a\nfile:\n\n```\n\u003e (dump const \"file.bin\")\n```\n\nPatches, uses, complaints, and suggestions are all welcome.\n\nThe disassembly code (when not using NASM) is taken from Göran\nWeinholt's [_Machine Code_ library](https://gitlab.com/weinholt/machine-code).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamth%2Fdisassemble","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsamth%2Fdisassemble","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamth%2Fdisassemble/lists"}