|
|
|||||||||
|
|||||||||
| |||||||||
|
|
|
| |||||||||
![]() |
|
|
«
Previous Thread
|
Next Thread
»
|
Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
#16
|
||||
|
||||
|
Probably not I have a pretty big ego
. Oh and everyone, I can also be arrogant lol .That said, your experience of not getting anything from it doesn't necessarily mean there's nothing to be gained, no experience to be had etc. I would have to look into it closer but my standing point is still that if you programmed in machine code directly the experience gained would make you a better assembly programmer, even if the only things you learned were patience and concentration. Any insight into the architecture can be useful for assembly programming but whatever insight you find would of course be entirely up to you. Have fun bro ,Mark. |
|
#17
|
||||
|
||||
|
Fasm
i suggest you use the flat assembler which can be acquired from www.flatassembler.net unlike other laguages assembly is different because every assembler has a different syntax only similarities you can count on are cpu registers and mnemonics and some other basic stuff. so you ought to go with an assembler which is still "alive" and has lots of resources available. there are a few beginner tutorials on the site and a fair few examples. The forum on the site is also fairly good (my account name is calpol2004 there also btw) if you need help. if you wanna code machine code... the assembler is open source you should take a look on how it does it... though it would probably give you a headache.
Last edited by calpol2004 : February 25th, 2006 at 05:28 PM. |
|
#18
|
|||
|
|||
|
Quote:
Not so. I've had a few jobs where they paid me to write object code ![]() |
|
#19
|
|||
|
|||
|
Quote:
I agree with what I think you are saying, Mark. There is a level below the assembler, and there's a level below that level, at least on the systems I'm familiar with. The main point you make, which I think bears repeating especially today when so many people have absolutely no idea what happens between their source code and the hardware, is that everything you learn about the hardware and the operating system, and the way your code is compiled or interpreted, makes you a better programmer. And you will never ever achieve "true enlightenment" until you can look at your source code and envision the underlying executable. Your analogy of the mechanic's knowledge as it relates to driving is very good, indeed. Today, when scripting languages are more and more common and bad programming practices have no practical ill-effects because of the high-performance of even cheap hardware, it's easy to overlook that most people haven't a clue about what's really going on. Back to the issue of writing object code (machine language): For one thing, it's not necessarily true that a given assembler will support all of the opcodes available on a given processor. When that happens, you can either write object code directly or you can hack it from the assembler, either by writing macros or using some other construction. It's common for software that's written in assembler to be patched using object code because people just get familiar with it enough that assembling a fix isn't worth it. I've serviced large systems written in assembler and I've always written object code and never assembled a single fix. Below object code there is microcode. Some instructions have an interface of a single opcode but in fact they're implemented as an actual program written in another assembler-like language that most people never see or hear about. This was true in the old days, maybe it's not any more. I haven't seen a microcode program listing in twenty years ![]() |
|
#20
|
||||
|
||||
|
Intel uses a microcode on all their processors because they won't make an incompatible change to their machine code, since the processors are now RISC and the instruction set CISC.
As for learning machine code, what you say is interesting, that it's easier to hack on with it sometimes, but I can only see it being much use if you're looking to modify a program while it's running, not a common task. Anything you can learn from machine code can be done without actually writing machine code. E.g. I know about the branch prediction and how to optimise for it without having written a line of assembler. this is what the LIKELY() macro is for, for example. Whatever floats your boat, but it's nothing a good assembler book can't teach you, IMO.
__________________
~James [Not currently seeking freelance work] Like philosophy or interested in spirituality? Philosophorum. Game Dev Experts Forums Foresight Linux - Because your desktop should be cool! Linux FAQ FedoraFAQ UbuntuGuide |
|
#21
|
|||
|
|||
|
Quote:
I gave an example of where people are writing object code regularly: (and getting paid for it!) when you write software in assembler, it's customary to write object code fixes for distribution. This is not modifying a program while it's running- it's a standard way to deliver service (patches/fixes/maintenance.) And if the assembler doesn't support the opcodes, then "a good assembler book" isn't going to help. And there are many aspects of optimizing performance that are not covered in any assembler book. What helps if you really want to understand your system, is to learn what's going on in the processor and peripherals. That's what we do. |
|
#22
|
|||
|
|||
|
Quote:
Assembler is the least portable language there is. There is no generic assembler- if you don't have the hardware (or an emulator or simulator) you can't learn it. So you're really asking about assembler for x86 Intel? And asking if there's a good website about most languages can work, because the language is relatively the same no matter which platform it runs on. C++ is always C++, etc. The higher level the language, the more this is true (Java, PHP, etc.) But with assembly, asking if there's a good site on assembly is like asking if there's a good site on programming There are many good sites, but we have to know what you want to learn! |
![]() |
| Viewing: Dev Shed Forums > Programming Languages - More > Other Programming Languages > Is there a good website about assembly? |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|
|
|