From: wthompso on
Hello,

Tanenbaum says in his Structured Computer Organization book that all
instructions can be reduced to:

1. An addition operation
2. Check to see if a number is zero
3. Copy data from one memory location to another

I was wondering if anyone can point me to a chart for instance, that
shows such a reduction (I'm guessing mostly with regard to number one
above). To further clarify, I guess, I can derive for instance, an xor
operation with only using additions, etc. Of course, a program with
such a primitive instruction set would be large (similar to coding in
binary I guess).

I'm actually doing research in program obfuscation/protection. Anyway,
I'm a high-level programmer who occasionally ventures to the low-level
in such cases.

Thanks,
--Willard

From: Scott A Crosby on
On 10 Feb 2005 11:22:16 -0800, wthompso(a)cs.fsu.edu writes:

> Hello,
>
> Tanenbaum says in his Structured Computer Organization book that all
> instructions can be reduced to:
>
> 1. An addition operation
> 2. Check to see if a number is zero
> 3. Copy data from one memory location to another
>
> I was wondering if anyone can point me to a chart for instance, that
> shows such a reduction (I'm guessing mostly with regard to number one
> above). To further clarify, I guess, I can derive for instance, an xor
> operation with only using additions, etc. Of course, a program with
> such a primitive instruction set would be large (similar to coding in
> binary I guess).

This may be of interest:

@article{121976,
author = {P. A. Laplante},
title = {A novel single instruction computer architecture},
journal = {SIGARCH Comput. Archit. News},
volume = {18},
number = {4},
year = {1990},
issn = {0163-5964},
pages = {22--26},
doi = {http://doi.acm.org/10.1145/121973.121976},
publisher = {ACM Press},
}

> I'm actually doing research in program obfuscation/protection. Anyway,
> I'm a high-level programmer who occasionally ventures to the low-level
> in such cases.

This may also be of interest:

@article{barak01impossibility,
author = "Boaz Barak and Oded Goldreich and Rusell Impagliazzo and Steven Rudich and Amit Sahai and Salil Vadhan and Ke Yang",
title = "On the (Im)possibility of Obfuscating Programs",
year = "2001",
}

Scott
From: Anthony J Bybell on
wthompso(a)cs.fsu.edu wrote in message news:<1108175839.973517.35720(a)z14g2000cwz.googlegroups.com>...

> Ultimately, we assume that for mobile code the remote host can do
> anything he wants with the code. The aim is to be able to reduce
> *effective* tampering to *blind* tampering thus giving mobile code such
> as mobile agents, greater survivability within an untrusted network.

Read the pdf on the top of the page listed in the URL. There are some
interesting observations there which save me a lot of typing as he's
thinking along the same track I am:

http://www.xenatera.com/bunnie/proj/anatak/xboxmod.html

....code signing (authentication) from a secure boot ROM all the way
out is probably the only "really" secure method out there as the
security is based on mathematical probability rather than obscurity.
Otherwise, given enough time, if your device is interesting enough its
hack will make the front page of Slashdot: there are a lot of clever
people with a lot of free time on their hands out there.

This goes without saying, but make sure that JTAG/I2C/etc is disabled
on your remote host. =)

-t
From: George Neuner on
On 10 Feb 2005 11:22:16 -0800, wthompso(a)cs.fsu.edu wrote:

>Hello,
>
>Tanenbaum says in his Structured Computer Organization book that all
>instructions can be reduced to:
>
>1. An addition operation
>2. Check to see if a number is zero
>3. Copy data from one memory location to another
>
>I was wondering if anyone can point me to a chart for instance, that
>shows such a reduction (I'm guessing mostly with regard to number one
>above). To further clarify, I guess, I can derive for instance, an xor
>operation with only using additions, etc. Of course, a program with
>such a primitive instruction set would be large (similar to coding in
>binary I guess).
>

Tanenbaum is probably correct ... I haven't given it enough thought.

If you're interested in reading about a real computer with a sand
simple instruction set, Lincoln Lab's TX-0 (tee-ex-zero) "tixo"
computer had only 4 instructions: store, add, conditional branch, and
a "trap" instruction that accessed system registers, performed I/O and
a few other useful things based on the operand. There's some stuff
about it online at:

http://www.bitsavers.org/pdf/mit/tx-0/
and
http://www.tixo.org/

I don't know of any ready references for the kind of code reduction
and/or simplification you're interested in. Your best bet might be
to find and look at some actual tixo code to see how real problems
were attacked with the limited instruction set.

There's not much "interesting" code at the above links, however,
there are some MIT lab memos at bitsavers.org which talk about
applications and code libraries being made available for the tixo. If
you are able to locate the actual code for some of the more
interesting ones (assembler, debugger, FP interpreter) I'm sure you
could learn a lot by studying it.

George
--
for email reply remove "/" from address
From: del cecchi on

"George Neuner" <gneuner2/@comcast.net> wrote in message
news:a8ov01pue9fn68k7o4bt8a01hoef25ffmg(a)4ax.com...
> On 10 Feb 2005 11:22:16 -0800, wthompso(a)cs.fsu.edu wrote:
>
> >Hello,
> >
> >Tanenbaum says in his Structured Computer Organization book that all
> >instructions can be reduced to:
> >
> >1. An addition operation
> >2. Check to see if a number is zero
> >3. Copy data from one memory location to another
> >
> >I was wondering if anyone can point me to a chart for instance, that
> >shows such a reduction (I'm guessing mostly with regard to number one
> >above). To further clarify, I guess, I can derive for instance, an
xor
> >operation with only using additions, etc. Of course, a program with
> >such a primitive instruction set would be large (similar to coding in
> >binary I guess).
> >
>
> Tanenbaum is probably correct ... I haven't given it enough thought.
>
> If you're interested in reading about a real computer with a sand
> simple instruction set, Lincoln Lab's TX-0 (tee-ex-zero) "tixo"
> computer had only 4 instructions: store, add, conditional branch, and
> a "trap" instruction that accessed system registers, performed I/O and
> a few other useful things based on the operand. There's some stuff
> about it online at:
>
> http://www.bitsavers.org/pdf/mit/tx-0/
> and
> http://www.tixo.org/
>
> I don't know of any ready references for the kind of code reduction
> and/or simplification you're interested in. Your best bet might be
> to find and look at some actual tixo code to see how real problems
> were attacked with the limited instruction set.
>
> There's not much "interesting" code at the above links, however,
> there are some MIT lab memos at bitsavers.org which talk about
> applications and code libraries being made available for the tixo. If
> you are able to locate the actual code for some of the more
> interesting ones (assembler, debugger, FP interpreter) I'm sure you
> could learn a lot by studying it.
>
> George
> --
> for email reply remove "/" from address

Or you can google comp.arch archives. Look for "single instruction
computer" or "minimal instruction set" and stuff like that. Couple
years back, as I recall. I didn't pay much attention.

del cecchi


 |  Next  |  Last
Pages: 1 2
Next: big-edian & little-endian