Skip to main content
Back to USENIX
  • Conferences
  • Students
Sign in

USENIX Conference Policies

  • Event Code of Conduct
  • Conference Network Policy
  • Statement on Environmental Responsibility Policy

The New Jersey Machine-Code Toolkit

Norman Ramsey, Bell Communications Research; Mary F. Fernandez, Princeton University

The New Jersey Machine-Code Toolkit helps programmers write applications that process machine code. Applications that use the toolkit are written at an assembly-language level of abstraction, but they recognize and emit binary. Guided by a short instruction-set specification, the toolkit generates all the bit-manipulating code.

The toolkit's specification language uses four concepts: fields and tokens describe parts of instructions, patterns describe binary encodings of instructions or groups of instructions, and constructors map between the assembly-language and binary levels. These concepts are suitable for describing both CISC and RISC machines; we have written specifications for the MIPS R3000, SPARC, and Intel 486 instruction sets.

We have used the toolkit to help write two applications: a debugger and a linker. The toolkit generates efficient code; for example, the linker emits binary up to 15% faster than it emits assembly language, making it 1.7-2 times faster to produce an a.out directly than by using the assembler.

Norman Ramsey, Bell Communications Research

Mary F. Fernandez, Princeton University

BibTeX
@inproceedings {260475,
author = {Norman Ramsey and Mary F. Fernandez},
title = {The New Jersey {Machine-Code} Toolkit},
booktitle = {USENIX 1995 Technical Conference (USENIX 1995 Technical Conference)},
year = {1995},
address = {New Orleans, LA},
url = {https://www.usenix.org/conference/usenix-1995-technical-conference/new-jersey-machine-code-toolkit},
publisher = {USENIX Association},
month = jan
}
Download

Links

Paper: 
http://usenix.org/publications/library/proceedings/neworl/full_papers/ramsey.ps
  • Log in or register to post comments

© USENIX
EIN 13-3055038

  • Privacy Policy
  • Contact Us