[HN Gopher] Asmrepl: REPL for x86 Assembly Language ___________________________________________________________________ Asmrepl: REPL for x86 Assembly Language Author : tekkertje Score : 74 points Date : 2021-11-29 20:43 UTC (2 hours ago) (HTM) web link (github.com) (TXT) w3m dump (github.com) | jonny_eh wrote: | Is this emulating x86? Can I run it on an M1? | woodruffw wrote: | It's not emulating x86: it looks like it's assembling | instructions on the fly and executing them in a mmap'd region. | In other words, it's a very simple JIT. | | But you probably _can_ run it on an M1 anyways, since Apple 's | Rosetta will do the dynamic binary translation for you under | the hood. YMMV. | a-dub wrote: | would it? rosetta is a jit translator isn't it? how would it | know to translate the instructions that are being generated | on the fly interactively? unless there's hardware support in | the m1 for translation or some other interrupt that gets | triggered to do translation on the fly... | nielsbot wrote: | Not snark, but a serious question: What would one use this for? | sebow wrote: | Learning assembly can be a pain, especially without something | like gdb (with layout regs &layout asm). This is much simpler | and doesn't require you to type like 4-5 extra commands(start | gdb, put breakpoint, set layouts, step through the code),thus | avoiding the pain that gdb can be for very-simple asm programs. | unbanned wrote: | Education | woodruffw wrote: | I do a lot of program analysis work, and it's occasionally | useful to see the pre- and post-machine states of arbitrary | instructions. I have my own (more? less?) hacky version of this | program that I use for that purpose; I know other people use | GEF and similar GDB extensions for similar purposes. | tenderlove wrote: | I wrote it because I can never remember what the `test` | instruction does to the zero flag. Every time I use the | instruction I have to look up the docs. Looking up docs is | fine, but running code in a REPL helps me remember things | better. | qsort wrote: | For visually exploring the results of applying instructions. | Similar to how you would use jshell. | 6bfdc1954b8e wrote: | Shellcode testing I suppose. | pavlov wrote: | Somebody should wrap this into a VGA-As-A-Service platform so | that kids could learn programming the correct way: | mov ax, 13h int 10h | a-priori wrote: | The assembly you've listed there assumes it runs in real mode | and ring 0. You'd need to use virtualization of some kind to | execute that. | StillBored wrote: | With a BIOS, or CSM on UEFI. | [deleted] | zokier wrote: | Ducktaping assembler into DOSBox Debugger would be interesting | project, it provides almost whole UI otherwise by itself | https://zwomp.com/index.php/2020/05/01/understanding-the-dos... | dcveloper wrote: | I recently found some of my old Pascal mode 13h projects from | when I was a teenager. Is DOSBox the best way to run those | and Turbo Pascal? | [deleted] | westurner wrote: | This could be implemented with Jupyter notebooks as a Jupyter | kernel or maybe with just fancy use of explicitly returned | objects that support the (Ruby-like, implicit) IPython.display. | display() magic | | IRuby is the Jupyter kernel for Rubylang: | | iruby/display: | https://github.com/SciRuby/iruby/blob/master/lib/iruby/displ... | | iruby/formatter: | https://github.com/SciRuby/iruby/blob/master/lib/iruby/forma... | | More links to how Jupyter kernels and implicit display() and DAP: | Debug Adapter Protocol work: "Evcxr: A Rust REPL and Jupyter | Kernel" https://news.ycombinator.com/item?id=25923123 | webdoodle wrote: | I fondly remember writing my first game using assembly that I | hand typed from a magazine article on an Amiga. It didn't work | because of a reversed peek/poke. It took us all day to figure it | out, but we got it working! ___________________________________________________________________ (page generated 2021-11-29 23:00 UTC)