You are not logged in. Your edit will be placed in a queue until it is peer reviewed.
We welcome edits that make the post easier to understand and more valuable for readers. Because community members review edits, please try to make the post substantially better than how you found it, for example, by fixing grammar or adding additional resources and hyperlinks.
-
1That fits with something I remember. Well IIRC that is. What one would think should be one of the simplest and quickest operations, copy register A to B, was actually executed as Push A, Pop B. Apparently the registers had no internal path, so one of them had to be pushed onto the stack and popped into the other register. That said, I still like the assembly language of the 6809, even if the actual implementation of those instructions was less than ideal.RichF– RichF2018-08-01 05:40:32 +00:00Commented Aug 1, 2018 at 5:40
-
1@RichF - While you're correct that it's a surprisingly inefficient implementation, the MC6809 datasheet shows that TFR and EXG generate dummy bus cycles rather than stack accesses, suggesting the use of internal temporary storage of some kind.Jeremy– Jeremy2018-11-02 10:02:20 +00:00Commented Nov 2, 2018 at 10:02
-
5This is mostly wrong. 1) The 6809 did not have "a lot of" instructions, in fact considerably fewer than the 6800 (59 vs. 78). 2) It was not object-code combatible with the 6800. 3) Most opcodes were single-byte, with the usual additional bytes to specify data or addresses. 4) There was no microcode (it was perhaps the last of the combinational logic processors) and this was one of the reasons it often used fewer clock cycles per instruction than competitors.cjs– cjs2019-07-23 14:12:29 +00:00Commented Jul 23, 2019 at 14:12
-
1It did have a lot of addressing modes, and was generous in that most addressing modes could be used with most instructions -- in that sense, it had a lot of instruction+mode combinations.jonathanjo– jonathanjo2020-02-17 18:36:22 +00:00Commented Feb 17, 2020 at 18:36
-
"Basically for the same clock speed other processors executed the same program function faster and with less code" That could be true if you directly translated a 6800 program, instruction by instruction. But if you wrote the code FOR the 6809 then you could use fewer instructions. It was also much much easier to write a decent compiler for the 6809 than for the 6800, 6502, or z80. I was involved in writing a BCPL back end for 6809.Bruce Hoult– Bruce Hoult2023-03-17 00:27:52 +00:00Commented Mar 17, 2023 at 0:27
Add a comment
|
How to Edit
- Correct minor typos or mistakes
- Clarify meaning without changing it
- Add related resources or links
- Always respect the author’s intent
- Don’t use edits to reply to the author
How to Format
-
create code fences with backticks ` or tildes ~
```
like so
``` -
add language identifier to highlight code
```python
def function(foo):
print(foo)
``` - put returns between paragraphs
- for linebreak add 2 spaces at end
- _italic_ or **bold**
- quote by placing > at start of line
- to make links (use https whenever possible)
<https://example.com>[example](https://example.com)<a href="https://example.com">example</a>
How to Tag
A tag is a keyword or label that categorizes your question with other, similar questions. Choose one or more (up to 5) tags that will help answerers to find and interpret your question.
- complete the sentence: my question is about...
- use tags that describe things or concepts that are essential, not incidental to your question
- favor using existing popular tags
- read the descriptions that appear below the tag
If your question is primarily about a topic for which you can't find a tag:
- combine multiple words into single-words with hyphens (e.g. ms-dos), up to a maximum of 35 characters
- creating new tags is a privilege; if you can't yet create a tag you need, then post this question without it, then ask the community to create it for you