Download Chump - Chump Description, Chump Reviews
Contact
 


 

Download

 
Download Now (156K)
LGPL (GNU Lesser General Public License)
Downloads till now: 3
 
 

Quick search

 



 

Rate this software

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

No. Votes

0

 

Linux

Assembler Tools , Bug Tracking , Code Generators , Compilers , Debuggers , Disassemblers , Internationalization , Interpreters , Libraries , Localization, Perl Modules , Preprocessors , Quality Assurance and Testing , UI (User Interfaces) , Version Control , Widgets ,

Windows

Mac

Mobile

Drivers

Scripts - DHTML

Scripts - DHTML (new)

Web Developer Blog

Web Developer Blog (new)

Scripts and Applications

Ajax
ASP
ASP.NET
C and C++
CFML
CGI and Perl
Flash
Java
JavaScript
PHP
Python
XML

Chump

 

Details

Size: 156K
Last Update: 2008-05-15 22:22:56
Version: 0.0.10
OS Support: Linux
License/Program Type: LGPL (GNU Lesser General Public License)
Publisher: Charlie Brej
Price:$0.00
Description:

Chump 0.0.10 is assembler tools software developed by Charlie Brej.
Chump is a language I created to describe line assemblers and disassembles in one description.



It is used in KMD to describe different processors. The reason for using this reather than gnu binutils as is the fast implementation. Its basicly made for people who want to design instruction sets.

Requirements:
GLib - Provides many useful data types, macros, type conversions, string utilities and a lexical scanner.
GDK - A wrapper for low-level windowing functions.
GTK - An advanced widget set.
BFD - the Binary File Descriptor Library. (BFD comes with GCC)


What's New in This Release:
full expression parsing including hex/dec/oct/ascii/symbols
fix of recursive calls bug
strings
Long int allows assambling for architectures with greater int size than that running on.
ARM16 (Thumb) architecture added


Example code:

The system comes with a sample.chump. This has descriptions of ARM32, MIPS32 and STUMP16 architectures. I am working on 6809 as well.
It took me about 3 days to write the ARM one. About 1 day for the MIPS and 1 hour for STUMP.

Below are descriptions of a STUMP (little 16 bit RISC) written in chump.

