General > General Technical Chat
ASM programming is FASCINATING!
<< < (3/24) > >>
Benta:

--- Quote from: nctnico on July 27, 2020, 07:44:24 pm ---I recommend not to start with MIPS; this has a 1 delay slot in the pipeline which executes the instruction after a jump instruction. Other than that each architecture has its pros and cons.

--- End quote ---

To paraphrase Frank Zappa: "MIPS is not dead, it just smells funny."

KL27x:
If you want some guidance on basic practices, gotchas, and the finer points of MPLAB IDE as pertains to aiding in assembly programming, you might be interested in David Gooligum's PIC assembly tutorials.
NivagSwerdna:
I should have mentioned... there is a really nice set of videos on YT from Robert Paz (Sadly RIP now)

https://www.youtube.com/playlist?list=PLifLftIJFUm-gv-OQr_7WbsKdn3i6zdZD

These, although the IDE part might be slightly out of date, show Assembly on the Arduino Uno / AVR.... so if you want to explore that architecture it might be interesting.

It all depends... having breakpoints is always nice... that might affect your choice of platform.

PS
I haven't commercially written any assembler for decades... C compilers are too good!
Kleinstein:
ASM programming is still sometimes done with µCs. I does offer the advantage of a well defined run time. So those old days style waiting loops get accurate.

The AVRs can be a good starting point. The AVR studio dev. environment has a relatively nice simulator. So one can do the first tries even without real hardware. It also helps with debugging.
MK14:

--- Quote from: Kleinstein on July 28, 2020, 12:09:40 pm ---I does offer the advantage of a well defined run time. So those old days style waiting loops get accurate.

--- End quote ---

With the rather old processors/architectures, your are right. The odd modern one, here and there can be an exception as well (e.g. XCore).

But, unfortunately, with processors beyond a certain level of complexity (superscaler, data/instruction caches, branch Prediction Speedup Things, some pipelines (especially long ones),  https://en.wikipedia.org/wiki/Out-of-order_execution  , etc), they become no longer fully/really predictable, as regards 100% precise timing, of small program structures. Even if it is written in pure assembly language.
E.g. It *might* be in the cache and/or branch speed up mechanism and/or be able to do multiple-instructions this machine cycle (depending on various factors, including clashing register usage etc).
Plus complications because of pipelines, I.e. it is almost instantaneous, because the pipeline allows it, or the pipeline has to be flushed, etc etc.
Disclaimer: The above paragraphs were written quickly and may have small (or bigger) technical inaccuracies. If you are really interested in this stuff, there is some good/interesting stuff (books and good internet stuff) out there.
Navigation
Message Index
Next page
Previous page
There was an error while thanking
Thanking...

Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod