+Random Terrain Posted April 7, 2011 Share Posted April 7, 2011 I require unique, dumbed down definitions that I can legally use on Atari 2600 assembly language related pages. The first definition is for the word operand. All of the definitions I have found so far are too wordy or overly complicated (using fancy college words). Can somebody provide a definition that is simple, clear and as short as possible without being vague? (It might help to provide a simple example too.) If you have any other good definitions that I might need for other words I'll probably run into, feel free to post them too. Thanks. Quote Link to comment Share on other sites More sharing options...
+save2600 Posted April 7, 2011 Share Posted April 7, 2011 (edited) Operand - the quantity on which an operation is to be done. In other words, an operand may simply be a variable in an equation. No college words there http://en.wikipedia.org/wiki/Operand ...going on 16 years of living in WI now, I consider myself a master at dumbed down communication. Edited April 7, 2011 by save2600 2 Quote Link to comment Share on other sites More sharing options...
ScumSoft Posted April 7, 2011 Share Posted April 7, 2011 (edited) Wouldn't the very first line explain it all? "an operand is the part of a computer instruction which specifies what data is to be manipulated or operated on, whilst at the same time representing the data itself" If you believe this is too wordy read it out loud, you should take a breath at the comma and at no other time (except before reading it of course) Operand - the quantity on which an operation is to be done. In other words, an operand may simply be a variable in an equation. Using "In other words" is a re-explanation and therefore redundant. Edited April 7, 2011 by ScumSoft Quote Link to comment Share on other sites More sharing options...
+Random Terrain Posted April 7, 2011 Author Share Posted April 7, 2011 Thanks for the replies. Things like "the quantity on which an operation . . ." reminds me of the following video clip: www.youtube.com/watch?v=WbLAt2Hc7Rw http://www.youtube.com/watch?v=WbLAt2Hc7Rw&rel=0&fmt=35 The average person reading this post probably understands what every word from the video means: arebetween consists continuously corresponding curve draws variation graph if isolated known making only often with one points relation set table values variables But knowing those words doesn't mean the average person will be able to understand the quote from the video: "If the known relation between the variables consists of a table of corresponding values, the graph consists only of the corresponding set of isolated points. If the variables are known to vary continuously, one often draws a curve to show the variation." (Basic College Math, M. Michael Michaelson, 1945) This stuff also reminds me of the following from the book How to Write Better in One Hour by George Mair: . . . an engineer might call something: A solid-state barrier access plane activating system In plain language, he means a doorknob. One of the world's great tap-dancers wrote a book about this kind of filter. In it, this tap dancer talks about the threat of clarity. He says that language is used by high priests, lawyers, critics, and government employees to conceal meaning instead of passing along an idea. This special jargon not only covers up meaning and keeps outsiders from knowing what's happening, it gives the writer or talker an elite status. This tap dancer, for example, dares any doctor to explain the difference between saying, "a newborn child" and saying, "neonate." The famous tap dancer is also a former U.S. Senator and one of the leading scholars on language in the country. His name is S. I. Hayakawa. So what I'm looking for isn't just words that most people understand, I'd also like the order of the words to make sense without the reader needing to spend an hour trying to decipher it. In other words, I'd like every "solid-state barrier access plane activating system" turned into "doorknob." Quote Link to comment Share on other sites More sharing options...
toiletunes Posted April 7, 2011 Share Posted April 7, 2011 I don't know what this is for, but I look forward to the result. Quote Link to comment Share on other sites More sharing options...
GroovyBee Posted April 7, 2011 Share Posted April 7, 2011 (edited) An operand is the "data" part of an assembly language instruction. It could be contained in the instruction itself, a register an address or an immediate value. Registers and addresses can be a source (to read from) or a destination (to write to) for data, whereas immediate values are only a source of data. Maybe an example of each would explain it more? Edit: I forgot to add that there can be one or more operands per assembly language instruction. Edited April 7, 2011 by GroovyBee Quote Link to comment Share on other sites More sharing options...
eshu Posted April 7, 2011 Share Posted April 7, 2011 This is definitely not a case of language being used to conceal meaning - it is simply a case that plain language is not always suited to explaining abstract concepts, or at least the reader is not used to having it used as such. In the engineer example he is describing the abstract concept of a doorknob without reference to a door or a knob, since you know what a door,a knob and a doorknob are it seems far simpler to call it that, but what if you didn't? It sounds like your needs will best be suited by using an example - how about: An operand is the thing which an operation is being carried out on, let's take the simple example of adding one to a variable in basic: A=A+1 The operation is adding one, and the operand is A - the thing which is having one added to it. Quote Link to comment Share on other sites More sharing options...
RevEng Posted April 8, 2011 Share Posted April 8, 2011 This is definitely not a case of language being used to conceal meaning I'm gonna go with eshu on this one. Jargon tends to be formed for two reasons: 1. People want to inflate the importance of what they're doing, or obfuscate it, as stated in the example.2. People are tired of saying a long phrase repeatedly, so they replace it with word that means the same thing as the long phrase. "Operand" is an example of reason #2. So is "doorknob", but you're already hip to the fact that doorknob means a "the thing you can turn with your hand to release the door latch". Jargon for the reason of #2 is actually a learning aid, so long as the jargon definitions are available. The existence of a jargon word queues the reader that the concept is repeated, so it should be well understood. It also condenses the amount of reading required too, as a bonus. I'm gonna go on a limb and say that Andrew's tutorials have no examples of jargon for reason #1. Proving clear definitions for jargon up front will help your cause RT, but if you try to remove the jargon from the body of the text you'll be hurting your cause. There may be phrases that can be worded more clearly, but that's a separate issue from jargon. Quote Link to comment Share on other sites More sharing options...
+grafixbmp Posted April 8, 2011 Share Posted April 8, 2011 (edited) If you want your readers to understand what is meant when saying "operand", it should mean finding a simple definition that explains what is going on with an example then relating that definition to the jargon word that is commonly used, covers both avenues. Understanding what is going on and supplying one word that labels the concept. That word being agreed upon by the general consensus. I got one for ya: (j/k)an Operand is the part of a computer command that is worked on and becomes the result of the command. Example: A=A+1 In the example, the + represents the command or opcode being done The A is the operand it is done to. And the 1 is the operand it is done with. Edited April 8, 2011 by grafixbmp Quote Link to comment Share on other sites More sharing options...
Ed Fries Posted April 8, 2011 Share Posted April 8, 2011 Maybe you could compare it to nouns and verbs? The operator is the verb (for example load, store, shift) and the operand is the noun (the A register, the number 5, the memory location 17). Together they make a sentence. The only thing that's weird is on the 6502 (not some other assembly languages) the opcode actually defines both an operator and an operand. So, for example LDA #3 means Load 3 into the A register. Both 3 and A register are technically operands. -EdF Quote Link to comment Share on other sites More sharing options...
+grafixbmp Posted April 8, 2011 Share Posted April 8, 2011 Maybe you could compare it to nouns and verbs? The operator is the verb (for example load, store, shift) and the operand is the noun (the A register, the number 5, the memory location 17). Together they make a sentence. The only thing that's weird is on the 6502 (not some other assembly languages) the opcode actually defines both an operator and an operand. So, for example LDA #3 means Load 3 into the A register. Both 3 and A register are technically operands. -EdF Then, would it be typical when 2 operands are present as such, one of them will change and the other will not? The one changing being what is looked for? Quote Link to comment Share on other sites More sharing options...
+Random Terrain Posted April 8, 2011 Author Share Posted April 8, 2011 (edited) This is definitely not a case of language being used to conceal meaning I'm gonna go with eshu on this one. Jargon tends to be formed for two reasons: 1. People want to inflate the importance of what they're doing, or obfuscate it, as stated in the example.2. People are tired of saying a long phrase repeatedly, so they replace it with word that means the same thing as the long phrase. "Operand" is an example of reason #2. So is "doorknob", but you're already hip to the fact that doorknob means a "the thing you can turn with your hand to release the door latch". Jargon for the reason of #2 is actually a learning aid, so long as the jargon definitions are available. The existence of a jargon word queues the reader that the concept is repeated, so it should be well understood. It also condenses the amount of reading required too, as a bonus. I'm gonna go on a limb and say that Andrew's tutorials have no examples of jargon for reason #1. Proving clear definitions for jargon up front will help your cause RT, but if you try to remove the jargon from the body of the text you'll be hurting your cause. There may be phrases that can be worded more clearly, but that's a separate issue from jargon. I probably should have stopped typing from the book right after the doorknob part. Although some people use jargon in various fields to conceal meaning or to hide how stupid they really are or to feel special and keep unworthy people out of the 'club,' I'm not saying that Andrew Davie did any of that. I'm talking about what I found when I went Googling for definitions. I usually found a rat's nest of unnecessary words or combinations of perfectly understandable words that were magically turned into vague, incomprehensible mush, but not a lot of jargon. As I said, I should have stopped typing before I got to the jargon part. I should have known that would become the focus instead of what I really wanted to focus on, which is finding definitions that are as concrete and concise as possible. I'm just adding definitions for certain words and phrases that Andrew Davie used that a newbie may not know (just as you'd find on the bB page). For example, click on the link below and move your mouse pointer over the words warm boot that have the dotted underline: http://www.randomterrain.com/atari-2600-memories-batari-basic-commands.html#reboot A definition should have popped up when you did that. That's what I'm doing for some words and phrases in the Andrew Davie sessions. Thanks to everyone for the replies. I see that many definitions have been posted. I'll go over them and see which one I think is the most newbie friendly. If one doesn't tickle my brain, maybe I can combine two or more into the ultimate definition. Edited April 8, 2011 by Random Terrain 1 Quote Link to comment Share on other sites More sharing options...
ScumSoft Posted April 8, 2011 Share Posted April 8, 2011 Then I would suggest something along the lines of: Operand: "Instruction parameters also instructions themselves" Quote Link to comment Share on other sites More sharing options...
RevEng Posted April 8, 2011 Share Posted April 8, 2011 ...Although some people use jargon in various fields to conceal meaning or to hide how stupid they really are or to feel special and keep unworthy people out of the 'club,' I'm not saying that Andrew Davie did any of that. I'm talking about what I found when I went Googling for definitions. Ok, soapbox removed. My operand definition, with a bonus definition thrown in... Operand: the part of an assembly language instruction that indicates what is being worked with. An instruction may have zero or more operands. Opcode: the part of an assembly language instruction that indicates what kind of action is being taken. Ed is definitely right. In 6502/7 assembly the opcode does have an operand fused to it, but I think we can skip that detail for definition purposes. 1 Quote Link to comment Share on other sites More sharing options...
+Random Terrain Posted April 8, 2011 Author Share Posted April 8, 2011 Besides what has been posted in this thread, here are some definitions that are better than others I've seen while Googling: http://www.webopedia.com/TERM/O/operand.html In all computer languages, expressions consist of two types of components: operands and operators. Operands are the objects that are manipulated and operators are the symbols that represent specific actions. For example, in the expression 5 + x x and 5 are operands and + is an operator. All expressions have at least one operand. http://www.smartcomputing.com/editorial/dictionary/detail.asp?guid=&searchtype=&DicID=18416&RefType=Encyclopedia operand/operator Computer languages are built on expressions (combinations of symbols and character strings). Expressions have two components: operands and operators. These together can sometimes look like an equation. Operands are the variables, numbers, values, or objects that are being manipulated; they’re also where the data is stored in computing instructions. Operators indicate particular actions. For example, if y - 10 is an expression, y and 10 are the operands and the minus sign (-) is the operator. Each expression has at least one operand and one or more operators. The expressions that are made up of operators and operands are used in programming languages, database systems, and spreadsheet applications, among others. 2 Quote Link to comment Share on other sites More sharing options...
RevEng Posted April 8, 2011 Share Posted April 8, 2011 ... All expressions have at least one operand ... I'm going to say that NOP has no operand. The PC advances, but it's not the purpose of the command so much as a side-effect. I'm also going to say that MOS Technology agree with me. If there's "No OPeration", how can there be an operand? Quote Link to comment Share on other sites More sharing options...
ScumSoft Posted April 8, 2011 Share Posted April 8, 2011 I'm going to say that NOP has no operand. The PC advances, but it's not the purpose of the command so much as a side-effect. I'm also going to say that MOS Technology agree with me. If there's "No OPeration", how can there be an operand? Like this! NOP #0 YAY! What do I win? Quote Link to comment Share on other sites More sharing options...
RevEng Posted April 8, 2011 Share Posted April 8, 2011 Like this! NOP #0 YAY! What do I win? You win if you can tell me what operation is being performed on the operand. ... All expressions have at least one operand ... Looking at the line again i see its referring to expressions rather than instructions. Expressions are more of a higher level language construct, and the best definition i can think of for an expression in assembly would be "an instruction or instructions with operands" So i guess the statement is true, but I don't think it adds much to the reader's understanding. Quote Link to comment Share on other sites More sharing options...
Omegamatrix Posted April 8, 2011 Share Posted April 8, 2011 Like this! NOP #0 YAY! What do I win? :!: Illegal opcode. The authorities are on their way. Back away from the keyboard and remain still. Quote Link to comment Share on other sites More sharing options...
ScumSoft Posted April 8, 2011 Share Posted April 8, 2011 (edited) You win if you can tell me what operation is being performed on the operand. NOP = do nothing, waste 2 cycles NOP #0 = do nothing, waste 2 cycles and an extra byte NOP VSYNC = do nothing, waste 3 cycles and an extra byte NOP.w = do nothing, waste 4 cycles and 2 extra bytes All of the above are the same as: X = X But vary in cycles used and space taken. So, "I yam what I yam" is the answer. Edited April 8, 2011 by ScumSoft Quote Link to comment Share on other sites More sharing options...
eshu Posted April 8, 2011 Share Posted April 8, 2011 A lot of the illegal NOP's don't actually do nothing - that's just the most common use for them, but because they put something on the data or address buses you can use them in an operation...for instance if you want to preserve all registers in a bankswitch you can NOP $1FF8 (or whatever hotspot you are using) Quote Link to comment Share on other sites More sharing options...
Omegamatrix Posted April 8, 2011 Share Posted April 8, 2011 You win if you can tell me what operation is being performed on the operand. NOP = do nothing, waste 2 cycles NOP #0 = do nothing, waste 2 cycles and an extra byte NOP VSYNC = do nothing, waste 3 cycles and an extra byte NOP.w = do nothing, waste 4 cycles and 2 extra bytes All of the above are the same as: X = X But vary in cycles used and space taken. So, "I yam what I yam" is the answer. You have to be careful though. For example if you were writing a standard 8K game, NOP $FFF9 would trigger a bankswitch from bank 0 to bank 1. Illegal nops of this kind are often used to bankswitch because it preserves the flags in the status register. Quote Link to comment Share on other sites More sharing options...
RevEng Posted April 8, 2011 Share Posted April 8, 2011 You win if you can tell me what operation is being performed on the operand. NOP = do nothing, waste 2 cycles NOP #0 = do nothing, waste 2 cycles and an extra byte NOP VSYNC = do nothing, waste 3 cycles and an extra byte NOP.w = do nothing, waste 4 cycles and 2 extra bytes All of the above are the same as: X = X But vary in cycles used and space taken. So, "I yam what I yam" is the answer. Meh. You've given two answers - that it does nothing and it's an identity assignment. Which is the operation on the operand? Offer expired! (I was originally thinking on the bus level, but it's all good. ) Quote Link to comment Share on other sites More sharing options...
ScumSoft Posted April 9, 2011 Share Posted April 9, 2011 So operands dictate what the operation instruction does, and so nop acts as operand only when passed a value. Otherwise it does nothing but waste cycles and bytes. It does both nothing and something depending on how you talk to it, but it's purpose in life is to take up space and waste time Quote Link to comment Share on other sites More sharing options...
toiletunes Posted April 9, 2011 Share Posted April 9, 2011 Getting back to the original question... as a programming noob, post #15 made the most sense to me. +1 for RT. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.