(isa "STUMP16" ; STUMP is a simple 16bit processor (C) Andrew Bardsley
; Use this description to learn chump
; This is not a good tutorial but you can get the basics
; Firstly the basics:
; The following is the correct syntax to describe a translation
; (("Disasambled descrption")(Assambled description))
; disassamled description is simply a string or set of strings
; Assembled description is a set of bits I (always on),O (always off),
; X (dontcare but set as on),Z (dontcare but set as off)
; Be careful, I and O are LETTERS. The parser will complain if it doesnt understand.
; e.g. 1 : (("R3")(OII)) - matches 011 to "R3"
; and "R3" to 011
; e.g. 2 : (("BR")(OZX)) - matches 000, 001, 010 or 011 to "BR"
; and "BR" to 001
; e.g. 3 : (("PC")(III))
; (("R7")(III)) - matches 111, to "PC" as its first in the list
; and "PC" or "R7" to 111
; e.g. 4 : (define "set" (("S")(I)) defines a rule called "set"
; (("") (O)) ) this rule can now be used in all rules below
; (("ADD" set) (OI set)) we can now use the predefined rule in another rule
; remember to place the rule in both the binary and ascii sections
; e.g. 5 : (define "imm" (int 4 + 4)) "imm" is defined to be a 4bit hex number. When DISASSEMBLING 4 is added
; e.g. 6 : (define "imm" (relative 4)) "imm" is defined to be a 4bit relative number offset from the current position
; e.g. 7 : (("" ("imm" (int 4))) (imm)) the imm rule is defined in the rule. Its only valid in this rule
; and previous definition is ignored in this rule
; Take a look at the STUMP instruction set
; Instruction types
; 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
; 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
; --------------------------------
; Type 1 OP |0|S| DST |SRCA |SRCB |SHIFT
; Type 2 OP |1|S| DST |SRCA | IMMEDIATE
; Cond Br 1|1|1|1| COND | OFFSET



(define "reg" (("R0")(OOO)) (("R1")(OOI)) ; Firstly we 'define' a description of all the registers
(("R2")(OIO)) (("R3")(OII)) ; R0 - 000, R1 - 001 ... PC - 111, R7 - 111
(("R4")(IOO)) (("R5")(IOI)) ; 111 is overloaded, When disassambling it will choose the first
(("R6")(IIO)) (("PC")(III)) ; one ("PC") but when assembling either are acceptable
(("R7")(III)))
(define "dst" reg) ; DST is a register
(define "srca" reg) ; so are SrcA and SrcB
(define "srcb" reg)
(define "op" (("ADD")(OOO)) (("ADC")(OOI)) ; These are the 6 OP codes
(("SUB")(OIO)) (("SBC")(OII))
(("AND")(IOO)) (("OR") (IOI)))
(define "set" (("S")(I)) ; If set bit is set then add an S onto the opcode
(("") (O))) ; e.g. ADD -> ADDS

(define "shift" (("") (OO)) ; Shift types
((", ASR") (OI))
((", ROR") (IO))
((", RRC") (II)))

(define "cond" (("") (OOOO)) ; Branch conditions
(("AL") (OOOO))
(("NV") (OOOI))
(("HI") (OOIO))
(("LS") (OOII))
(("CC") (OIOO))
(("CS") (OIOI))
(("NE") (OIIO))
(("EQ") (OIII))
(("VC") (IOOO))
(("VS") (IOOI))
(("PL") (IOIO))
(("MI") (IOII))
(("GE") (IIOO))
(("LT") (IIOI))
(("GT") (IIIO))
(("LE") (IIII)))

(define "dir" (("LD")(O)) ; The difference between an ST and an LD is in the S bit
(("ST")(I)))


(("NOP") (OZZ Z O OOO ZZZ ZZZ ZZ)) ; These are the descriptions of the instructions
(("NOP") (IOZ Z O OOO ZZZ ZZZ ZZ)) ; These two NOP descriptions overlap other instructions

(("CMP" "tf10" srca ", " srcb shift ) ; e.g. CMP R3, R6, ASR
(OIO O I OOO srca srcb shift))

(("CMP" "tf10" srca ", " ("imm" (int 5)) ) ; e.g. CMP R4, 12
(OIO I I OOO srca imm)) ; notice the inline definition if "imm"

(("MOV" set "tf10" dst ", " ("imm" (int 5))) ; e.g. MOVS R3, 12
(OOOO set dst OOO imm))

(("MOV" set "tf10" dst ", " ( "src" ((reg)(OOO reg)) ; e.g. MOV R3, R5
((reg)(reg OOO))) shift) ; note inline definition can also be translations
(OOOO set dst src shift))


((op set "tf10" dst ", " srca ", " srcb shift) ; e.g. ADD R4, R7, R2
(op O set dst srca srcb shift))

((op set "tf10" dst ", " srca ", " ("imm" (int 5)) ) ; e.g. SUBS R6, R2, C
(op I set dst srca imm))

(("B" cond "tf10" ("offset" (relative 8 ))) ; e.g. BNE 100
(IIII cond offset))

((dir "tf10" dst ", [" srca ", " srcb shift "]") ; e.g. LD r4, [r3,r0]
(IIO O dir dst srca srcb shift))

((dir "tf10" dst ", [" srca ", " ("imm" (int 5)) "]") ; e.g. LD r4, [r3,12]
(IIO I dir dst srca imm))
)
Chump 0.0.10 supports different languages (including english). It works with Linux.

Downloading Chump 0.0.10 will take several seconds if you use fast ADSL connection.

Leave a comment




(optional)

What is 7-3?




0 comments


Add to

 Del.icio.us   Digg It   Furl   YahooMyWeb   Blinklist
 

Chump Version History

Product Date Added
Chump 0.0.10 2008-05-15 22:22:56


