Linux SoftwareProgrammingDisassemblersDSP5600x disassembly library 1.1

DSP5600x disassembly library 1.1


lib5600x is a library implementing Motorola DSP5600x disassembler
Developer:   Miloslaw Smyk
      more software by author →
Price:  0.00
License:   BSD License
File size:   0K
Language:   
OS:   
Rating:   0 /5 (0 votes)
Your vote:  
enlarge screenshot


lib5600x is a library implementing Motorola DSP5600x disassembler. It's an ANSI C link library that should be useful for people writing debuggers, memory monitors etc for DSP5600x chips.

Usage

1. First you call two initialization functions in the library. This step is mandatory:

make_masks();
make_masks2();

You pass nothing and check for no results -- these functions are guaranteed to succeed.

2. Now you have to allocate memory for a structure that will be used for passing data to/from the library. You may do that on the stack

struct disasm_data dis, *d = &dis;

Yes, the pointer will be useful, too. The disasm_data structure is defined in 5600x_disasm.h file. Let's take a closer look:


#define LINE_SIZE 256

struct disasm_data
{
unsigned char *memory;
char line_buf[LINE_SIZE];
char *line_ptr;
char words;
};

First member -- "memory" -- should point to the opcode you want disassembled. IMPORTANT! The library expects it to be a 24-bit word, so if your assembler creates 32-bit words, you'll have to make a simple conversion. Take a look at test.c to see how it is done. What's more, the library may wish to evaluate two words at a time, so you have to account for that -- this is also demonstrated in the example source.

3. After properly setting up disasm_data struct (i.e. "memory" pointer), you call following function:

int disassemble_opcode(struct disasm_data *);

This function takes pointer to the struct you've just prepared as an argument. When it returns, disasm_data struct's "line_buf" member contains the disassembled opcode as a string of ASCII characters. "line_ptr" should be of no interest to you (it is merely a internal variable) and "words" holds the number of 24-bit words you should advance your memory pointer by. This variable is also available as a return value of above function. Again, I
shall refer you to the example source.

4. Repeat step 3 until you run out of code to disassemble.

Testing

First, check out the makefile and make sure it contains proper flags and defines for your architecture. Big endian users should add -DBIGENDIAN to CFLAGS (I'd appreciate if someone created Autoconf script to avoid such tricks). Following that, type

make
./test example_dsp_binary

and compare the output (visually) with example.a56 which is a source code I used to create example_dsp_binary and which contains all instructions and addressing modes described in DSP56000/DSP56001 Digital Signal Processor User's Manual. You can also 'diff' your output and supplied example.out file to check if there are any differences (there should be none).
tags disasm data  the library  struct disasm  memory pointer  data struct  example dsp  example source  binary and  dsp binary  bit words  line size  you have  line buf  

Download DSP5600x disassembly library 1.1


 http://prdownloads.sourceforge.net/lib5600x/lib5600x-1.1.tar.gz?use_mirror=optusnet
 http://prdownloads.sourceforge.net/lib5600x/lib5600x-1.1.tar.gz?use_mirror=voxel


Authors software

DSP5600x disassembly library 1.1 (by Miloslaw Smyk)
lib5600x is a library implementing Motorola DSP5600x disassembler


Similar software

DSP5600x disassembly library 1.1 (by Miloslaw Smyk)
lib5600x is a library implementing Motorola DSP5600x disassembler

cid-compiler 0.1 (by Markus W Weissmann)
cid-compiler is a language tool to easily create C code with object oriented features

YASTR 1.0 (by Jesse Meyer)
YASTR is a simple string library that mainly consists of functionality that I require in my programs.

This entire library should b

genproto 0.4.1 (by Freek)
genproto generates prototypes from C/C++ code

C::DynaLib::Struct 0.55 (by John Tobey)
C::DynaLib::Struct is a tool for handling the C `struct' data type.

SYNOPSIS

use C::DynaLib::Struct;

Define C::DynaLib::

Perl x86 Disassembler 0.16 (by mammon_)
The libdisasm library provides basic disassembly of Intel x86 instructions from a binary stream

libproclist 1.0.2 (by V13)
libproclist is a very simple and easy to use C library that returns the process listing using ps.

It is very portable and is known

Template::Tutorial 2.15 (by Andy Wardley)
Template::Tutorial are template toolkit tutorials.

This section includes tutorials on using the Template Toolkit

C::Include 1.40 (by Albert N. MICHEEV)

uthash 1.2 (by Troy D. Hanson)
uthash is a hash for C structures, allowing any C structure having a unique key field to be hashed.

Structures can be deleted, add


Other software in this category

Linice 2.6 (by Goran Devic)
Linice is a source-level kernel debugger for x86 systems with the look and feel of SoftIce for MS Windows.

It is designed for peop

The bastard disassembler 0.17 (by mammon_)
The bastard disassembler is a disassembler written for x86 ELF targets on Linux

The Examiner 0.5 (by Macabre)
The Examiner is an application that utilizes the objdump command to disassemble and comment foreign executable binaries

K Executable Viewer 0.1 (by Russell Miller)
Kbview - also known as the K Executable viewer - is a program that is designed to allow you to browse most executable formats

PyReverse 0.5.1 (by ornicar)
PyReverse is a set of tools for reverse engineering Python code

    search


Featured Software

jEdit 4.3 pre8
jEdit is an Open Source text editor written in Java

Opera 9.02
Surf the Internet in a safer, faster, and easier way with Opera browser

GNU Aspell 0.60.4
GNU Aspell is a Free and Open Source spell checker designed to eventually replace Ispell


Subscribe in Rojo
Google Reader
Add to My Yahoo!

Add to My AOL
Subscribe with Bloglines
Subscribe in NewsGator Online
Add 'nixbit linux software' to Newsburst from CNET News.com
del.icio.us nixbit linux software


Top tags