![]() |
Re: Learn Programming - asm on arm
In short:
Quote:
|
Re: Learn Programming - asm on arm
Quote:
|
Re: Learn Programming - asm on arm
...I want to learn assembler, in order to understand how the machine works, then indeed, to make a little C stuff ! it's the main goal...
Some well commented assembler source code will provide you with much of what you want to know. Believe it or not, before I could afford a computer, I used to write Z80 assembler programs on paper. I made a little chart showing all of the registers, then I would manually execute the program using pencil and eraser. When I took my assembler class, the first programs we wrote were in machine language. All input was via front panel switches, output was by front panel lights. We would load the program into memory one instruction at a time, and then step to the next memory location. You only need to do a little of this to get the idea of how a cpu works. |
Re: Learn Programming - asm on arm
Quote:
Your quote on C is exactly right. C was designed to be a language for expert programmers. Unfortunately most people think they are experts. I have looked at a great deal of C code over my career, and I have to say that there is more crap out there then you would believe, including the code I wrote. |
Re: Learn Programming - asm on arm
Quote:
|
Re: Learn Programming - asm on arm
Quote:
|
Re: Learn Programming - asm on arm
Quote:
|
Re: Learn Programming - asm on arm
Quote:
|
Re: Learn Programming - asm on arm
I've programmed assembler on the ZX81 (Z80), C64 (6502/6510), Amiga (68000) (those for fun), for the 68HC11, PIC (16C74), and TI DSPs (c50) (for pay) and PPC (for school). I've spent a lot of time coding C for fun, school and work, too. And a smattering of other languages as well, from FORTH to Lisp.
Now? I write in MATLAB, and am learning Python. There is a golden rule: the right tool for the right job. Don't use ASM "just because". If you want to learn about the internals of CPUs, be aware that architectures are all different, and evolve. My 6502 assembler didn't prepare me for RISC, or the Harvard architecture of the PIC chips. What you learn for ARM today can't easily be carried over to i686, or the cell processor or DSP chips, or whatever the chip designers are dreaming of today. VHDL might be more useful! If your goal is to learn about to-the-metal computer programming, I recommend getting yourself an Arduino or maybe a Parallax Propeller kit. I've got myself the former and they're great fun. Programmable with very little ramp-up in C, and ASM if you dig a little. Dead easy to interface. If you want to write applications, start with Python, until you hit a performance or capability bottleneck. Then switch to C++ or C. If you want to learn about OS design, hit the books. Then learn C. Then look at the Linux source. Read more books. OS design is very complex and academic these days, and there are many difficult algorithms at play. |
All times are GMT. The time now is 20:50. |
vBulletin® Version 3.8.8