0-0 (updated to MOVS and self modifying code)
parsko
Posts: 501
Mike Green and Desilva have used this in misc code, mostly when looking up data in tables in Assembly code. I'd like to write to a table, and am trying to figure out what "0-0" is?
-Parsko
Post Edited (parsko) : 7/3/2008 2:16:34 AM GMT
-Parsko
Post Edited (parsko) : 7/3/2008 2:16:34 AM GMT
Comments
"0-0" is something that will be replaced by something else before that line is executed.
This is a notation that's been around for many years. I learned it 40 years ago.
Post Edited (Mike Green) : 7/3/2008 1:47:09 AM GMT
So, in this previous code, why is it used?
Yes, I'm trying to learn about the MOVS command now... I'm confused over where it's MOVS'n temp to, the source location of data? Aka, to these:
0000_0000 0000_0000 0000_000X XXXX_XXXX (the lower 9 bits)???
Thanks mike, I thought it was something like that.
-LUke
Parsko was born in '77!!!! That nomenclature has been in your head more than my head has been.
I worked for a calculator / accounting machine company for a year or so. They were just getting into drum memory computers and you had to do the same sort of thing. There was only an accumulator for a register (and a track select register). The next instruction was whatever happened to be under the read head when the CPU was in its fetch phase. You could switch tracks at any time and you could delay until the right instruction came up. Programming was as much timing diagrams as anything.
Does it matter what is in the <#>Value field (from MOVS Destination, <#> Value) in the example? Aka, can 0-0 be #16 or "W" and the instruction will still read $C0C1 from the table into "data"?
Thanks again. I think, after an answer from that last question, that I'll be good.
Drum memory computers? Us whipper-snappers must be lucky to have things like 2GB SD cards!
-Luke
This is very cool.
See attached example. It uses pin 12 for TV, which should be standard...
-Luke
I'll bet you've done some IBM 1130/1620 programming! IBM's usual notation for self-modified parameters was *-*, where "*" was shorthand for the current instruction address. Had Chip enabled the current instruction pointer "$" sooner, I suspect that $-$ would have caught on as the preferred notation for the Propeller as well.
-Phil
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
'Still some PropSTICK Kit bare PCBs left!