Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

System checkpoint complete.


tech / sci.electronics.design / arm assembly examples

SubjectAuthor
* arm assembly examplesHul Tytus
+* Re: arm assembly examplesLasse Langwadt Christensen
|+- Re: arm assembly examplesHul Tytus
|`* Re: arm assembly examplesnone
| `* Re: arm assembly examplesDon Y
|  `* Re: arm assembly examplesnone
|   `* Re: arm assembly examplesDon Y
|    +* Re: arm assembly examplesDimiter_Popoff
|    |+* Re: arm assembly examplesDon Y
|    ||+* Re: arm assembly examplesDimiter_Popoff
|    |||`* Re: arm assembly examplesDon Y
|    ||| `* Re: arm assembly examplesDimiter_Popoff
|    |||  `* Re: arm assembly examplesDon Y
|    |||   `* Re: arm assembly examplesnone
|    |||    `* Re: arm assembly examplesDon Y
|    |||     `* Re: arm assembly examplesnone
|    |||      `- Re: arm assembly examplesDon Y
|    ||`* Re: arm assembly examplesnone
|    || `- Re: arm assembly examplesDon Y
|    |`* Re: arm assembly examplesSpehro Pefhany
|    | +* Re: arm assembly examplesDon Y
|    | |`* Re: arm assembly examplesSpehro Pefhany
|    | | `- Re: arm assembly examplesDon Y
|    | `* Re: arm assembly examplesHul Tytus
|    |  +- Re: arm assembly examplesSpehro Pefhany
|    |  `- Re: arm assembly examplesDon Y
|    `* Re: arm assembly examplesnone
|     `- Re: arm assembly examplesDon Y
`* Re: arm assembly examplesDon Y
 `* Re: arm assembly examplesHul Tytus
  `- Re: arm assembly examplesDon Y

Pages:12
arm assembly examples

<s7636j$k0i$1@reader1.panix.com>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=63000&group=sci.electronics.design#63000

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!paganini.bofh.team!goblin2!goblin1!goblin.stu.neva.ru!panix!not-for-mail
From: ht...@panix.com (Hul Tytus)
Newsgroups: sci.electronics.design
Subject: arm assembly examples
Date: Sat, 8 May 2021 13:20:19 +0000 (UTC)
Organization: PANIX Public Access Internet and UNIX, NYC
Lines: 8
Message-ID: <s7636j$k0i$1@reader1.panix.com>
NNTP-Posting-Host: panix3.panix.com
X-Trace: reader1.panix.com 1620480019 20498 166.84.1.3 (8 May 2021 13:20:19 GMT)
X-Complaints-To: abuse@panix.com
NNTP-Posting-Date: Sat, 8 May 2021 13:20:19 +0000 (UTC)
 by: Hul Tytus - Sat, 8 May 2021 13:20 UTC

Anyone know where on the internet files of programs, or portions
of such, written an Arm assembley can be found? I'm in need
of examples of arm assembly to serve as test code for a just
written assembler.

Hul

Re: arm assembly examples

<9c663ab9-64d6-48ae-a9d7-db8ad66d0d34n@googlegroups.com>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=63002&group=sci.electronics.design#63002

  copy link   Newsgroups: sci.electronics.design
X-Received: by 2002:a37:e113:: with SMTP id c19mr36682492qkm.329.1620869351567;
Wed, 12 May 2021 18:29:11 -0700 (PDT)
X-Received: by 2002:ae9:e40b:: with SMTP id q11mr8599215qkc.101.1620869351389;
Wed, 12 May 2021 18:29:11 -0700 (PDT)
Path: i2pn2.org!i2pn.org!paganini.bofh.team!usenet.pasdenom.info!usenet-fr.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: sci.electronics.design
Date: Wed, 12 May 2021 18:29:11 -0700 (PDT)
In-Reply-To: <s7636j$k0i$1@reader1.panix.com>
Injection-Info: google-groups.googlegroups.com; posting-host=85.83.70.155; posting-account=mW5JKwkAAAAMyuWOVeLp8yffyAkVx0g7
NNTP-Posting-Host: 85.83.70.155
References: <s7636j$k0i$1@reader1.panix.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <9c663ab9-64d6-48ae-a9d7-db8ad66d0d34n@googlegroups.com>
Subject: Re: arm assembly examples
From: langw...@fonz.dk (Lasse Langwadt Christensen)
Injection-Date: Thu, 13 May 2021 01:29:11 +0000
Content-Type: text/plain; charset="UTF-8"
 by: Lasse Langwadt Chris - Thu, 13 May 2021 01:29 UTC

torsdag den 13. maj 2021 kl. 03.16.06 UTC+2 skrev Hul Tytus:
> Anyone know where on the internet files of programs, or portions
> of such, written an Arm assembley can be found? I'm in need
> of examples of arm assembly to serve as test code for a just
> written assembler.
>

a google search for "github arm assembly" is probably going to give you plenty of code

Re: arm assembly examples

<s7i2bk$9t3$1@dont-email.me>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=63009&group=sci.electronics.design#63009

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: blockedo...@foo.invalid (Don Y)
Newsgroups: sci.electronics.design
Subject: Re: arm assembly examples
Date: Wed, 12 May 2021 19:19:19 -0700
Organization: A noiseless patient Spider
Lines: 20
Message-ID: <s7i2bk$9t3$1@dont-email.me>
References: <s7636j$k0i$1@reader1.panix.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Thu, 13 May 2021 02:19:33 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="e89e6803c8ce1200046fd32bd46abad8";
logging-data="10147"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/MvMfeHayiXegys2TzJcnP"
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101
Thunderbird/52.1.1
Cancel-Lock: sha1:c8+F/C1SX7fT2QEjTeQtZo5rsqw=
In-Reply-To: <s7636j$k0i$1@reader1.panix.com>
Content-Language: en-US
 by: Don Y - Thu, 13 May 2021 02:19 UTC

On 5/8/2021 6:20 AM, Hul Tytus wrote:
> Anyone know where on the internet files of programs, or portions
> of such, written an Arm assembley can be found? I'm in need
> of examples of arm assembly to serve as test code for a just
> written assembler.

If you're looking for something to exhaustively test your tool,
you'll probably have to write it (inspecting anything you find
will effectively take as much time as creating from scratch)

You might look at some of the FOSS kernels that run under ARM.
It might be a bit of work to extract the code from any (e.g., C)
wrappers (unless you can handle that). E.g., you might DL the
"source" ISO for a recent netBSD and dig through the "arm"-related
kernel sections.

And, if your goal is to be a drop-in replacement for a particular
vendor's ARM toolchain, you'd also need to look at support for
directives, macros, pseudo-ops, etc.

Re: arm assembly examples

<s7k8t3$c97$1@reader1.panix.com>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=63106&group=sci.electronics.design#63106

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!aioe.org!goblin3!goblin.stu.neva.ru!panix!not-for-mail
From: ht...@panix.com (Hul Tytus)
Newsgroups: sci.electronics.design
Subject: Re: arm assembly examples
Date: Thu, 13 May 2021 22:23:31 +0000 (UTC)
Organization: PANIX Public Access Internet and UNIX, NYC
Lines: 13
Message-ID: <s7k8t3$c97$1@reader1.panix.com>
References: <s7636j$k0i$1@reader1.panix.com> <9c663ab9-64d6-48ae-a9d7-db8ad66d0d34n@googlegroups.com>
NNTP-Posting-Host: panix1.panix.com
X-Trace: reader1.panix.com 1620944611 12583 166.84.1.1 (13 May 2021 22:23:31 GMT)
X-Complaints-To: abuse@panix.com
NNTP-Posting-Date: Thu, 13 May 2021 22:23:31 +0000 (UTC)
 by: Hul Tytus - Thu, 13 May 2021 22:23 UTC

Thanks Lasse. I'll give it a try.

Hul

Lasse Langwadt Christensen <langwadt@fonz.dk> wrote:
> torsdag den 13. maj 2021 kl. 03.16.06 UTC+2 skrev Hul Tytus:
> > Anyone know where on the internet files of programs, or portions
> > of such, written an Arm assembley can be found? I'm in need
> > of examples of arm assembly to serve as test code for a just
> > written assembler.
> >

> a google search for "github arm assembly" is probably going to give you plenty of code

Re: arm assembly examples

<s7k9at$c97$2@reader1.panix.com>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=63107&group=sci.electronics.design#63107

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!4.us.feeder.erje.net!feeder.erje.net!goblin1!goblin3!goblin.stu.neva.ru!panix!not-for-mail
From: ht...@panix.com (Hul Tytus)
Newsgroups: sci.electronics.design
Subject: Re: arm assembly examples
Date: Thu, 13 May 2021 22:30:53 +0000 (UTC)
Organization: PANIX Public Access Internet and UNIX, NYC
Lines: 26
Message-ID: <s7k9at$c97$2@reader1.panix.com>
References: <s7636j$k0i$1@reader1.panix.com> <s7i2bk$9t3$1@dont-email.me>
NNTP-Posting-Host: panix1.panix.com
X-Trace: reader1.panix.com 1620945053 12583 166.84.1.1 (13 May 2021 22:30:53 GMT)
X-Complaints-To: abuse@panix.com
NNTP-Posting-Date: Thu, 13 May 2021 22:30:53 +0000 (UTC)
 by: Hul Tytus - Thu, 13 May 2021 22:30 UTC

Don - has netbsd an arm version? I'm writing this from panix.com's
netbsd shell account so your mention of netbsd caught my eye.

Hul

Don Y <blockedofcourse@foo.invalid> wrote:
> On 5/8/2021 6:20 AM, Hul Tytus wrote:
> > Anyone know where on the internet files of programs, or portions
> > of such, written an Arm assembley can be found? I'm in need
> > of examples of arm assembly to serve as test code for a just
> > written assembler.

> If you're looking for something to exhaustively test your tool,
> you'll probably have to write it (inspecting anything you find
> will effectively take as much time as creating from scratch)

> You might look at some of the FOSS kernels that run under ARM.
> It might be a bit of work to extract the code from any (e.g., C)
> wrappers (unless you can handle that). E.g., you might DL the
> "source" ISO for a recent netBSD and dig through the "arm"-related
> kernel sections.

> And, if your goal is to be a drop-in replacement for a particular
> vendor's ARM toolchain, you'd also need to look at support for
> directives, macros, pseudo-ops, etc.

Re: arm assembly examples

<s7kboq$iv5$1@dont-email.me>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=63109&group=sci.electronics.design#63109

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: blockedo...@foo.invalid (Don Y)
Newsgroups: sci.electronics.design
Subject: Re: arm assembly examples
Date: Thu, 13 May 2021 16:12:07 -0700
Organization: A noiseless patient Spider
Lines: 20
Message-ID: <s7kboq$iv5$1@dont-email.me>
References: <s7636j$k0i$1@reader1.panix.com> <s7i2bk$9t3$1@dont-email.me>
<s7k9at$c97$2@reader1.panix.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Thu, 13 May 2021 23:12:27 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="d202010a663ab97d7afd0c23f0dad6da";
logging-data="19429"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18IAU+TZNe018OlcWtCc6xD"
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101
Thunderbird/52.1.1
Cancel-Lock: sha1:1pLNDmUg6hroTXWHBr7L2F4HHY0=
In-Reply-To: <s7k9at$c97$2@reader1.panix.com>
Content-Language: en-US
 by: Don Y - Thu, 13 May 2021 23:12 UTC

On 5/13/2021 3:30 PM, Hul Tytus wrote:
> Don - has netbsd an arm version? I'm writing this from panix.com's
> netbsd shell account so your mention of netbsd caught my eye.

<http://wiki.netbsd.org/ports/evbarm/> among other references.

I have no idea about running it on "mainstream" (non evaluation board)
hardware your interest is just in the *sources*, right?

If the evbarm port is anything like the others, the sources will NOT
be on the evbarm ISO but, rather, in the "sources":

<http://cdn.netbsd.org/pub/NetBSD/NetBSD-9.1/source/sets/>

You're likely only going to find ASM in the "syssrc.tgz" tarball
(the others are userland sources)

[But, if you have a fast enough link, you can check both places]

Can I inquire as to the motivation for building such a tool?

Re: arm assembly examples

<609e6f7d$0$29327$e4fe514c@news.xs4all.nl>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=63142&group=sci.electronics.design#63142

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!aioe.org!feeder1.feed.usenet.farm!feed.usenet.farm!newsfeed.xs4all.nl!newsfeed9.news.xs4all.nl!nzpost1.xs4all.net!not-for-mail
Newsgroups: sci.electronics.design
Subject: Re: arm assembly examples
References: <s7636j$k0i$1@reader1.panix.com> <9c663ab9-64d6-48ae-a9d7-db8ad66d0d34n@googlegroups.com>
X-Newsreader: trn 4.0-test77 (Sep 1, 2010)
From: alb...@cherry (none)
Originator: albert@cherry.(none) (albert)
Date: 14 May 2021 12:39:25 GMT
Lines: 28
Message-ID: <609e6f7d$0$29327$e4fe514c@news.xs4all.nl>
NNTP-Posting-Host: cbf29b76.news.xs4all.nl
X-Trace: G=n2zzVVZi,C=U2FsdGVkX1/h0+reQPZTff5j8bpclOs8Tjj+Scf+nKWpgsIQauPg88sT1Kv7Jc1ZV9LN0XYzbmLCEwoSD9LofAx9qJUwiBJeTCW8f0NqW6wtZoj2FRNwiuo9X87dFZTu
X-Complaints-To: abuse@xs4all.nl
 by: none - Fri, 14 May 2021 12:39 UTC

In article <9c663ab9-64d6-48ae-a9d7-db8ad66d0d34n@googlegroups.com>,
Lasse Langwadt Christensen <langwadt@fonz.dk> wrote:
>torsdag den 13. maj 2021 kl. 03.16.06 UTC+2 skrev Hul Tytus:
>> Anyone know where on the internet files of programs, or portions
>> of such, written an Arm assembley can be found? I'm in need
>> of examples of arm assembly to serve as test code for a just
>> written assembler.
>>
>
>a google search for "github arm assembly" is probably going to give you plenty of code

(I can't answer to the original article.)
This doesn't sound very professional. Random test code doesn't cut it.
You have to make comprehensive tests for your assembler.
If you have tests where your assembler generate binary code,
you only have to disassemble that binary code using a different tool,
e.g. the disassembler of the ubiquitous GNU arm toolchain, and compare.
Differences have to be investigated. Do not assume GNU has no defects.

See also
https://github.com/albertvanderhorst/ciasdis

Groetjes Albert
--
"in our communism country Viet Nam, people are forced to be
alive and in the western country like US, people are free to
die from Covid 19 lol" duc ha
albert@spe&ar&c.xs4all.nl &=n http://home.hccnet.nl/a.w.m.van.der.horst

Re: arm assembly examples

<s7mh22$e4o$1@dont-email.me>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=63174&group=sci.electronics.design#63174

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: blockedo...@foo.invalid (Don Y)
Newsgroups: sci.electronics.design
Subject: Re: arm assembly examples
Date: Fri, 14 May 2021 11:54:43 -0700
Organization: A noiseless patient Spider
Lines: 45
Message-ID: <s7mh22$e4o$1@dont-email.me>
References: <s7636j$k0i$1@reader1.panix.com>
<9c663ab9-64d6-48ae-a9d7-db8ad66d0d34n@googlegroups.com>
<609e6f7d$0$29327$e4fe514c@news.xs4all.nl>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 14 May 2021 18:54:58 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="d202010a663ab97d7afd0c23f0dad6da";
logging-data="14488"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18XXc72lwfIXp6cjjVOGOqt"
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101
Thunderbird/52.1.1
Cancel-Lock: sha1:98RonhMONjkyy8il5K3zGNKWsWI=
In-Reply-To: <609e6f7d$0$29327$e4fe514c@news.xs4all.nl>
Content-Language: en-US
 by: Don Y - Fri, 14 May 2021 18:54 UTC

On 5/14/2021 5:39 AM, albert wrote:
> In article <9c663ab9-64d6-48ae-a9d7-db8ad66d0d34n@googlegroups.com>,
> Lasse Langwadt Christensen <langwadt@fonz.dk> wrote:
>> torsdag den 13. maj 2021 kl. 03.16.06 UTC+2 skrev Hul Tytus:
>>> Anyone know where on the internet files of programs, or portions
>>> of such, written an Arm assembley can be found? I'm in need
>>> of examples of arm assembly to serve as test code for a just
>>> written assembler.
>>>
>>
>> a google search for "github arm assembly" is probably going to give you plenty of code
>
> (I can't answer to the original article.)
> This doesn't sound very professional. Random test code doesn't cut it.
> You have to make comprehensive tests for your assembler.
> If you have tests where your assembler generate binary code,
> you only have to disassemble that binary code using a different tool,
> e.g. the disassembler of the ubiquitous GNU arm toolchain, and compare.
> Differences have to be investigated. Do not assume GNU has no defects.

Given his stated use, I would imagine a simple comparison of binaries
from <whatever> tool was used, previously, against the output of the
new tool would give a high degree of confidence for the sort of code
that he's encountering.

It's unclear how reliant he/they will be on the tool; if "learned eyes"
will be available to analyze any unexpected behaviors from the execution
of the code, then "close enough" (for a subsequent revision) may be good
enough.

We developed an ASL for a project (early in my career) that leveraged
COTS tools but in user-friendlier ways. It was not uncommon to discover
shortcomings in the "code" generated. But, rather easy to spot those
problems and "fix" our tool, accordingly (within hours of discovering
the problem).

While this *felt* like a huge kluge, the end users were tickled to
have the programmability as the problems tended to be corner cases
that they seldom encountered (and, thus, could pretend didn't exist).

Of course, our rapid turn-around on support made even THOSE tolerable
(it got to be more a case of "Hey! You won't believe what I discovered,
today!" instead of "What a frigging piece of crap!")
tool

Re: arm assembly examples

<609fc975$0$29317$e4fe514c@news.xs4all.nl>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=63253&group=sci.electronics.design#63253

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!paganini.bofh.team!news.dns-netz.com!news.freedyn.net!newsfeed.xs4all.nl!newsfeed7.news.xs4all.nl!nzpost1.xs4all.net!not-for-mail
Newsgroups: sci.electronics.design
Subject: Re: arm assembly examples
References: <s7636j$k0i$1@reader1.panix.com> <9c663ab9-64d6-48ae-a9d7-db8ad66d0d34n@googlegroups.com> <609e6f7d$0$29327$e4fe514c@news.xs4all.nl> <s7mh22$e4o$1@dont-email.me>
X-Newsreader: trn 4.0-test77 (Sep 1, 2010)
From: alb...@cherry (none)
Originator: albert@cherry.(none) (albert)
Date: 15 May 2021 13:15:34 GMT
Lines: 80
Message-ID: <609fc975$0$29317$e4fe514c@news.xs4all.nl>
NNTP-Posting-Host: 4a724c99.news.xs4all.nl
X-Trace: G=ub4euCPG,C=U2FsdGVkX181QeDELRYOL5uouPRIk/V+jjYSr62+5thSEBqNDlSH4stLB7gN7uKv2SpFpIeA5XTn0dHxUUeiLET4f8R6pAeSQ/P6HJTcaMGKXbPO57gEKu7d1sH+eBYu
X-Complaints-To: abuse@xs4all.nl
 by: none - Sat, 15 May 2021 13:15 UTC

In article <s7mh22$e4o$1@dont-email.me>,
Don Y <blockedofcourse@foo.invalid> wrote:
>On 5/14/2021 5:39 AM, albert wrote:
>> In article <9c663ab9-64d6-48ae-a9d7-db8ad66d0d34n@googlegroups.com>,
>> Lasse Langwadt Christensen <langwadt@fonz.dk> wrote:
>>> torsdag den 13. maj 2021 kl. 03.16.06 UTC+2 skrev Hul Tytus:
>>>> Anyone know where on the internet files of programs, or portions
>>>> of such, written an Arm assembley can be found? I'm in need
>>>> of examples of arm assembly to serve as test code for a just
>>>> written assembler.
>>>>
>>>
>>> a google search for "github arm assembly" is probably going to give you plenty of code
>>
>> (I can't answer to the original article.)
>> This doesn't sound very professional. Random test code doesn't cut it.
>> You have to make comprehensive tests for your assembler.
>> If you have tests where your assembler generate binary code,
>> you only have to disassemble that binary code using a different tool,
>> e.g. the disassembler of the ubiquitous GNU arm toolchain, and compare.
>> Differences have to be investigated. Do not assume GNU has no defects.
>
>Given his stated use, I would imagine a simple comparison of binaries
>from <whatever> tool was used, previously, against the output of the
>new tool would give a high degree of confidence for the sort of code
>that he's encountering.

I can tell you that comparing binaries where there is a byte inserted
here and there is much more unpleasant than comparing disassemblies.
So I don't thing that will work, because contrary to popular believe
very few assemblers determine exactly how the binary looks. In fact I
believe the one I've written is the only one.
Assemblers generate different outputs nowadays deciding whether a
jump is short or long, or whether an offset can be in a byte,
what opcode to use as a nop, or even more "clever" things.
A case in point, the 8086 and successors contains some 50 instructions
that are one byte duplicates of longer regular instructions.
AMD succesfully hijacked 16 of those to provide a 64 bit i86.
This added even more ambiguity, because a 0x48+## prefix (or 0x40+## prefix for
32 bits code) will be routinely used by compiler writers, and it may not
(will not) be removed if unnecessary.

For the arm the situation is maybe not that extreme, however built-in
shifting and built-in conditionals may make it difficult to assess
ARM instructions.

>
>It's unclear how reliant he/they will be on the tool; if "learned eyes"
>will be available to analyze any unexpected behaviors from the execution
>of the code, then "close enough" (for a subsequent revision) may be good
>enough.
>
>We developed an ASL for a project (early in my career) that leveraged
>COTS tools but in user-friendlier ways. It was not uncommon to discover
>shortcomings in the "code" generated. But, rather easy to spot those
>problems and "fix" our tool, accordingly (within hours of discovering
>the problem).
>
>While this *felt* like a huge kluge, the end users were tickled to
>have the programmability as the problems tended to be corner cases
>that they seldom encountered (and, thus, could pretend didn't exist).
>
>Of course, our rapid turn-around on support made even THOSE tolerable
>(it got to be more a case of "Hey! You won't believe what I discovered,
>today!" instead of "What a frigging piece of crap!")
>tool

I hope your customers are not into mission critical, life critical
applications, but hay.
It is pretty "easy to spot those problems" like airplanes falling
from the sky.

>

Groetjes Albert
--
"in our communism country Viet Nam, people are forced to be
alive and in the western country like US, people are free to
die from Covid 19 lol" duc ha
albert@spe&ar&c.xs4all.nl &=n http://home.hccnet.nl/a.w.m.van.der.horst

Re: arm assembly examples

<s7p41q$2jl$1@dont-email.me>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=63283&group=sci.electronics.design#63283

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: blockedo...@foo.invalid (Don Y)
Newsgroups: sci.electronics.design
Subject: Re: arm assembly examples
Date: Sat, 15 May 2021 11:31:09 -0700
Organization: A noiseless patient Spider
Lines: 113
Message-ID: <s7p41q$2jl$1@dont-email.me>
References: <s7636j$k0i$1@reader1.panix.com>
<9c663ab9-64d6-48ae-a9d7-db8ad66d0d34n@googlegroups.com>
<609e6f7d$0$29327$e4fe514c@news.xs4all.nl> <s7mh22$e4o$1@dont-email.me>
<609fc975$0$29317$e4fe514c@news.xs4all.nl>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sat, 15 May 2021 18:31:22 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="fbf32e3585750f687207bae26fde6b55";
logging-data="2677"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/9YW8Kt0NPp44Vk4gEALz4"
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101
Thunderbird/52.1.1
Cancel-Lock: sha1:+i2aT5ExGWx1sUkDhJQy+0Fe8/M=
In-Reply-To: <609fc975$0$29317$e4fe514c@news.xs4all.nl>
Content-Language: en-US
 by: Don Y - Sat, 15 May 2021 18:31 UTC

On 5/15/2021 6:15 AM, albert wrote:
> In article <s7mh22$e4o$1@dont-email.me>,
> Don Y <blockedofcourse@foo.invalid> wrote:
>> On 5/14/2021 5:39 AM, albert wrote:
>>> In article <9c663ab9-64d6-48ae-a9d7-db8ad66d0d34n@googlegroups.com>,
>>> Lasse Langwadt Christensen <langwadt@fonz.dk> wrote:
>>>> torsdag den 13. maj 2021 kl. 03.16.06 UTC+2 skrev Hul Tytus:
>>>>> Anyone know where on the internet files of programs, or portions
>>>>> of such, written an Arm assembley can be found? I'm in need
>>>>> of examples of arm assembly to serve as test code for a just
>>>>> written assembler.
>>>>>
>>>>
>>>> a google search for "github arm assembly" is probably going to give you plenty of code
>>>
>>> (I can't answer to the original article.)
>>> This doesn't sound very professional. Random test code doesn't cut it.
>>> You have to make comprehensive tests for your assembler.
>>> If you have tests where your assembler generate binary code,
>>> you only have to disassemble that binary code using a different tool,
>>> e.g. the disassembler of the ubiquitous GNU arm toolchain, and compare.
>>> Differences have to be investigated. Do not assume GNU has no defects.
>>
>> Given his stated use, I would imagine a simple comparison of binaries
>>from <whatever> tool was used, previously, against the output of the
>> new tool would give a high degree of confidence for the sort of code
>> that he's encountering.
>
> I can tell you that comparing binaries where there is a byte inserted
> here and there is much more unpleasant than comparing disassemblies.

You have to ensure the disassembled output generates the same INPUT
format of the *other* assembler. If not, you can't mechanically do
the comparison.

> So I don't thing that will work, because contrary to popular believe
> very few assemblers determine exactly how the binary looks. In fact I
> believe the one I've written is the only one.

If you can't predict what the output will be for a given input,
then you can't ensure any two runs would produce identical outputs.

> Assemblers generate different outputs nowadays deciding whether a
> jump is short or long, or whether an offset can be in a byte,

Yes, but the decisions they make aren't arbitrary. I know the ASM
that I write *relies* on my knowing what the actual output will look
like. I can't ensure a phrase will fit in a cache line if the assembler
has the liberty to "distort" what I've written because it wants to
use a long offset for a jump instead of a short one.

> what opcode to use as a nop, or even more "clever" things.
> A case in point, the 8086 and successors contains some 50 instructions
> that are one byte duplicates of longer regular instructions.
> AMD succesfully hijacked 16 of those to provide a 64 bit i86.
> This added even more ambiguity, because a 0x48+## prefix (or 0x40+## prefix for
> 32 bits code) will be routinely used by compiler writers, and it may not
> (will not) be removed if unnecessary.
>
> For the arm the situation is maybe not that extreme, however built-in
> shifting and built-in conditionals may make it difficult to assess
> ARM instructions.
>
>> It's unclear how reliant he/they will be on the tool; if "learned eyes"
>> will be available to analyze any unexpected behaviors from the execution
>> of the code, then "close enough" (for a subsequent revision) may be good
>> enough.
>>
>> We developed an ASL for a project (early in my career) that leveraged
>> COTS tools but in user-friendlier ways. It was not uncommon to discover
>> shortcomings in the "code" generated. But, rather easy to spot those
>> problems and "fix" our tool, accordingly (within hours of discovering
>> the problem).
>>
>> While this *felt* like a huge kluge, the end users were tickled to
>> have the programmability as the problems tended to be corner cases
>> that they seldom encountered (and, thus, could pretend didn't exist).
>>
>> Of course, our rapid turn-around on support made even THOSE tolerable
>> (it got to be more a case of "Hey! You won't believe what I discovered,
>> today!" instead of "What a frigging piece of crap!")
>> tool
>
> I hope your customers are not into mission critical, life critical
> applications, but hay.

Actually, it was a medical diagnostic instrument. But, you don't
need to put the ASL in the critical data (or processing/control)
path in order for it to offer utility to the technicians using it.

E.g., if I let you programmatically format "reports", a bug might
cause the result to not appear in exactly the format that you'd
intended -- yet doesn't have to alter any of the data reported.
And, it wouldn't bring "production" to a halt as you could still
extract the information of interest.

As with any product, KNOWING your application domain's requirements
is the most important issue.

I worked on a piece of test equipment that had some fairly obvious
implementation flaws (e.g., "Trigger after one second delay"
NEVER triggering!). Yet, folks managed to work around those
fairly easily -- without any "dire consequences" (like airplanes
falling out of the sky).

> It is pretty "easy to spot those problems" like airplanes falling
> from the sky.
>
>>
>
> Groetjes Albert
>

Re: arm assembly examples

<s7pcun$82t$1@dont-email.me>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=63292&group=sci.electronics.design#63292

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: dp...@tgi-sci.com (Dimiter_Popoff)
Newsgroups: sci.electronics.design
Subject: Re: arm assembly examples
Date: Sun, 16 May 2021 00:03:17 +0300
Organization: TGI
Lines: 22
Message-ID: <s7pcun$82t$1@dont-email.me>
References: <s7636j$k0i$1@reader1.panix.com>
<9c663ab9-64d6-48ae-a9d7-db8ad66d0d34n@googlegroups.com>
<609e6f7d$0$29327$e4fe514c@news.xs4all.nl> <s7mh22$e4o$1@dont-email.me>
<609fc975$0$29317$e4fe514c@news.xs4all.nl> <s7p41q$2jl$1@dont-email.me>
Reply-To: dp@tgi-sci.com
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sat, 15 May 2021 21:03:19 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="d6dc6bc15d4fb6611d8c492a896f2311";
logging-data="8285"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1//+8Dw626k8Iy7MGITffNlJMkDqhFqBjE="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.10.1
Cancel-Lock: sha1:IMCVi2sHa1M6VuuZ2mm1HRw4WjA=
In-Reply-To: <s7p41q$2jl$1@dont-email.me>
Content-Language: en-US
 by: Dimiter_Popoff - Sat, 15 May 2021 21:03 UTC

On 5/15/2021 21:31, Don Y wrote:
> On 5/15/2021 6:15 AM, albert wrote:
> .........
>>
>> I can tell you that comparing binaries where there is a byte inserted
>> here and there is much more unpleasant than comparing disassemblies.
>
> You have to ensure the disassembled output generates the same INPUT
> format of the *other* assembler.  If not, you can't mechanically do
> the comparison.

Hi Don,
his approach has an advantage: the binary code is unambiguous, i.e.
the disassembler has no choice but to write the correct opcode.
If the "other" assembler does not understand it it will produce
some error etc., gives you another level of verification.

Could be handy in some cases.

Dimiter

Re: arm assembly examples

<s7pfv8$q7r$1@dont-email.me>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=63296&group=sci.electronics.design#63296

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: blockedo...@foo.invalid (Don Y)
Newsgroups: sci.electronics.design
Subject: Re: arm assembly examples
Date: Sat, 15 May 2021 14:54:43 -0700
Organization: A noiseless patient Spider
Lines: 61
Message-ID: <s7pfv8$q7r$1@dont-email.me>
References: <s7636j$k0i$1@reader1.panix.com>
<9c663ab9-64d6-48ae-a9d7-db8ad66d0d34n@googlegroups.com>
<609e6f7d$0$29327$e4fe514c@news.xs4all.nl> <s7mh22$e4o$1@dont-email.me>
<609fc975$0$29317$e4fe514c@news.xs4all.nl> <s7p41q$2jl$1@dont-email.me>
<s7pcun$82t$1@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sat, 15 May 2021 21:54:48 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="fbf32e3585750f687207bae26fde6b55";
logging-data="26875"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/W/u+5dC2MZznZrb5B8eWH"
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101
Thunderbird/52.1.1
Cancel-Lock: sha1:vHBxn7k2ghmYvWKm84iS+Zg6Pg8=
In-Reply-To: <s7pcun$82t$1@dont-email.me>
Content-Language: en-US
 by: Don Y - Sat, 15 May 2021 21:54 UTC

On 5/15/2021 2:03 PM, Dimiter_Popoff wrote:
> On 5/15/2021 21:31, Don Y wrote:
>> On 5/15/2021 6:15 AM, albert wrote:
>> .........
>>>
>>> I can tell you that comparing binaries where there is a byte inserted
>>> here and there is much more unpleasant than comparing disassemblies.
>>
>> You have to ensure the disassembled output generates the same INPUT
>> format of the *other* assembler. If not, you can't mechanically do
>> the comparison.
>
> Hi Don,
> his approach has an advantage: the binary code is unambiguous, i.e.
> the disassembler has no choice but to write the correct opcode.
> If the "other" assembler does not understand it it will produce
> some error etc., gives you another level of verification.
>
> Could be handy in some cases.

The binary is unambiguous. But, can map to many different
syntactic expressions in the *source*.

Letting each assembler interpret the sources in their own
specific context removes this ambiguity.

I recall an early Z80 assembler that would choke on
certain types of expressions as arguments. Specifically,
it saw parentheses as indicative of a *different* opcode.

So, if you wrote:
LD BC,(256*FOO)+BAR
it wouldn't see that as
LD BC,BAR+(256*FOO)
or
BAZ EQU (256*FOO)+BAR
LD BC,BAZ
but, instead, as a "load from memory" reference instead
of "load from immediate data".

If you want to rely on a disassembler, then you have to
disassemble BOTH compiled sources to a (potentially) THIRD syntax
to avoid biasing the result.

You'd not care to recover *either* source as much would
be lost by the compile/decompile processes. E.g., the
above code would disassemble to something like
LD BC,0x2188

Hul apparently *has* working sources for at least a product
or two. It seems logical that he would first try to compile
those with his "new" assembler. And, look into any differences
that appear in the binary -- as the "new" binary might not
execute in the same way as the old.

And, if his goal is:
"Don, the objective is a small assembler for in-house use and
to be included with some equipment with arm processors. Some
list files for checking the immediate and branching calculations
and placements would be handy."
then those things that will likely use the tool seem ideal candidates!

Re: arm assembly examples

<s7pgkc$1o2$1@dont-email.me>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=63297&group=sci.electronics.design#63297

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: dp...@tgi-sci.com (Dimiter_Popoff)
Newsgroups: sci.electronics.design
Subject: Re: arm assembly examples
Date: Sun, 16 May 2021 01:06:03 +0300
Organization: TGI
Lines: 76
Message-ID: <s7pgkc$1o2$1@dont-email.me>
References: <s7636j$k0i$1@reader1.panix.com>
<9c663ab9-64d6-48ae-a9d7-db8ad66d0d34n@googlegroups.com>
<609e6f7d$0$29327$e4fe514c@news.xs4all.nl> <s7mh22$e4o$1@dont-email.me>
<609fc975$0$29317$e4fe514c@news.xs4all.nl> <s7p41q$2jl$1@dont-email.me>
<s7pcun$82t$1@dont-email.me> <s7pfv8$q7r$1@dont-email.me>
Reply-To: dp@tgi-sci.com
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sat, 15 May 2021 22:06:04 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="3b68bd66f21855b333ba269eb046a280";
logging-data="1794"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19f4ps9tJPzIgiEjv6Pkxs8j8/PY32GfTY="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.10.1
Cancel-Lock: sha1:fHPmW+tctDHX/r14MX9QxEn0q94=
In-Reply-To: <s7pfv8$q7r$1@dont-email.me>
Content-Language: en-US
 by: Dimiter_Popoff - Sat, 15 May 2021 22:06 UTC

On 5/16/2021 0:54, Don Y wrote:
> On 5/15/2021 2:03 PM, Dimiter_Popoff wrote:
>> On 5/15/2021 21:31, Don Y wrote:
>>> On 5/15/2021 6:15 AM, albert wrote:
>>> .........
>>>>
>>>> I can tell you that comparing binaries where there is a byte inserted
>>>> here and there is much more unpleasant than comparing disassemblies.
>>>
>>> You have to ensure the disassembled output generates the same INPUT
>>> format of the *other* assembler.  If not, you can't mechanically do
>>> the comparison.
>>
>> Hi Don,
>> his approach has an advantage: the binary code is unambiguous, i.e.
>> the disassembler has no choice but to write the correct opcode.
>> If the "other" assembler does not understand it it will produce
>> some error etc., gives you another level of verification.
>>
>> Could be handy in some cases.
>
> The binary is unambiguous.  But, can map to many different
> syntactic expressions in the *source*.
>
> Letting each assembler interpret the sources in their own
> specific context removes this ambiguity.
>
> I recall an early Z80 assembler that would choke on
> certain types of expressions as arguments.  Specifically,
> it saw parentheses as indicative of a *different* opcode.
>
> So, if you wrote:
>     LD BC,(256*FOO)+BAR
> it wouldn't see that as
>     LD BC,BAR+(256*FOO)
> or
>     BAZ  EQU (256*FOO)+BAR
>     LD BC,BAZ
> but, instead, as a "load from memory" reference instead
> of "load from immediate data".
>
> If you want to rely on a disassembler, then you have to
> disassemble BOTH compiled sources to a (potentially) THIRD syntax
> to avoid biasing the result.
>
> You'd not care to recover *either* source as much would
> be lost by the compile/decompile processes.  E.g., the
> above code would disassemble to something like
>     LD BC,0x2188
>
> Hul apparently *has* working sources for at least a product
> or two.  It seems logical that he would first try to compile
> those with his "new" assembler.  And, look into any differences
> that appear in the binary -- as the "new" binary might not
> execute in the same way as the old.
>
> And, if his goal is:
>    "Don, the objective is a small assembler for in-house use and
>     to be included with some equipment with arm processors. Some
>     list files for checking the immediate and branching calculations
>     and placements would be handy."
> then those things that will likely use the tool seem ideal candidates!

Don,
of course I am aware of all that, I just thought the unambiguous
nature of the binary could be exploited at times. Probably because
I am not really into checking other people's tools, you know I
use exclusively my own ones, and it had not occurred to me as
a potential use.
Not that I have not written a disassembler for power and, earlier,
for cpu32.
Try to feed the output of my power disassembler to vpa,
LOL. With the same success you can try to feed it to a fortran
compiler or something... :-). The cpu32 was pretty close though,
guess it would have worked mostly (never been tried) with my a32
assembler for cpu32.

Re: arm assembly examples

<s7phe1$6hk$1@dont-email.me>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=63298&group=sci.electronics.design#63298

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: blockedo...@foo.invalid (Don Y)
Newsgroups: sci.electronics.design
Subject: Re: arm assembly examples
Date: Sat, 15 May 2021 15:19:30 -0700
Organization: A noiseless patient Spider
Lines: 45
Message-ID: <s7phe1$6hk$1@dont-email.me>
References: <s7636j$k0i$1@reader1.panix.com>
<9c663ab9-64d6-48ae-a9d7-db8ad66d0d34n@googlegroups.com>
<609e6f7d$0$29327$e4fe514c@news.xs4all.nl> <s7mh22$e4o$1@dont-email.me>
<609fc975$0$29317$e4fe514c@news.xs4all.nl> <s7p41q$2jl$1@dont-email.me>
<s7pcun$82t$1@dont-email.me> <s7pfv8$q7r$1@dont-email.me>
<s7pgkc$1o2$1@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sat, 15 May 2021 22:19:45 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="3cd3b81f26fc860bb6882e8f42957af5";
logging-data="6708"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/FsZVOnfxl445DtggekfuX"
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101
Thunderbird/52.1.1
Cancel-Lock: sha1:FU9z3B6UZ58BXiYcIFpfJns8/Dw=
In-Reply-To: <s7pgkc$1o2$1@dont-email.me>
Content-Language: en-US
 by: Don Y - Sat, 15 May 2021 22:19 UTC

On 5/15/2021 3:06 PM, Dimiter_Popoff wrote:
> of course I am aware of all that, I just thought the unambiguous
> nature of the binary could be exploited at times. Probably because
> I am not really into checking other people's tools, you know I
> use exclusively my own ones, and it had not occurred to me as
> a potential use.

You are likely lucky, in that regard. On the one hand, you are
reliant on having (or making) each tool that you need. On the other,
you KNOW how the tool works and can fix/alter it, as required.
(this isn't always possible with other folks' tools)

> Not that I have not written a disassembler for power and, earlier,
> for cpu32.
> Try to feed the output of my power disassembler to vpa,
> LOL. With the same success you can try to feed it to a fortran
> compiler or something... :-). The cpu32 was pretty close though,
> guess it would have worked mostly (never been tried) with my a32
> assembler for cpu32.

The "problem" with ASM source is that it's not really constrained/defined
for any particular processor. Unlike HLLs that *tend* to adhere to
some "published standard", ASMs can support all sorts of syntactic
variations. (this is why I prefer to code in HLLs and AVOID any
specific "extensions" that the vendor may think will "help" me)

[And, your VPA is an entirely different "beast"!]

"Porting" ASM from one tool to another is boring and ripe for
careless errors. Do I build a tool to assist with the port?
Or, is this small enough that I can just plow through it and finish
with less total effort expended?

I've had to work with disassembled code (client "lost" his sources).
It was a dreadful experience. There's so much information in the
source that isn't in the binary. And, even small differences
in "original ASM" vs. "disassembled ASM" can be... "tedious" to
deal with.

Additionally, *decompiled* code often has a more consistent
structure; the compiler does things in largely the same way
from instance to instance. By contrast, assembled code can
take an entirely different approach from one statement to the
next. So, you can't assume you know "what's coming"... until
it's past! :<

Re: arm assembly examples

<s7poht$e1f$1@dont-email.me>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=63305&group=sci.electronics.design#63305

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: dp...@tgi-sci.com (Dimiter_Popoff)
Newsgroups: sci.electronics.design
Subject: Re: arm assembly examples
Date: Sun, 16 May 2021 03:21:15 +0300
Organization: TGI
Lines: 19
Message-ID: <s7poht$e1f$1@dont-email.me>
References: <s7636j$k0i$1@reader1.panix.com>
<9c663ab9-64d6-48ae-a9d7-db8ad66d0d34n@googlegroups.com>
<609e6f7d$0$29327$e4fe514c@news.xs4all.nl> <s7mh22$e4o$1@dont-email.me>
<609fc975$0$29317$e4fe514c@news.xs4all.nl> <s7p41q$2jl$1@dont-email.me>
<s7pcun$82t$1@dont-email.me> <s7pfv8$q7r$1@dont-email.me>
<s7pgkc$1o2$1@dont-email.me> <s7phe1$6hk$1@dont-email.me>
Reply-To: dp@tgi-sci.com
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sun, 16 May 2021 00:21:17 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="3b68bd66f21855b333ba269eb046a280";
logging-data="14383"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+Nw+fku73tNYsSEbkykt5++5qkZae6IS0="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.10.1
Cancel-Lock: sha1:ebbgrbs4Lkd0CZx0bSQJHVjIlNg=
In-Reply-To: <s7phe1$6hk$1@dont-email.me>
Content-Language: en-US
 by: Dimiter_Popoff - Sun, 16 May 2021 00:21 UTC

On 5/16/2021 1:19, Don Y wrote:
> On 5/15/2021 3:06 PM, Dimiter_Popoff wrote:
>> of course I am aware of all that, I just thought the unambiguous
>> nature of the binary could be exploited at times. Probably because
>> I am not really into checking other people's tools, you know I
>> use exclusively my own ones, and it had not occurred to me as
>> a potential use.
>
> You are likely lucky, in that regard.  On the one hand, you are
> reliant on having (or making) each tool that you need.  On the other,
> you KNOW how the tool works and can fix/alter it, as required.
> (this isn't always possible with other folks' tools)
>

I think I have been lucky to go this way indeed. Has been a
huge productivity boost for me and has helped me stay on course.
Now where this course has got me to is another matter but
the closer to the end of life we get the more we realize it
is has been about the course, not the end goal :-).

Re: arm assembly examples

<s7pq06$n75$1@dont-email.me>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=63306&group=sci.electronics.design#63306

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: blockedo...@foo.invalid (Don Y)
Newsgroups: sci.electronics.design
Subject: Re: arm assembly examples
Date: Sat, 15 May 2021 17:45:41 -0700
Organization: A noiseless patient Spider
Lines: 47
Message-ID: <s7pq06$n75$1@dont-email.me>
References: <s7636j$k0i$1@reader1.panix.com>
<9c663ab9-64d6-48ae-a9d7-db8ad66d0d34n@googlegroups.com>
<609e6f7d$0$29327$e4fe514c@news.xs4all.nl> <s7mh22$e4o$1@dont-email.me>
<609fc975$0$29317$e4fe514c@news.xs4all.nl> <s7p41q$2jl$1@dont-email.me>
<s7pcun$82t$1@dont-email.me> <s7pfv8$q7r$1@dont-email.me>
<s7pgkc$1o2$1@dont-email.me> <s7phe1$6hk$1@dont-email.me>
<s7poht$e1f$1@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 16 May 2021 00:45:59 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="3cd3b81f26fc860bb6882e8f42957af5";
logging-data="23781"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19FjlBngNiqRLqgWwDFxceQ"
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101
Thunderbird/52.1.1
Cancel-Lock: sha1:nur7IYUxz3ynWkuh2ZtbV8W1tI0=
In-Reply-To: <s7poht$e1f$1@dont-email.me>
Content-Language: en-US
 by: Don Y - Sun, 16 May 2021 00:45 UTC

On 5/15/2021 5:21 PM, Dimiter_Popoff wrote:
> On 5/16/2021 1:19, Don Y wrote:
>> On 5/15/2021 3:06 PM, Dimiter_Popoff wrote:
>>> of course I am aware of all that, I just thought the unambiguous
>>> nature of the binary could be exploited at times. Probably because
>>> I am not really into checking other people's tools, you know I
>>> use exclusively my own ones, and it had not occurred to me as
>>> a potential use.
>>
>> You are likely lucky, in that regard. On the one hand, you are
>> reliant on having (or making) each tool that you need. On the other,
>> you KNOW how the tool works and can fix/alter it, as required.
>> (this isn't always possible with other folks' tools)
>
> I think I have been lucky to go this way indeed. Has been a
> huge productivity boost for me and has helped me stay on course.

I think the fact that *you* make the decisions as to how YOUR work
is done is the biggest win -- even if you adopted COTS tools.
You're not subject to the "whims" of your peers, bosses, etc.

Here, one of the drains on efficiency is software upgrades,
OS upgrades, etc. In addition to taking time away from
"productive" activities, they also introduce the potential for
having to relearn something (that now works slightly differently).

Way back in the early "visual C++" days, (maybe even just prior?)
I had purchased <whatever> tool from MS. In the course of my
work, I stumbled on a bug in the compiler (something like calling
a member function through a pointer).

The MS droid verified the bug was real. Informed me that there was no
patch available. *But*, gleefully informed me that I could upgrade
to the NEWER product at no charge (or, maybe some nominal charge).

That was the end of my MS experiences. I have no desire to
be someone's UNPAID "test department"!

> Now where this course has got me to is another matter but
> the closer to the end of life we get the more we realize it
> is has been about the course, not the end goal :-).

You and I are lucky in that we can choose how to spend our days.
And, appear to enjoy the choices we've made.

This isn't the case for many who either have financial pressures,
family issues, skillset constraints, etc.

Re: arm assembly examples

<60a105e6$0$29317$e4fe514c@news.xs4all.nl>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=63314&group=sci.electronics.design#63314

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!weretis.net!feeder8.news.weretis.net!fdcspool4.netnews.com!news-out.netnews.com!news.alt.net!fdc2.netnews.com!peer01.ams1!peer.ams1.xlned.com!news.xlned.com!newsfeed.xs4all.nl!newsfeed8.news.xs4all.nl!nzpost1.xs4all.net!not-for-mail
Newsgroups: sci.electronics.design
Subject: Re: arm assembly examples
References: <s7636j$k0i$1@reader1.panix.com> <s7mh22$e4o$1@dont-email.me> <609fc975$0$29317$e4fe514c@news.xs4all.nl> <s7p41q$2jl$1@dont-email.me>
X-Newsreader: trn 4.0-test77 (Sep 1, 2010)
From: alb...@cherry (none)
Originator: albert@cherry.(none) (albert)
Date: 16 May 2021 11:45:42 GMT
Lines: 61
Message-ID: <60a105e6$0$29317$e4fe514c@news.xs4all.nl>
NNTP-Posting-Host: 3df44b3a.news.xs4all.nl
X-Trace: G=9DFYjYPa,C=U2FsdGVkX1+dk7NyCJbu1mZy9dY9u1GNa4nO9UwAnQUefuEGy4NteZucT/sdVOsmNIY2CvfLwFk6nFRKTgsM6WwlI3Nb+mIo/ZF62BlRsCDLmJE1C9vGDeXrQB7sE1HY
X-Complaints-To: abuse@xs4all.nl
X-Received-Bytes: 3426
 by: none - Sun, 16 May 2021 11:45 UTC

In article <s7p41q$2jl$1@dont-email.me>,
Don Y <blockedofcourse@foo.invalid> wrote:
>On 5/15/2021 6:15 AM, albert wrote:
>> In article <s7mh22$e4o$1@dont-email.me>,
>> Don Y <blockedofcourse@foo.invalid> wrote:
>>> On 5/14/2021 5:39 AM, albert wrote:
>>>> In article <9c663ab9-64d6-48ae-a9d7-db8ad66d0d34n@googlegroups.com>,
>>>> Lasse Langwadt Christensen <langwadt@fonz.dk> wrote:
>>>>> torsdag den 13. maj 2021 kl. 03.16.06 UTC+2 skrev Hul Tytus:
>>>>>> Anyone know where on the internet files of programs, or portions
>>>>>> of such, written an Arm assembley can be found? I'm in need
>>>>>> of examples of arm assembly to serve as test code for a just
>>>>>> written assembler.
>>>>>>
>>>>>
>>>>> a google search for "github arm assembly" is probably going to give you plenty of code
>>>>
>>>> (I can't answer to the original article.)
>>>> This doesn't sound very professional. Random test code doesn't cut it.
>>>> You have to make comprehensive tests for your assembler.
>>>> If you have tests where your assembler generate binary code,
>>>> you only have to disassemble that binary code using a different tool,
>>>> e.g. the disassembler of the ubiquitous GNU arm toolchain, and compare.
>>>> Differences have to be investigated. Do not assume GNU has no defects.
>>>
>>> Given his stated use, I would imagine a simple comparison of binaries
>>>from <whatever> tool was used, previously, against the output of the
>>> new tool would give a high degree of confidence for the sort of code
>>> that he's encountering.
>>
>> I can tell you that comparing binaries where there is a byte inserted
>> here and there is much more unpleasant than comparing disassemblies.
>
>You have to ensure the disassembled output generates the same INPUT
>format of the *other* assembler. If not, you can't mechanically do
>the comparison.

You can't do a mechanical comparison, full stop.
You can't ensure the disassembled output for two assemblers are the
same, at least not for 8086.

>
>> So I don't thing that will work, because contrary to popular believe
>> very few assemblers determine exactly how the binary looks. In fact I
>> believe the one I've written is the only one.
>
>If you can't predict what the output will be for a given input,
>then you can't ensure any two runs would produce identical outputs.

So you should not rely on that.

<SNIP>

>> Groetjes Albert
>>
>
--
"in our communism country Viet Nam, people are forced to be
alive and in the western country like US, people are free to
die from Covid 19 lol" duc ha
albert@spe&ar&c.xs4all.nl &=n http://home.hccnet.nl/a.w.m.van.der.horst

Re: arm assembly examples

<60a11d8a$0$29321$e4fe514c@news.xs4all.nl>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=63319&group=sci.electronics.design#63319

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!aioe.org!feeder1.feed.usenet.farm!feed.usenet.farm!newsfeed.xs4all.nl!newsfeed7.news.xs4all.nl!nzpost1.xs4all.net!not-for-mail
Newsgroups: sci.electronics.design
References: <s7636j$k0i$1@reader1.panix.com> <s7p41q$2jl$1@dont-email.me> <s7pcun$82t$1@dont-email.me> <s7pfv8$q7r$1@dont-email.me>
Subject: Re: arm assembly examples
X-Newsreader: trn 4.0-test77 (Sep 1, 2010)
From: alb...@cherry (none)
Originator: albert@cherry.(none) (albert)
Date: 16 May 2021 13:26:34 GMT
Lines: 109
Message-ID: <60a11d8a$0$29321$e4fe514c@news.xs4all.nl>
NNTP-Posting-Host: 37d13fc7.news.xs4all.nl
X-Trace: G=9DFYjYPa,C=U2FsdGVkX18l1qkB4Z7W/69xv+jyne/VpmrzdsIplyAOUnzzgc/dyxSynQsllvyByEfxGE4cfaQ+HtEwlnkxtwa8ESZpghvY5pini1HGP/wYS62NoWY/soOmFp9YYacB
X-Complaints-To: abuse@xs4all.nl
 by: none - Sun, 16 May 2021 13:26 UTC

In article <s7pfv8$q7r$1@dont-email.me>,
Don Y <blockedofcourse@foo.invalid> wrote:
>On 5/15/2021 2:03 PM, Dimiter_Popoff wrote:
>> On 5/15/2021 21:31, Don Y wrote:
>>> On 5/15/2021 6:15 AM, albert wrote:
>>> .........
>>>>
>>>> I can tell you that comparing binaries where there is a byte inserted
>>>> here and there is much more unpleasant than comparing disassemblies.
>>>
>>> You have to ensure the disassembled output generates the same INPUT
>>> format of the *other* assembler. If not, you can't mechanically do
>>> the comparison.
>>
>> Hi Don,
>> his approach has an advantage: the binary code is unambiguous, i.e.
>> the disassembler has no choice but to write the correct opcode.
>> If the "other" assembler does not understand it it will produce
>> some error etc., gives you another level of verification.
>>
>> Could be handy in some cases.
>
>The binary is unambiguous. But, can map to many different
>syntactic expressions in the *source*.
>
>Letting each assembler interpret the sources in their own
>specific context removes this ambiguity.
>
>I recall an early Z80 assembler that would choke on
>certain types of expressions as arguments. Specifically,
>it saw parentheses as indicative of a *different* opcode.
>
>So, if you wrote:
> LD BC,(256*FOO)+BAR
>it wouldn't see that as
> LD BC,BAR+(256*FOO)
>or
> BAZ EQU (256*FOO)+BAR
> LD BC,BAZ
>but, instead, as a "load from memory" reference instead
>of "load from immediate data".
>
>If you want to rely on a disassembler, then you have to
>disassemble BOTH compiled sources to a (potentially) THIRD syntax
>to avoid biasing the result.
>
>You'd not care to recover *either* source as much would
>be lost by the compile/decompile processes. E.g., the
>above code would disassemble to something like
> LD BC,0x2188
>
>Hul apparently *has* working sources for at least a product
>or two. It seems logical that he would first try to compile
>those with his "new" assembler. And, look into any differences
>that appear in the binary -- as the "new" binary might not
>execute in the same way as the old.
>
>And, if his goal is:
> "Don, the objective is a small assembler for in-house use and
> to be included with some equipment with arm processors. Some
> list files for checking the immediate and branching calculations
> and placements would be handy."
>then those things that will likely use the tool seem ideal candidates!

Reality check. Assembler representations of the same program depend
wildly on the assembler used.

The site
https://github.com/albertvanderhorst/ciforth
contains a generating system for different compilers (MS windows,linux,
MSDOS, 16/32/64). The system can accommodate different assemblers,
..asm is nasm
..msm is microsoft
..s is gas
..fas is fasm

nasm is closest to the official Intel syntax.

I will report only on the source for the 64 bit linux version.
So I did my utmost to have the sources equivalent over different
assemblers.

Check as per
wc -l $s.asm
diff -b -B $s.s $s.asm |wc -l
diff -b -B $s.msm $s.asm |wc -l
diff -b -B $s.fas $s.asm |wc -l
with output
11064 ci86.lina64.asm
21709
5343
1095

Even if discounted for the dramatic differences if the comment symbol
is not the same, the differences are substantial.

Of course I did not introduce gratuitous differences. I would love
to have the comment, allocation, equates etc. work the same in all sources.

P.S.
(There was a time that gas had src,dst (gnu compatible) instead of
dst,src (intel compatible). If anything that should be a convincing example.)

Groetjes Albert
--
"in our communism country Viet Nam, people are forced to be
alive and in the western country like US, people are free to
die from Covid 19 lol" duc ha
albert@spe&ar&c.xs4all.nl &=n http://home.hccnet.nl/a.w.m.van.der.horst

Re: arm assembly examples

<s7r6pk$epg$1@dont-email.me>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=63320&group=sci.electronics.design#63320

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: blockedo...@foo.invalid (Don Y)
Newsgroups: sci.electronics.design
Subject: Re: arm assembly examples
Date: Sun, 16 May 2021 06:30:27 -0700
Organization: A noiseless patient Spider
Lines: 44
Message-ID: <s7r6pk$epg$1@dont-email.me>
References: <s7636j$k0i$1@reader1.panix.com> <s7mh22$e4o$1@dont-email.me>
<609fc975$0$29317$e4fe514c@news.xs4all.nl> <s7p41q$2jl$1@dont-email.me>
<60a105e6$0$29317$e4fe514c@news.xs4all.nl>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 16 May 2021 13:30:28 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="3cd3b81f26fc860bb6882e8f42957af5";
logging-data="15152"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/zD2TJBIEpu4r+duW0MOFH"
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101
Thunderbird/52.1.1
Cancel-Lock: sha1:Kwj5+681lMa/wMDjpIkKCEHV1Dg=
In-Reply-To: <60a105e6$0$29317$e4fe514c@news.xs4all.nl>
Content-Language: en-US
 by: Don Y - Sun, 16 May 2021 13:30 UTC

On 5/16/2021 4:45 AM, albert wrote:
> In article <s7p41q$2jl$1@dont-email.me>,
> Don Y <blockedofcourse@foo.invalid> wrote:
>> On 5/15/2021 6:15 AM, albert wrote:
>>> In article <s7mh22$e4o$1@dont-email.me>,
>>> Don Y <blockedofcourse@foo.invalid> wrote:
>>>> On 5/14/2021 5:39 AM, albert wrote:
>>>>> In article <9c663ab9-64d6-48ae-a9d7-db8ad66d0d34n@googlegroups.com>,
>>>>> Lasse Langwadt Christensen <langwadt@fonz.dk> wrote:
>>>>>> torsdag den 13. maj 2021 kl. 03.16.06 UTC+2 skrev Hul Tytus:
>>>>>>> Anyone know where on the internet files of programs, or portions
>>>>>>> of such, written an Arm assembley can be found? I'm in need
>>>>>>> of examples of arm assembly to serve as test code for a just
>>>>>>> written assembler.
>>>>>>>
>>>>>>
>>>>>> a google search for "github arm assembly" is probably going to give you plenty of code
>>>>>
>>>>> (I can't answer to the original article.)
>>>>> This doesn't sound very professional. Random test code doesn't cut it.
>>>>> You have to make comprehensive tests for your assembler.
>>>>> If you have tests where your assembler generate binary code,
>>>>> you only have to disassemble that binary code using a different tool,
>>>>> e.g. the disassembler of the ubiquitous GNU arm toolchain, and compare.
>>>>> Differences have to be investigated. Do not assume GNU has no defects.
>>>>
>>>> Given his stated use, I would imagine a simple comparison of binaries
>>> >from <whatever> tool was used, previously, against the output of the
>>>> new tool would give a high degree of confidence for the sort of code
>>>> that he's encountering.
>>>
>>> I can tell you that comparing binaries where there is a byte inserted
>>> here and there is much more unpleasant than comparing disassemblies.
>>
>> You have to ensure the disassembled output generates the same INPUT
>> format of the *other* assembler. If not, you can't mechanically do
>> the comparison.
>
> You can't do a mechanical comparison, full stop.
> You can't ensure the disassembled output for two assemblers are the
> same, at least not for 8086.

I don't see "8086" mentioned in the subject line. Is there something
wrong with the copy of his post that my news server provided to me?

Re: arm assembly examples

<60a11e88$0$29321$e4fe514c@news.xs4all.nl>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=63321&group=sci.electronics.design#63321

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!aioe.org!news.dns-netz.com!news.freedyn.net!newsfeed.xs4all.nl!newsfeed7.news.xs4all.nl!nzpost1.xs4all.net!not-for-mail
Newsgroups: sci.electronics.design
Subject: Re: arm assembly examples
References: <s7636j$k0i$1@reader1.panix.com> <s7phe1$6hk$1@dont-email.me> <s7poht$e1f$1@dont-email.me> <s7pq06$n75$1@dont-email.me>
X-Newsreader: trn 4.0-test77 (Sep 1, 2010)
From: alb...@cherry (none)
Originator: albert@cherry.(none) (albert)
Date: 16 May 2021 13:30:48 GMT
Lines: 48
Message-ID: <60a11e88$0$29321$e4fe514c@news.xs4all.nl>
NNTP-Posting-Host: 37d13fc7.news.xs4all.nl
X-Trace: G=9DFYjYPa,C=U2FsdGVkX1/8bA/xaBEInU/pc449nDX11xVB8y2+5E8tb5uYqgyacuv17YX0wStYhpmAzI9s+xJsbmqKToY8GCAFGhTNKu/FWwABgog7LcH292BCyDhr2DyOvgmw9AmX
X-Complaints-To: abuse@xs4all.nl
 by: none - Sun, 16 May 2021 13:30 UTC

In article <s7pq06$n75$1@dont-email.me>,
Don Y <blockedofcourse@foo.invalid> wrote:
>On 5/15/2021 5:21 PM, Dimiter_Popoff wrote:
>> On 5/16/2021 1:19, Don Y wrote:
>>> On 5/15/2021 3:06 PM, Dimiter_Popoff wrote:
>>>> of course I am aware of all that, I just thought the unambiguous
>>>> nature of the binary could be exploited at times. Probably because
>>>> I am not really into checking other people's tools, you know I
>>>> use exclusively my own ones, and it had not occurred to me as
>>>> a potential use.
>>>
>>> You are likely lucky, in that regard. On the one hand, you are
>>> reliant on having (or making) each tool that you need. On the other,
>>> you KNOW how the tool works and can fix/alter it, as required.
>>> (this isn't always possible with other folks' tools)
>>
>> I think I have been lucky to go this way indeed. Has been a
>> huge productivity boost for me and has helped me stay on course.
>
>I think the fact that *you* make the decisions as to how YOUR work
>is done is the biggest win -- even if you adopted COTS tools.
>You're not subject to the "whims" of your peers, bosses, etc.
>
>Here, one of the drains on efficiency is software upgrades,
>OS upgrades, etc. In addition to taking time away from
>"productive" activities, they also introduce the potential for
>having to relearn something (that now works slightly differently).

My primary concern is the introduction of new defects ("bugs").

>Way back in the early "visual C++" days, (maybe even just prior?)
>I had purchased <whatever> tool from MS. In the course of my
>work, I stumbled on a bug in the compiler (something like calling
>a member function through a pointer).
>
>The MS droid verified the bug was real. Informed me that there was no
>patch available. *But*, gleefully informed me that I could upgrade
>to the NEWER product at no charge (or, maybe some nominal charge).

This is the reason for having minor upgrades on top of stable
versions.

groetjes Albert
--
"in our communism country Viet Nam, people are forced to be
alive and in the western country like US, people are free to
die from Covid 19 lol" duc ha
albert@spe&ar&c.xs4all.nl &=n http://home.hccnet.nl/a.w.m.van.der.horst

Re: arm assembly examples

<s7r6v6$epg$2@dont-email.me>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=63323&group=sci.electronics.design#63323

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: blockedo...@foo.invalid (Don Y)
Newsgroups: sci.electronics.design
Subject: Re: arm assembly examples
Date: Sun, 16 May 2021 06:33:26 -0700
Organization: A noiseless patient Spider
Lines: 110
Message-ID: <s7r6v6$epg$2@dont-email.me>
References: <s7636j$k0i$1@reader1.panix.com> <s7p41q$2jl$1@dont-email.me>
<s7pcun$82t$1@dont-email.me> <s7pfv8$q7r$1@dont-email.me>
<60a11d8a$0$29321$e4fe514c@news.xs4all.nl>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 16 May 2021 13:33:27 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="3cd3b81f26fc860bb6882e8f42957af5";
logging-data="15152"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18Vpo5Aic1TfL1GwEcePiuJ"
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101
Thunderbird/52.1.1
Cancel-Lock: sha1:PQoyQRNccvX6stRw11S6Hbe878s=
In-Reply-To: <60a11d8a$0$29321$e4fe514c@news.xs4all.nl>
Content-Language: en-US
 by: Don Y - Sun, 16 May 2021 13:33 UTC

On 5/16/2021 6:26 AM, albert wrote:
> In article <s7pfv8$q7r$1@dont-email.me>,
> Don Y <blockedofcourse@foo.invalid> wrote:
>> On 5/15/2021 2:03 PM, Dimiter_Popoff wrote:
>>> On 5/15/2021 21:31, Don Y wrote:
>>>> On 5/15/2021 6:15 AM, albert wrote:
>>>> .........
>>>>>
>>>>> I can tell you that comparing binaries where there is a byte inserted
>>>>> here and there is much more unpleasant than comparing disassemblies.
>>>>
>>>> You have to ensure the disassembled output generates the same INPUT
>>>> format of the *other* assembler. If not, you can't mechanically do
>>>> the comparison.
>>>
>>> Hi Don,
>>> his approach has an advantage: the binary code is unambiguous, i.e.
>>> the disassembler has no choice but to write the correct opcode.
>>> If the "other" assembler does not understand it it will produce
>>> some error etc., gives you another level of verification.
>>>
>>> Could be handy in some cases.
>>
>> The binary is unambiguous. But, can map to many different
>> syntactic expressions in the *source*.
>>
>> Letting each assembler interpret the sources in their own
>> specific context removes this ambiguity.
>>
>> I recall an early Z80 assembler that would choke on
>> certain types of expressions as arguments. Specifically,
>> it saw parentheses as indicative of a *different* opcode.
>>
>> So, if you wrote:
>> LD BC,(256*FOO)+BAR
>> it wouldn't see that as
>> LD BC,BAR+(256*FOO)
>> or
>> BAZ EQU (256*FOO)+BAR
>> LD BC,BAZ
>> but, instead, as a "load from memory" reference instead
>> of "load from immediate data".
>>
>> If you want to rely on a disassembler, then you have to
>> disassemble BOTH compiled sources to a (potentially) THIRD syntax
>> to avoid biasing the result.
>>
>> You'd not care to recover *either* source as much would
>> be lost by the compile/decompile processes. E.g., the
>> above code would disassemble to something like
>> LD BC,0x2188
>>
>> Hul apparently *has* working sources for at least a product
>> or two. It seems logical that he would first try to compile
>> those with his "new" assembler. And, look into any differences
>> that appear in the binary -- as the "new" binary might not
>> execute in the same way as the old.
>>
>> And, if his goal is:
>> "Don, the objective is a small assembler for in-house use and
>> to be included with some equipment with arm processors. Some
>> list files for checking the immediate and branching calculations
>> and placements would be handy."
>> then those things that will likely use the tool seem ideal candidates!
>
> Reality check. Assembler representations of the same program depend
> wildly on the assembler used.

Did you not hear me when *I* made that very same statement to Dimiter?
My comment regarding "porting" between assemblers for the same processor?

> The site
> https://github.com/albertvanderhorst/ciforth
> contains a generating system for different compilers (MS windows,linux,
> MSDOS, 16/32/64). The system can accommodate different assemblers,
> .asm is nasm
> .msm is microsoft
> .s is gas
> .fas is fasm
>
> nasm is closest to the official Intel syntax.
>
> I will report only on the source for the 64 bit linux version.
> So I did my utmost to have the sources equivalent over different
> assemblers.
>
> Check as per
> wc -l $s.asm
> diff -b -B $s.s $s.asm |wc -l
> diff -b -B $s.msm $s.asm |wc -l
> diff -b -B $s.fas $s.asm |wc -l
> with output
> 11064 ci86.lina64.asm
> 21709
> 5343
> 1095
>
> Even if discounted for the dramatic differences if the comment symbol
> is not the same, the differences are substantial.
>
> Of course I did not introduce gratuitous differences. I would love
> to have the comment, allocation, equates etc. work the same in all sources.
>
> P.S.
> (There was a time that gas had src,dst (gnu compatible) instead of
> dst,src (intel compatible). If anything that should be a convincing example.)
>
> Groetjes Albert
>

Re: arm assembly examples

<s7r7pu$n34$1@dont-email.me>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=63325&group=sci.electronics.design#63325

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: blockedo...@foo.invalid (Don Y)
Newsgroups: sci.electronics.design
Subject: Re: arm assembly examples
Date: Sun, 16 May 2021 06:47:33 -0700
Organization: A noiseless patient Spider
Lines: 83
Message-ID: <s7r7pu$n34$1@dont-email.me>
References: <s7636j$k0i$1@reader1.panix.com> <s7phe1$6hk$1@dont-email.me>
<s7poht$e1f$1@dont-email.me> <s7pq06$n75$1@dont-email.me>
<60a11e88$0$29321$e4fe514c@news.xs4all.nl>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 16 May 2021 13:47:42 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="3cd3b81f26fc860bb6882e8f42957af5";
logging-data="23652"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+8TcetllJOLsbEkVvlqQhM"
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101
Thunderbird/52.1.1
Cancel-Lock: sha1:VJSyvIp2aMbLekMyoR8ZQpTOVaM=
In-Reply-To: <60a11e88$0$29321$e4fe514c@news.xs4all.nl>
Content-Language: en-US
 by: Don Y - Sun, 16 May 2021 13:47 UTC

On 5/16/2021 6:30 AM, albert wrote:
> In article <s7pq06$n75$1@dont-email.me>,
> Don Y <blockedofcourse@foo.invalid> wrote:
>> On 5/15/2021 5:21 PM, Dimiter_Popoff wrote:
>>> On 5/16/2021 1:19, Don Y wrote:
>>>> On 5/15/2021 3:06 PM, Dimiter_Popoff wrote:
>>>>> of course I am aware of all that, I just thought the unambiguous
>>>>> nature of the binary could be exploited at times. Probably because
>>>>> I am not really into checking other people's tools, you know I
>>>>> use exclusively my own ones, and it had not occurred to me as
>>>>> a potential use.
>>>>
>>>> You are likely lucky, in that regard. On the one hand, you are
>>>> reliant on having (or making) each tool that you need. On the other,
>>>> you KNOW how the tool works and can fix/alter it, as required.
>>>> (this isn't always possible with other folks' tools)
>>>
>>> I think I have been lucky to go this way indeed. Has been a
>>> huge productivity boost for me and has helped me stay on course.
>>
>> I think the fact that *you* make the decisions as to how YOUR work
>> is done is the biggest win -- even if you adopted COTS tools.
>> You're not subject to the "whims" of your peers, bosses, etc.
>>
>> Here, one of the drains on efficiency is software upgrades,
>> OS upgrades, etc. In addition to taking time away from
>> "productive" activities, they also introduce the potential for
>> having to relearn something (that now works slightly differently).
>
> My primary concern is the introduction of new defects ("bugs").
>
>> Way back in the early "visual C++" days, (maybe even just prior?)
>> I had purchased <whatever> tool from MS. In the course of my
>> work, I stumbled on a bug in the compiler (something like calling
>> a member function through a pointer).
>>
>> The MS droid verified the bug was real. Informed me that there was no
>> patch available. *But*, gleefully informed me that I could upgrade
>> to the NEWER product at no charge (or, maybe some nominal charge).
>
> This is the reason for having minor upgrades on top of stable
> versions.

If the vendor won't provide an upgrade to the version you have
(as was the case in the example I provided, above), then you
are forced to either:
- live with what you have
- update to the new version/product
- pick a new vendor/product

If I am developing something new (hardware, software, documentation),
then I *might* be able to tolerate a "change" -- what I have at the
time isn't final and, presumably, I can notice any deviation in performance
over *my* working set.

A DTP product changed how it would layout the page from one version to
the next. With several hundred pages of finished documentation behind
me, I wasn't keen on having to manually *tweek* each of those pages to
ensure page-breaks, paragraph breaks, flows, illustrations, etc. would
all end up "where they used to".

So, I simply chose to live with the (now known) problems in the previous
version -- at least until the project was complete (and make a note
not to use the upgraded tool on any future work on it)

If, OTOH, I am supporting some existing "product" (hardware, software,
documentation), then there is usually too much risk to making such a change
*if* I can work-around any existing problems in the old tool.

I maintain VMs of each required guest OS with these apps preinstalled.
So, if client X needs some work done on a project I designed for him,
I can start up the VM that hosts the toolchain that I was using when
I last worked on his product. Because I will have made a commitment
to make the changes in a certain time/money budget and can't factor
in the potential cost of some newer version of "his" toolchain not
working as memory suggests it would.

[I've had clients update their tools and then want me to make
some changes with their new tools -- only to accept the job by using
their *old* tools ("But, those ran on W98!" "Yeah? And I've got a
W98 machine, here, with them installed.") This is both a blessing
and a curse -- as it allows them to drop stuff in my lap solely
because they didn't maintain a proper development environment]

Re: arm assembly examples

<eog2ag1innjupe5b78h155jcp2pr4pcrhe@4ax.com>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=63337&group=sci.electronics.design#63337

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: speffS...@interlogDOTyou.knowwhat (Spehro Pefhany)
Newsgroups: sci.electronics.design
Subject: Re: arm assembly examples
Date: Sun, 16 May 2021 12:10:54 -0400
Organization: A noiseless patient Spider
Lines: 35
Message-ID: <eog2ag1innjupe5b78h155jcp2pr4pcrhe@4ax.com>
References: <s7636j$k0i$1@reader1.panix.com> <9c663ab9-64d6-48ae-a9d7-db8ad66d0d34n@googlegroups.com> <609e6f7d$0$29327$e4fe514c@news.xs4all.nl> <s7mh22$e4o$1@dont-email.me> <609fc975$0$29317$e4fe514c@news.xs4all.nl> <s7p41q$2jl$1@dont-email.me> <s7pcun$82t$1@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
Injection-Info: reader02.eternal-september.org; posting-host="41c8fc76b71122655f784da0a9017fa9";
logging-data="22201"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18vn/SQJn3hYMSQtaqN8oTZ"
Cancel-Lock: sha1:n3WubBMekI6jTRO3U/kXnhbMbO4=
X-Newsreader: Forte Agent 4.2/32.1118
 by: Spehro Pefhany - Sun, 16 May 2021 16:10 UTC

On Sun, 16 May 2021 00:03:17 +0300, Dimiter_Popoff <dp@tgi-sci.com>
wrote:

>On 5/15/2021 21:31, Don Y wrote:
>> On 5/15/2021 6:15 AM, albert wrote:
>> .........
>>>
>>> I can tell you that comparing binaries where there is a byte inserted
>>> here and there is much more unpleasant than comparing disassemblies.
>>
>> You have to ensure the disassembled output generates the same INPUT
>> format of the *other* assembler.  If not, you can't mechanically do
>> the comparison.
>
>Hi Don,
>his approach has an advantage: the binary code is unambiguous, i.e.
>the disassembler has no choice but to write the correct opcode.
>If the "other" assembler does not understand it it will produce
>some error etc., gives you another level of verification.
>
>Could be handy in some cases.
>
>Dimiter
>

I remember porting some substantial code to a new assembler (there
were a *lot* of syntactical differences. It also spit out somewhat
different hex code even when it was working perfectly, something about
the way gaps in memory were dealt with differed, so I had to write a
simple program to do a meaningful comparison. The name Dunfield comes
to mind.

--
Best regards,
Spehro Pefhany

Re: arm assembly examples

<s7rv2u$jfp$1@dont-email.me>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=63349&group=sci.electronics.design#63349

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: blockedo...@foo.invalid (Don Y)
Newsgroups: sci.electronics.design
Subject: Re: arm assembly examples
Date: Sun, 16 May 2021 13:24:51 -0700
Organization: A noiseless patient Spider
Lines: 98
Message-ID: <s7rv2u$jfp$1@dont-email.me>
References: <s7636j$k0i$1@reader1.panix.com>
<9c663ab9-64d6-48ae-a9d7-db8ad66d0d34n@googlegroups.com>
<609e6f7d$0$29327$e4fe514c@news.xs4all.nl> <s7mh22$e4o$1@dont-email.me>
<609fc975$0$29317$e4fe514c@news.xs4all.nl> <s7p41q$2jl$1@dont-email.me>
<s7pcun$82t$1@dont-email.me> <eog2ag1innjupe5b78h155jcp2pr4pcrhe@4ax.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 16 May 2021 20:25:03 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="3cd3b81f26fc860bb6882e8f42957af5";
logging-data="19961"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19XakXmevPZfvNg7HkGrU20"
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101
Thunderbird/52.1.1
Cancel-Lock: sha1:dwNAK7J7VSLBuYtn6lGNfNF6mik=
In-Reply-To: <eog2ag1innjupe5b78h155jcp2pr4pcrhe@4ax.com>
Content-Language: en-US
 by: Don Y - Sun, 16 May 2021 20:24 UTC

On 5/16/2021 9:10 AM, Spehro Pefhany wrote:
> On Sun, 16 May 2021 00:03:17 +0300, Dimiter_Popoff <dp@tgi-sci.com>
> wrote:
>
>> On 5/15/2021 21:31, Don Y wrote:
>>> On 5/15/2021 6:15 AM, albert wrote:
>>> .........
>>>>
>>>> I can tell you that comparing binaries where there is a byte inserted
>>>> here and there is much more unpleasant than comparing disassemblies.
>>>
>>> You have to ensure the disassembled output generates the same INPUT
>>> format of the *other* assembler. If not, you can't mechanically do
>>> the comparison.
>>
>> Hi Don,
>> his approach has an advantage: the binary code is unambiguous, i.e.
>> the disassembler has no choice but to write the correct opcode.
>> If the "other" assembler does not understand it it will produce
>> some error etc., gives you another level of verification.
>>
>> Could be handy in some cases.
>>
>> Dimiter
>
> I remember porting some substantial code to a new assembler (there
> were a *lot* of syntactical differences. It also spit out somewhat
> different hex code even when it was working perfectly, something about
> the way gaps in memory were dealt with differed, so I had to write a
> simple program to do a meaningful comparison. The name Dunfield comes
> to mind.

Then you either didn't have the code residing in the same places
*or* your mapping of instructions was faulty and possibly neglected
some assembler directive that changed the assembler's context.
(or, the "new"/old assembler was broken in some way)

A port should yield the same binary. If you don't have the same
binary, you don't have the same *product*. I.e., all of the
assumptions/verifications you made on the preported version are
now suspect. In a regulated industry, you would have to repeat the
validation effort. Tell the guys at the FAA that this is the
exact same SOURCE code as the previous validated version -- even
though the binary is visibly different -- and see how accommodating
they'll be!

MAME tries to recreate various different hardware environments
to host legacy video game code by emulating the various processors
that were used (decades ago) on modern, faster commodity systems.
There are similar "emulators".

But, they only emulate the functionality of the code -- the EXACT timing
of those instruction sequences isn't faithfully reproduced. (actually,
I don't know if this is still true, today; making a cycle-accurate emulator
is considerably harder than just reproducing basic functionality in a
particular LARGE slice of time so the effort and MIPS required is
higher)

<https://arstechnica.com/gaming/2011/08/accuracy-takes-power-one-mans-3ghz-quest-to-build-a-perfect-snes-emulator/>

(see ~paragraph 5)

Clearly, the emulated game (mentioned above) is *different* from the
original game. A useful feature (for the player) has been lost due to the
variation in timing between emulated instruction sequences and REAL
instructions (on the original hardware).

"<shrug> It's just a game..."

This sort of problem is actually MORE acute in modern hardware -- because
of all of the "acceleration" built into that hardware. If a source code
sequence translates into a binary that takes a different amount of time
to execute -- or, alters the physical positions of instructions/data -- then
the code will execute differently.

In a real-time system, timing differences can change scheduling decisions
to favor one "task" over a task that may have been previously favored.
A race that previously never manifested can suddenly "fail" every time!

Changes in instruction/data placement can cause differences in cache
utilization -- an "extra" line may be needed to hold something that
previously "fit" into one fewer cache line. So, the time required to
execute code changes because the cache's contents are no longer faithfully
reproduced from their original form. Shifting a location across a
page boundary can cause an extra page miss -- or, even thrashing if the
code hops back and forth across that page boundary (which previously
wasn't a factor in execution). Or, extra TLB misses to access "other"
resources that had previously fit into the same page set.

Note that we're not talking about *one* such mismatch but, rather,
the potential for *many*. And, in many different (unexpected?)
places. (if comparing binaries is hard, imagine how hard it would be
to figure out where the "new" performance would have to be revalidated!

If you're writing single-threaded desktop code, you'll likely never
see a problem. But, if you're writing code that will run in an
embedded/RT environment, all bets are off. Call it "version 2" and
repeat the entire regression/testing suite.

Re: arm assembly examples

<8m14ag5nnjhffm5p651ifeld97gk9j9kp9@4ax.com>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=63377&group=sci.electronics.design#63377

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: speffS...@interlogDOTyou.knowwhat (Spehro Pefhany)
Newsgroups: sci.electronics.design
Subject: Re: arm assembly examples
Date: Mon, 17 May 2021 02:12:44 -0400
Organization: A noiseless patient Spider
Lines: 109
Message-ID: <8m14ag5nnjhffm5p651ifeld97gk9j9kp9@4ax.com>
References: <s7636j$k0i$1@reader1.panix.com> <9c663ab9-64d6-48ae-a9d7-db8ad66d0d34n@googlegroups.com> <609e6f7d$0$29327$e4fe514c@news.xs4all.nl> <s7mh22$e4o$1@dont-email.me> <609fc975$0$29317$e4fe514c@news.xs4all.nl> <s7p41q$2jl$1@dont-email.me> <s7pcun$82t$1@dont-email.me> <eog2ag1innjupe5b78h155jcp2pr4pcrhe@4ax.com> <s7rv2u$jfp$1@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Injection-Info: reader02.eternal-september.org; posting-host="a988b75291d6525016e9ca792d7f33ad";
logging-data="28874"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/CaMi3HHuXLSWZjZuBMCSo"
Cancel-Lock: sha1:WDkXA23l+sqbKaBX2fZGid7BrcY=
X-Newsreader: Forte Agent 4.2/32.1118
 by: Spehro Pefhany - Mon, 17 May 2021 06:12 UTC

On Sun, 16 May 2021 13:24:51 -0700, Don Y
<blockedofcourse@foo.invalid> wrote:

>On 5/16/2021 9:10 AM, Spehro Pefhany wrote:
>> On Sun, 16 May 2021 00:03:17 +0300, Dimiter_Popoff <dp@tgi-sci.com>
>> wrote:
>>
>>> On 5/15/2021 21:31, Don Y wrote:
>>>> On 5/15/2021 6:15 AM, albert wrote:
>>>> .........
>>>>>
>>>>> I can tell you that comparing binaries where there is a byte inserted
>>>>> here and there is much more unpleasant than comparing disassemblies.
>>>>
>>>> You have to ensure the disassembled output generates the same INPUT
>>>> format of the *other* assembler. If not, you can't mechanically do
>>>> the comparison.
>>>
>>> Hi Don,
>>> his approach has an advantage: the binary code is unambiguous, i.e.
>>> the disassembler has no choice but to write the correct opcode.
>>> If the "other" assembler does not understand it it will produce
>>> some error etc., gives you another level of verification.
>>>
>>> Could be handy in some cases.
>>>
>>> Dimiter
>>
>> I remember porting some substantial code to a new assembler (there
>> were a *lot* of syntactical differences. It also spit out somewhat
>> different hex code even when it was working perfectly, something about
>> the way gaps in memory were dealt with differed, so I had to write a
>> simple program to do a meaningful comparison. The name Dunfield comes
>> to mind.
>
>Then you either didn't have the code residing in the same places
>*or* your mapping of instructions was faulty and possibly neglected
>some assembler directive that changed the assembler's context.
>(or, the "new"/old assembler was broken in some way)
>
>A port should yield the same binary. If you don't have the same
>binary, you don't have the same *product*.

How do you define the "same binary"? Is the gap between interrupt
vectors and program start filled with 0x00, 0xFF or left undefined?

>I.e., all of the
>assumptions/verifications you made on the preported version are
>now suspect. In a regulated industry, you would have to repeat the
>validation effort. Tell the guys at the FAA that this is the
>exact same SOURCE code as the previous validated version -- even
>though the binary is visibly different -- and see how accommodating
>they'll be!

>MAME tries to recreate various different hardware environments
>to host legacy video game code by emulating the various processors
>that were used (decades ago) on modern, faster commodity systems.
>There are similar "emulators".
>
>But, they only emulate the functionality of the code -- the EXACT timing
>of those instruction sequences isn't faithfully reproduced. (actually,
>I don't know if this is still true, today; making a cycle-accurate emulator
>is considerably harder than just reproducing basic functionality in a
>particular LARGE slice of time so the effort and MIPS required is
>higher)
>
><https://arstechnica.com/gaming/2011/08/accuracy-takes-power-one-mans-3ghz-quest-to-build-a-perfect-snes-emulator/>
>
>(see ~paragraph 5)
>
>Clearly, the emulated game (mentioned above) is *different* from the
>original game. A useful feature (for the player) has been lost due to the
>variation in timing between emulated instruction sequences and REAL
>instructions (on the original hardware).
>
>"<shrug> It's just a game..."
>
>This sort of problem is actually MORE acute in modern hardware -- because
>of all of the "acceleration" built into that hardware. If a source code
>sequence translates into a binary that takes a different amount of time
>to execute -- or, alters the physical positions of instructions/data -- then
>the code will execute differently.
>
>In a real-time system, timing differences can change scheduling decisions
>to favor one "task" over a task that may have been previously favored.
>A race that previously never manifested can suddenly "fail" every time!
>
>Changes in instruction/data placement can cause differences in cache
>utilization -- an "extra" line may be needed to hold something that
>previously "fit" into one fewer cache line. So, the time required to
>execute code changes because the cache's contents are no longer faithfully
>reproduced from their original form. Shifting a location across a
>page boundary can cause an extra page miss -- or, even thrashing if the
>code hops back and forth across that page boundary (which previously
>wasn't a factor in execution). Or, extra TLB misses to access "other"
>resources that had previously fit into the same page set.
>
>Note that we're not talking about *one* such mismatch but, rather,
>the potential for *many*. And, in many different (unexpected?)
>places. (if comparing binaries is hard, imagine how hard it would be
>to figure out where the "new" performance would have to be revalidated!
>
>If you're writing single-threaded desktop code, you'll likely never
>see a problem. But, if you're writing code that will run in an
>embedded/RT environment, all bets are off. Call it "version 2" and
>repeat the entire regression/testing suite.
--
Best regards,
Spehro Pefhany

Pages:12
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor