At least since 1985 but probably even before that i've been wanting to learn assembler coding. Several times i've started those tutorials and that's usually fine up until the point the placing of numbers and jumping to memory adresses starts off, and registers are mentioned.

Then there's not one tiny thing that makes any sense to me. Maybe its because i can't imagine why i'd want to go to a certain memory adress and place some value there, and go off doing the same somewhere else and then do calculations doing:

variable times variable

is variable if variable
is not variable or variable
else variable

....if i want to (for example) just want to have a little sinus scroller and a bouncing ball under some lousy c64 music tunes.

Now i get the binary number system, the decimal one and the hexadecimal one (everybody can go win+R <calc> right?) and i can understand the fact that maybe you store a bit of code here and there and then call it from someplace else but it's the translating of the end product i want into whatever it is you need to fill those adresses with values for.

So now, after more than 20 years of being to stubourn to ask the question and refusing to learn another language before i learn assembler, i give in to the discerning fact that i'm probably way to old to be an assembler coding kiddy and that if i don't ask someone now and learn the damned language i will never learn any language at all.

Help.

thanks.

best for 2005 to all y'all!
Posted on 2005-01-16 19:26:11 by deuZige
Here are some really good books that I used/am still using to learn assembly:
Assembly Language for Intel Based Computers
Assembly Language Step-by-Step
Posted on 2005-01-16 20:26:22 by DaRetard
Thanks, but i've tried those. Somehow they don't make things any clearer.

I still just seem to be putting numbers into places and not making pixels light up in a specific color or making the speakers beep in some tone or voice.

The link is so.... surreal.

Compare it to like the feeling you'd have when you want to skulpt a bronze statue and some one explains to you how the lockers at central station work.

I don't see the connection between a number or value in a memory spot or in a variable and moving things on screen and making sound exist.

But thanks for the suggestions, one of those i've allready got in my library so it's not the material i've got. At least i know th?t now..
Posted on 2005-01-16 20:49:51 by deuZige
Unfortunately, when you try to learn another computer programming language, you have to start by understanding the basics. You wouldn't expect to learn trigonometry without knowing how to add and subtract.

1985 is about the time I started with assembly. I probably was fortunate to start that on a TRS-80 where the number of possible instructions was less than 1000 and the total amount of memory was only 64Kb.

You may want to have a peek at the On-line HTML Edition of AoA (Art of Assembly) by Randall Hyde at:
http://webster.cs.ucr.edu/AoA/Windows/index.html

You may later download the entire tutorial in HTML or PDF format from the same link if you think it may help you get started.

Raymond
Posted on 2005-01-16 22:58:42 by Raymond
What you really need to understand is that anything that we do with a computer system is based on the values of data we manipulate. We must use numbers and data to represent conditions and such because that is the simplest way to represent what we are trying to do physically.

What I mean by physically is that whatever we do on the computer, it must be manipulated somehow in the real world... that is what the CPU, RAM and other things are for.

Unfortunately knowing the above doesn't help you do anything significant unless you know what values you are trying to manipulate and why.

What I suggest is practice programming in C and work your way down to hardware programming. At the same time, study electronic theory (I know an excellent introduction book called Basic Electronics) and work your way up to assembly. Hopefully the two will meet somewhere and you will start grasping the concept.

If the above doesn't work, then you are too much of an abstract thinker... just the way of the world man.
Posted on 2005-01-17 02:01:41 by SpooK
Or you could contact me by yahoo or email at bogdanontanu at yahoo dot com and i will teach you assembly step by step.

IF you are honest about learning it, from my experience you can learn the basics in about half of hour and you should know most of it after 1 (one) month. That is the ammount it took with other peoples that did not know anything else.

The rest is silence ... and your personal exploration...

BTW a pixel on screen is just a number (for example 0 is black and 0xffff is white in 65536 colores modes) at a certain address in RAM memory so by moving the 0xffff value one memory location higher one would make the pixel move to the right on screen! It is THAT simple!

The translation between plain numbers in RAM memory locations and the pixel you see on screen is done by the hardware that is usually known to users as the "video board" ;)
Posted on 2005-01-17 05:14:58 by BogdanOntanu
The enviroment or the context matter, also the "interpretation" :).


For example, I can say that all the physic can be explained thinking about communication, for example the force is a way of communication, if there no exist communication between objects there will no exist laws that explain them ;).



If you aply that to computers is somewhat similar, all in a computer are numbers, but with our interpretation at the time we are constructing a programm, we give models, we give the context and also the interpretation, the computer only executes and pheraphs others things.



For example:
Some data in the disck.. ok all is data in the disck.

A programm is data but this data have a structure, that structure is modelated by a human, also the interpretation is gived by the human and can be used when the loader loads the programm.

Also if the loader try for example load a programm for Linux it will not work, because is a diferent model for the same interpretation, even that is also a application...



Aplied to the screen, the screen can plot pixels and the interpretation used is also modelated by a human (in the factory...), but this models are the only one that the screen "can understand", you should pass the suficient information necesary for define the structure or model to the other device, in this case, you only pass numbers, but they for the screen mean a coordinate x and y and also a color :D.


Hope I dont mix muchs things ;).
Posted on 2005-01-17 10:37:55 by rea
Or you could contact me by yahoo or email at bogdanontanu at yahoo dot com and i will teach you assembly step by step.


Will do, as soon as i've got my house and my work back to nearly organized. Been having some gliches in the flow from one home to another and one job to another so i'm not really "free" to clear my mind and spend time learning stuff.


IF you are honest about learning it, from my experience you can learn the basics in about half of hour and you should know most of it after 1 (one) month. That is the ammount it took with other peoples that did not know anything else.

Yeah, i know i should be ashamed of myself for not having learnt it by now...

BTW a pixel on screen is just a number (for example 0 is black and 0xffff is white in 65536 colores modes) at a certain address in RAM memory so by moving the 0xffff value one memory location higher one would make the pixel move to the right on screen! It is THAT simple!


..... you're kidding right? I mean, if it's that simple how come nobody has ever explained it to me like th?t? You're the very first one to ever make any sense to me!


The translation between plain numbers in RAM memory locations and the pixel you see on screen is done by the hardware that is usually known to users as the "video board" ;)
video board? :? You mean VHS or BETAMAX?? :shock:

(just kidding)

I'm a 2nd line field service engineer and tinkering with computers since the VIC20 and C16....

But i never figured it was as simple as you've explained.....

And the same goes for sound? I mean, a value x in memory location y generates sound Z??

Thanks loads you all, i am beginning to think there might be hope for me yet!
The enviroment or the context matter, also the "interpretation" :).


For example, I can say that all the physic can be explained thinking about communication, for example the force is a way of communication, if there no exist communication between objects there will no exist laws that explain them ;).



If you aply that to computers is somewhat similar, all in a computer are numbers, but with our interpretation at the time we are constructing a programm, we give models, we give the context and also the interpretation, the computer only executes and pheraphs others things.



For example:
Some data in the disck.. ok all is data in the disck.

A programm is data but this data have a structure, that structure is modelated by a human, also the interpretation is gived by the human and can be used when the loader loads the programm.

Also if the loader try for example load a programm for Linux it will not work, because is a diferent model for the same interpretation, even that is also a application...



Aplied to the screen, the screen can plot pixels and the interpretation used is also modelated by a human (in the factory...), but this models are the only one that the screen "can understand", you should pass the suficient information necesary for define the structure or model to the other device, in this case, you only pass numbers, but they for the screen mean a coordinate x and y and also a color :D.


Hope I dont mix muchs things ;).


Sorry dude, all i got from this was "Woooosh" when it went over my head......
Posted on 2005-01-25 13:10:12 by deuZige
With sound it is not exactly the same but close

You either output to an sound board specific port or place in a memory buffer of the sound card a SEQUENCE of values. Basically each value represent the amplitude of the Speaker at a given time.

The sound board / device reads those values in sequence and it moves the headphones or the speakers. If the values change faster then the pitch of the sound is higher , if the values chnage slower then the pitch is lower (bass). If the numers are greater in value then the volume is bigger and if the numbers are smaller then the voume is lower.

The way the numnbers change (aka like a sinusoidal wawe or other forms of functions) represent the sound itself. (timbre)

Of course the sounds (linear sequences of numbers in time) could have been plain recorded via a microphone (and edite a little) or they can be generated mathematically by some rules (synthetizers)

If you have stereo then you have 2 sequences one for each speaker and so on for 4 speakers or 5.1 speakers.
Posted on 2005-01-25 19:14:01 by BogdanOntanu
Okay, if it was explained to me that way 25 years ago i'd be rich now!!

So how do i figure out where to put which values?
Posted on 2005-01-26 00:41:21 by deuZige
I'm somehow like you, instead of trying to listen I didn't read well and got bore and instead of study I prefer to play games. I'm like a year trying to learn,
and I couldn't realize all I tried to learn on past was that easy. I shall be praying for you as my gift and we're not perfect.
Posted on 2005-03-16 20:00:25 by Xor Stance
so long ! :shock:
Posted on 2005-04-27 20:12:58 by eleventh