Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!news.glorb.com!news-out.readnews.com!news-xxxfer.readnews.com!news.misty.com!news.iecc.com!.POSTED!nerds-end From: Walter Banks Newsgroups: comp.compilers Subject: Re: Best tools for writing an assembler? Date: Thu, 27 Feb 2014 14:14:49 -0500 Organization: Aioe.org NNTP Server Lines: 33 Sender: news@iecc.com Approved: comp.compilers@iecc.com Message-ID: <14-02-042@comp.compilers> References: <14-02-018@comp.compilers> <14-02-025@comp.compilers> <14-02-027@comp.compilers> <14-02-033@comp.compilers> <14-02-038@comp.compilers> NNTP-Posting-Host: news.iecc.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Trace: miucha.iecc.com 1393546159 68673 64.57.183.58 (28 Feb 2014 00:09:19 GMT) X-Complaints-To: abuse@iecc.com NNTP-Posting-Date: Fri, 28 Feb 2014 00:09:19 +0000 (UTC) Keywords: assembler, tools, comment Posted-Date: 27 Feb 2014 19:09:19 EST X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com Xref: csiph.com comp.compilers:1121 Hannah wrote: > Hi! > > glen herrmannsfeldt wrote: > > Actually, our moderator wrote: > > >[Variable length instructions aren't that hard. You start by assuming > >everything will be the long form, then iterate over the code a few > >times shrinking what you can. That isn't always perfectly optimal > >(which is known to be NP complete), but it's pretty close. -John] > > Can't one also go the other way round: Start in the short(est) form and > lengthen as long as needed? > > Hannah. > [Shrinking long versions has the advantage that the code is always valid, > even if you miss a few. -John] One processor that we did a few years ago had three branch types 4 bit signed offset, jump within 256 byte page and unlimited jump. (National COP8) Coded as 1,2,3 byte instructions. The page jump caused all kinds of havoc as the code moved around as the branches were being optimized. It was the first processor I saw that that starting long and shrinking the code wouldn't work cleanly. Walter Banks [The PDP-8 had short references to the current page or page 0, and long indirect references. Back in that era, we juggled code into pages by hand. -John]