![]() |
|
#1
|
||||
|
||||
Assembly LanguageI wanted to learn assembly language. So, could anyone provide me the starting source for it-Assembler to be used, any good links for tutorials
__________________
Gravitation is not responsible for people falling in love. -Albert Einstein |
|
#2
|
||||
|
||||
Re: Assembly Language__________________
Start Programming with Python-A beginner's guide to programming and the Python language. ------------- Common Sense v2.0-Striving to make the world a little bit smarter. |
|
#3
|
|||
|
|||
Re: Assembly LanguageI'd probably recommend starting with a very simple assembly language for a simple processor type. The x86 world is CISC, which means "complex instruction set computer." They don't say the "complex" part for nothing. Granted, anyone with a PC (nearly everyone posting on a forum such as this) can participate, but it is a very complicated choice compared to a RISC-based system (reduced instruction set computer).
You may want to consider SPIM. http://pages.cs.wisc.edu/~larus/spim.html It is a RISC simulator. One of the good things about it (other than being free) is that if you hose up your code, it is extremely unlikely to crash your computer...whereas hosing up PC assembly can very easily bring the system down. However, if you are intent on using PC/x86 assembly, you may want to consider using a lowly, old Win9x style box for it. You definitely do not need a lot of speed for most of what you'll want to learn about it. You can choose to run http://bochs.sourceforge.net/ for PC emulation, which will help keep you from crashing your system if you don't have a spare "box" laying around collecting dust. My personal recommendation for PC-based learning is that you start with as lowly of an x86 as you can lay your hands on, whether emulated or not, and work up from there. It is especially valuable to learn the 8086 side of the "house" and how the 80386 expanded (dramatically) that world. You can use a '386 to accomplish just about anything that is "modern" in terms of fundamental operating system features that correspond to what the processor provides. A very simple RTOS that is freely available is http://prex.sourceforge.net/. Its 386-centric path will take you well into how the i386 works. Part of the notion of learning an assembly language is "why?" What use or value is it to you? How do you want to use it? If some of these answers tend to suggest a PC target for the code, then you may want to start with the PC. I think that Borland makes a version of Turbo Assembler available for free...but maybe not. At any rate, you can easily write assembly using the freely available GNU tools. If you want to run them on a Windoze PC, I recommend using http://www.cygwin.com/. It is easy to install the "binutils" (binary utilities) that includes "as" (or gas), which is the GNU Assembler. These tools are free and easy to download, install and update/modify. The GNU tools also support the notion of building cross assemblers should that ever be of interest to you. If you want to learn assembly, I often recommend getting a low-cost evaluation board and tool set from a microcontroller manufacturer. They often give them away for free by just asking. For example Renesas makes a "H8 Tiny" board that they call a "Board in a Bag" that is a nifty little board that has an incredible amount of functionality. One of the good things about it is that it is CISC, but the instruction set is relatively limited making it more RISC-like...which is easier to use. It is also "big endian," which I think is a cleaner representation of byte ordering for newcomers. There are dozens of other choices, if not hundreds. Again, no one even needs a "board" since there are so many emulation/simulation environments available. However, it is fun to have one, because once you do something that makes it do something, there is a sense of satisfaction in making it work that is quite removed from doing something on a PC, which tends to be rather ubiquitous. I once told someone that it wasn't a very challenging stretch of the imagination for someone to be able to run something on an PC using Linux, particularly since PC Linux was, at that time, very well advanced from its earlier days of residing source and binary on a single 1.44MB floppy disk. The point being that x86 is somewhat passe in terms of supporting operating systems environments. It is, to me, much more fun to take a new processor and/or a new board and breathe life into it for the first time. Granted, some of these activities may be more than what you're looking to do and do not necessarily involved just assembly language programming. :davis: |
Recent GIDBlog
US Elections and the ?Voter?s Responsibility? by crystalattice
| Thread Tools | Search this Thread |
| Rate This Thread | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Assemblers & assembly language | BlueFireCO. | Assembly Language | 2 | 26-Mar-2007 10:56 |
| Assembly Language Forum | ktm | Assembly Language | 2 | 27-Feb-2006 13:41 |
| which language ? | onauc | C++ Forum | 2 | 19-Nov-2004 03:53 |
| Inline Assembly language | mikhail | Assembly Language | 7 | 22-Mar-2004 10:06 |
Network Sites: GIDNetwork · GIDWebHosts · GIDSearch · Learning Journal by J de Silva, The