3 ms·
If you know even a modicum of assembly language you can grok 68K in under 20 minutes. It works exactly how you expect it to work. I want to load a register, I w
by justinlloyd 6y ago
If you know even a modicum of assembly language you can grok 68K in under 20 minutes. It works exactly how you expect it to work. I want to load a register, I want to loda a second register, I want to multiply them. The most remarkable caveat in 68K, that I can think of, off the top of my head, is "multiply and divide can be slow than you expect." Which is where the MMU or the x40 comes in.
The MSP430 is also a good learning processor, clean instruction set, not too much to take in at once, though there is mental overhead when you need to start being concerned with stack processing and also with some jump instruction limits.
- monocasa 6y ago> If you know even a modicum of assembly language you can grok 68K in under 20 minutes. It works exactly how you expect it to work. I want to load a register, I want to loda a second register, I want to multiply them. The most remarkable caveat in 68K, that I can think of, off the top of my head, is "multiply and divide can be slow than you expect." Which is where the MMU or the x40 comes in. Going to be real, I never liked the split A and D integer register files of the 68k. It always seemed like it would obfuscate one of the base ideas I want students to keep over thier lives. That it's all memory, whether it's 'data', or pointers, or instructions, it's all just bits in memory. Having to load into one part of the processor to use it as an offset seemed antithetical to that goal. > The MSP430 is also a good learning processor, clean instruction set, not too much to take in at once, though there is mental overhead when you need to start being concerned with stack processing It's got clean push and pop instructions, and R1(SP) an otherwise be accessed just like a normal register in the file. What are you thinking about there? > and also with some jump instruction limits. Yeah, I just stuck RAM and ROM within the limit on the emulated system they use so that doesn't come up.
- justinlloyd 6y agoI will agree that the split Address and Data registers are probably not the best architectural decision the desginers made. But in a pool of "be aware of these things", only having to deal with a half-dozen new concepts is a lot easier than the dozens of caveats and new concepts of many other processors. It is easier to teach "multiply is slow but this is how you do it" vs "here's a function you have to call, or need to write from scratch, to do a division." Regarding the stack processing, I mispoke; I was recalling a different CPU, whereby, given an address in the R(0), it is possible to execute an instruction at a different memory address than the one the PC is currently pointing at, effectively giving you a second PC, which was frequently used to execute a function without jumping to the function. The easiest way to describe that concept is a mix-in.
- monocasa 6y agoI totally agree that it isn't a big deal in practice. It's just antithetical to one of the major theses of the course, that there is no difference between pointers and other forms of data, but instead those are abstractions that mainly exist at a higher level. And lol, yeah, the execute indirect processors are super goofy and I wouldn't subject students to that right off the bat.