Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!linus!philabs!cmcl2!harvard!caip!lll-crg!jennings From: jennings@lll-crg.ARpA (Richard Jennings) Newsgroups: net.arch Subject: Re: programmer friendly assembler. (Transputer) Message-ID: <1469@lll-crg.ARpA> Date: Sun, 18-May-86 23:24:42 EDT Article-I.D.: lll-crg.1469 Posted: Sun May 18 23:24:42 1986 Date-Received: Tue, 20-May-86 06:54:51 EDT References: <261@atari.UUcp> <424@ccird1.UUCP> Reply-To: jennings@lll-crg.UUCP (Richard jennings) Organization: Lawrence Livermore Labs, CRG Group Lines: 45 Keywords: Transputer, Assembly Summary: Transputer Assembly code CORRECTED >>Here's a perverse thought: Has anyone done any research on >>architechures to help people writing /assembly language? >Actually, a number of attempts at this have been made. >The latest improvement is the Transputer. Seems that they don't use >"Assembler memnonics", but instead use primitive equations. > >For example instead of: > >move A,B >add (R1),(R4) > >They use the more intuitive > >A=B >(R4)=(R4)+(R1); > >Or something like it. Not really. According to the 10 January 86 Inmos Compiler Writer's Guide for the Transputer what you do to add two numbers is to push the numbers onto the 3-register hardware stack and hit add. Anybody who remembers the Rockwell CMOS/SOS Forth machine would *love* the transputer. Occam (in my view) is a red herring. There are some really slick features which the Occam environment 'hides' from the user. Assuming that A and B are local variables, then code to add A to B and store the result in B is ldl A; x7f ldl B; x7e add; xf5 stl B; xde my macro hex where A is stored f locations from the 'workspace pointer', B is stored e locations from the 'workspace pointer'. If this interests you, bug your local Inmos rep for a Compiler Writer's Guide. r