Related Software

cx_Oracle
From category: Libraries
cx_Oracle 4.2.1 is libraries software developed by Anthony Tuininga. cx_Oracle is a Python extension module that allows access to Oracle, and conforms to the Python database API specifications. cx_...
Dylan
From category: Compilers
Dylan 1.0 beta1 is compilers software developed by Gwydion Dylan Maintainers. Dylan is an advanced, object-oriented, dynamic language which supports the rapid development of programs. When neede...
Eclipse plugin for Qt
From category: Widgets
Eclipse plugin for Qt 1.0.1 is widgets software developed by Xadeck. Eclipse plugin for Qt manages the generation of Makefiles from .pro files and compilation with make. Eclipse plugin for Q...
Coefficient
From category: Bug-Tracking
Coefficient 0.9.5 is bug tracking software developed by Dylan Etkin. Coefficient is a scalable open source project based collaboration platform that can run in J2EE and web application containers.\...
ebXML::Message
From category: Libraries
ebXML::Message 0.03 is libraries software developed by ebXML::Message Team. ebXML::Message is a Perl module to encapsulate an ebMS message. SYNOPSIS use ebXML::Message; c...
DateTime::Format::Epoch::DotNet
From category: Libraries
DateTime::Format::Epoch::DotNet 0.10 is libraries software developed by Eugene van der Pijli. DateTime::Format::Epoch::DotNet is a Perl module that can convert DateTimes to/from .NET epoch seconds....
GLib2
From category: Libraries
GLib is a library containing many useful C routines for things such as trees, hashes, and lists....
DREAM Tool
From category: Quality-Assurance-and-Testing
DREAM Tool 0.6 Beta is quality assurance and testing software developed by DREAM Tool Team. DREAM Tool is a generic framework that aims at providing a common semantic domain which can express sever...
errhdl
From category: Libraries
errhdl 0.3 is libraries software developed by Jan Behrens. errhdl is a small C library that offers error handling methods similar to the exception handling in C++. In the event of errors, no...
Shed Skin
From category: Compilers
Shed Skin is an experimental Python-to-C++ compiler....
Dir::List
From category: Libraries
Dir::List 1.4 is libraries software developed by Oliver Falk. Dir::List is a Perl module, that provides you with various information about a specified directory. For example, it can obtain the user...
libft
From category: Libraries
libft is an open source version of the fischertechnik ROBO Interface Library for Unix like system....
Bio::NEXUS
From category: Libraries
Bio::NEXUS 0.66 is libraries software developed by Arlin Stoltzfus. Bio::NEXUS is a Perl module providing an object-oriented, Perl-based applications programming interface (API). NEXUS is a...
Dwarf Server Framework
From category: Assembler-Tools
Dwarf Server Framework 1.3.0 is assembler tools software developed by Gnome Ltd.. Dwarf Server Framework is a Java technology-based framework for developing network server applications. The...
Allegro 4.2.1
From category: Libraries
Allegro 4.2.1 is libraries software developed by Shawn Hargreaves. Allegro is a game programming library for C/C++ developers distributed freely, supporting the following platforms: DOS, Unix (Linu...
 

Top Downloads

 
1. Canon PIXMA iP1000 Printer Driver
2. Canon PIXMA iP1200 Printer Driver
3. Canon PIXMA iP1200 Printer Driver d
4. Realtek RTL8139C(L)+/RTL8139D(L)/RTL8100(L)/RTL8130/RTL8139B(L) Driver
5. Realtek ALC/ 262/ 265/ 268/ 660/ 861/ 880/ 882/ 883/ 885/ 888 Audio
6. Canon PIXMA iP1200 Printer Driver x64 d
7. Canon PIXMA iP1600 Printer Driver
8. Canon PIXMA MP210 MP Drivers
9. Canon PIXMA iP1300 Printer Driver a
10. Canon i-SENSYS LBP2900 Printer Driver R
11. Canon i560 Printer Driver
12. Realtek RTL8100B(L)/RTL8100C(L)/RTL8101L/RTL8139C(L) Driver XP
13. Genius Eye 110 Webcam Driver
14. Canon PIXMA iP1300 Printer Driver c
15. dmg2iso
16. iBlackjack
17. Canon LaserShot LBP-1210 Printer Driver
18. Lite-On Cd-Rw LTR-48327S firmware
19. LG GSA-2166D
20. Canon PIXMA MP140 MP Drivers xp64

DownloadTube Editor Reviews

 
1. CoverPro
CoverPro is \"The Original CD/DVD Cover Printing Utility.\" ...
2. MP3 Burner Plus
MP3 Burner Plus is a powerful tool that allows you to easily...
3. Tunatic b
If you love that song but don\'t know what it is, Tunatic ca...
4. MP3 Sorter
MP3 Sorter is a powerful and reliable tool, a fully-automati...
5. Audio Burner Plus
Audio Burner Plus is an easy to use, smart and reliable tool...
6. Intellexer Spellchecker SDK
Intellexer Spellchecker SDK will provide spell check capabil...
7. MostFun CAKE MANIA - Unlimited Play
Cake Mania is a highly-strategic arcade game, in which you h...
8. Wondershare Video Converter for Mobile Phone
Wondershare Video Converter for Mobile Phone is a profession...
9. 4you 1st DMA Finder
DMA Finder is a small program that will show you which DMA c...
10. Music Playlist Utility
Music Playlist Utility is an Internet-ready 32-bit music pla...

Software Reviews Full List



Recent Blog Posts

 
1. Streamripper for Winamp - 8
You may also easily control Streamripper for Winamp from its...
2. Streamripper for Winamp - 7
...
3. Streamripper for Winamp - 6
Skins are also supported....
4. Streamripper for Winamp - 5
Selecting the output filename pattern may also be easily don...
5. Streamripper for Winamp - 4
In the "File" tab you will find some more important options,...
6. Streamripper for Winamp - 3
The "Connection" area of the "Options" window is the place w...
7. Streamripper for Winamp - 2
Press the "Start" button and watch Streamripper for Winamp i...
8. Streamripper for Winamp - 1
Visited www.shoutcast.com, loaded a few streams into the Win...
9. FreeSnap
Another freeware tool that rocks is the little FreeSnap. Thi...
10. Streamripper for Winamp
Streamripper is an Open Source (GPL) application that allow...

Last 20 Scripts

 
1. NickJump
The user selects a page location from a drop-down menu on yo
2. SurgeMenu
SurgeMenu is a flexible, easily and highly customizable dyna
3. IndexU MODs Collection (Over 35+ MODs Available)
Largest collection of IndexU mods and addon for your IndexU
4. Pulldown Menu
This is a simple pulldown navigation menu script. You can se
5. Fast Track Sites Simply AJAX Forum System (SAFS)
The Fast Track Sites Simply AJAX Forum System(SAFS for short
6. Simple CSV Upload Script
This is a Simple CSV Upload script that makes use of the 'LO
7. EasyLinks
Easylinks is a Links4all script. You can use it to create li
8. server side countdown clock
Just like countdown-clock.js, this script allows you to plac
9. WebTextPHP - Best quality SMS scripts
10. Postfix Evaluator
This JavaScript evaluates a Postfix(Postorder) expression.
11. Webmatic Light
This applet can show some good light effect over any image l
12. autoReferrals
autoReferrals is a web-based link administration system. Bas
13. YouGuestIt
A guestbook is one of the best ways to make your visitors fe
14. Chilkat S/MIME Component
Easily add S/MIME capability to your programs. Create signe
15. Image gallery with iframes and sessions
Simple image gallery in iframes controlled by a session vari
16. PHP Import Gmail, Yahoo, Hotmail, AOL Addresses
17. phpAnyVote
This is a modified version of the "Name the Baby Computer" s
18. Hot Link Cloaker
19. COMobjects.NET Colorizer
COMobjects.NET Colorizer is a tool, which converts plain tex
20. Web Ad Wizard