Jump to content

Talk:Assembly language: Difference between revisions

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia
Content deleted Content added
→‎Immediate encodings: reverted, doesn't belong here, but please consider contributing to the x86 architecture article
Line 115: Line 115:


: I reverted this change. You are describing the underlying machine language of x86, not assembly language. The ModR/M byte details, etc., aren't part of and are not reflected in the assembly language. You could however see if the x86 architecture article could use this material. [[User:Jeh|Jeh]] ([[User talk:Jeh|talk]]) 18:14, 13 August 2009 (UTC)
: I reverted this change. You are describing the underlying machine language of x86, not assembly language. The ModR/M byte details, etc., aren't part of and are not reflected in the assembly language. You could however see if the x86 architecture article could use this material. [[User:Jeh|Jeh]] ([[User talk:Jeh|talk]]) 18:14, 13 August 2009 (UTC)

: Hm, maybe there should be a section approaching the architecture of the assembler itself? This article describes the different language, and so I thought I'd put an example, but I forgot about the assembler part! Alright, I'll see what I can plug around in the x86 article.

Revision as of 21:45, 13 August 2009

WikiProject iconComputer science B‑class High‑importance
WikiProject iconThis article is within the scope of WikiProject Computer science, a collaborative effort to improve the coverage of Computer science related articles on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
BThis article has been rated as B-class on Wikipedia's content assessment scale.
HighThis article has been rated as High-importance on the project's importance scale.
Things you can help WikiProject Computer science with:

Pronunciation

Can you add the pronunciation of assembly? In particular, assembly as in light or as in literature? And where is the stress? Assembly or assembly? Thanks--Stemby (talk) 10:43, 17 June 2008 (UTC)[reply]

It's IPA: /əˈsɛmb.lɪi/. See Wikitionary. —Ben FrantzDale (talk) 12:09, 17 June 2008 (UTC)[reply]

In "See also" section the point "List of assemblers" linked to Comparison of assemblers! And where the link to MACRO-11 should be added? --Tim32 (talk) 19:20, 22 June 2008 (UTC)[reply]

Syntax section

Since this section has to deal mostly with x86 assembly language, I suggest that it be moved there. ( rCX (talk) 03:59, 4 July 2008 (UTC) )[reply]

I moved it. rCX (talk) 00:57, 23 July 2008 (UTC)[reply]

FAQ

The representation in here does it refer to the hexadecimal address that machines use, such as when Blue Screen of Death error, they consists of a particulara hardware address in hexadecimal form. (I have very little macros programming foundation.)

This representation is usually defined by the hardware manufacturer, and is based on 
abbreviations (called mnemonics) that help the programmer remember individual instructions, 
registers, etc

By the way some interpreter use to translate XML documents according to XML schema, are they consider assemblers?

--Ramu50 (talk) 03:24, 13 July 2008 (UTC)[reply]

This is mostly OT, but I can't stand to let a question on BSODs go unanswered. :) In most blue screen messages, one or more of the hex numbers you see are virtual addresses, and often one of them will be the virtual address of an instruction. If you could look in memory at that address you would find the numeric (usually displayed in hex) coding of the actual instruction (or "opcode"). The blue screen however never displays the instructions themselves, only their addresses. The documentation that comes with the Windows Debugging Tools will tell you all about how to interpret blue screen data. The debugger can of course display the hex coding for the instructions and can also "disassemble" them, turning them back into assembly language mnemonics. There is a decent quick tutorial on using the debugger here: [1]. If you want to know more than most of us need to know about how Intel x86 instructions are encoded, download the three volumes of "IA32 Architecture Software Developer's Manual" from the Intel site, particularly volumes 1 and 2. You don't need to know the instruction coding in depth unless you're writing a compiler, an assembler, a debugger, or the microcode for the CPU itself, but it helps if you understand the general principles and if you can recognize a few common patterns. I can also highly recommend Matt Pietrek's articles from MSJ, "Just Enough Assembly to Get By", for a look at how the x86 instruction set is actually used by everyday code. There's nothing there on how the instructions are coded into hex, though, only on the assembler mnemonics.

I never heard of an XML interpreter called an assembler - they're usually called interpreters, or some more specialized name depending on their function. Jeh (talk) 08:02, 16 July 2008 (UTC)[reply]


-- Fasmlib keeps cropping up throughout wikipedia Assembler articles ---

Seems to me the author of Fasmlib is quietly seeking to advertise his product through wikipedia. Fasmlib isnt even a working product as far as I can tell, nor is it unique in what it attempts to deliver ( Randolph Hyde has done a similar, yet complete work in the past ). —Preceding unsigned comment added by 217.42.215.104 (talk) 21:45, 16 November 2008 (UTC)[reply]

Ext links (Absolute Begineers guide to assembly language

Hi MrOllie. I'm publishing (with permission) Doug Dingus' comprehensive guide to Assembly Language for the Absolute Begineer. Not trying to sell anything, but I think it would be a valuable external resource that goes into detail beyond what would be appropriate for an article. This is inline with the External Link guidlines. —Preceding unsigned comment added by Nmcclana (talkcontribs) 02:07, 18 February 2009 (UTC)[reply]

You're publishing? Please do not add links to your own site. See WP:EL and especially WP:COI. - MrOllie (talk) 15:42, 18 February 2009 (UTC)[reply]
This EL doesn't promote anything other than a better understanding of assembly language. And linking to an article you've reprinted doesn't qualify for automatic deletion. MrOllie thinks an EL to 'Assembly Language for the Absolute Beginner' is spam, a COI, and requires deletion without discussion. I think it is a useful guide for someone who would read about assembly language and want to learn more. Any other opinions? --Nmcclana (talk) 19:16, 18 February 2009 (UTC)[reply]
Quoting WP:EL - 'In line with Wikipedia policies, you should avoid linking to a site that you own, maintain, or represent — even if WP guidelines seem to imply that it may otherwise be linked.' - MrOllie (talk) 19:26, 18 February 2009 (UTC)roza is a bitch[reply]

one pass / two pass assemblers

as per this edit that was reverted [2], I think it would add something to have a brief description of one pass vs two pass assemblers. I know what they are, but don't have any references at the moment (although I'm sure I could find some). However, I have not heard of "Jove" pass assembly? Does anyone know what this is? --stmrlbs|talk 18:30, 3 June 2009 (UTC)[reply]

I've never heard of a Jove pass assembler either. A Google search does not turn up anything likely. Shouldn't be too hard to find sources on one and two pass assembers, though. —Preceding unsigned comment added by Yworo (talkcontribs) 19:22, 3 June 2009 (UTC)[reply]
well, it was a bit harder than I thought to find a reference. I found a lot of interesting class notes, each with a little different interpretation. However, I don't think class notes are RS. But, I put in a brief description of the basic types of each, and the main differences. I think currently, the 2 kind of blend into each other because of more sophisticated one-pass assemblers, which build tables which allow them to plug in addresses that are forward referenced. But, imo, this is hazy as to whether it is a one-pass or a two-pass or something in between. Plus, they have multi-pass assemblers, however that is just more passes to do more sophisticated processing of the source. I left that out as I think just a basic definition will do for this article.

However, if anyone feels that they can improve it.. be bold!! --stmrlbs|talk 02:37, 4 June 2009 (UTC)[reply]

Manuals, etc.

The list of manuals, tutorials, etc. seems too long. I would argue that only links to sites/pages which are about assembly language in general should go here. Links for specific assembly languages for specific machines or chips belong on the article about that machine or chip. —Preceding unsigned comment added by Yworo (talkcontribs) 23:06, 9 June 2009 (UTC)[reply]

I'd also propose that we link to the Open Directory page at http://www.dmoz.org/Computers/Programming/Languages/Assembly/ Wikipedia can never be a complete directory to pages about every assembly language and we should not try to be. A link to Open Directory will give the read a much better overview and categorization of assembly languages.

separate Manuals / Tutorials

I think this article would be of more benefit to the public if there was a section for manuals, and a section for tutorials. A manual would be any assembly manual put out by the company that made that particular computer (IBM/Unix/etc.). Online manuals are really of great benefit to anyone interested or working in the field. Tutorials would be those tutorials written by experienced people/teachers/universities/etc. Right now.. it is all jumbled together. Not very user friendly. --stmrlbs|talk 23:10, 9 June 2009 (UTC)[reply]

See my update above. I think we should just link to Open Directory. —Preceding unsigned comment added by Yworo (talkcontribs) 23:10, 9 June 2009 (UTC)[reply]
Or rather, we should link only to pages/sites about assembly language in general and then provide a link to OD for those wanting to find manuals/tutorials for specific architectures. —Preceding unsigned comment added by Yworo (talkcontribs) 23:13, 9 June 2009 (UTC)[reply]
Yworo, I took a look at the Open directory, and it is a nice idea, but I couldn't find some basic things for IBM like the online IBM manuals for assembly language. I am not against putting a link to there, it is a good source - but I don't think it is a complete source (wikipedia isn't either). As for putting the assembler manuals on the 370 system architechure article, then maybe we could put a link to it from here (and the same with other architechures). But I still think that if a company that manufactures the hardware has online manuals which programmers use as reference to program that machine, then perhaps a link to all the manuals from that particular architecture would be great.
--stmrlbs|talk 23:32, 9 June 2009 (UTC)[reply]
I don't believe we should be linking to the IBM manuals from this article. I think they should be link from the article about the machine itself. This article is not about specific assembly languages. Maybe there should be subarticles about specific assembly languages, the links would be appropriate there.... —Preceding unsigned comment added by Yworo (talkcontribs) 23:36, 9 June 2009 (UTC)[reply]
Then how about something like, There are assembly languages for these architectures: then list the architectures, with wiki links to the articles on the different architectures. Then have a link to the online manuals from the different architectures. --stmrlbs|talk 23:56, 9 June 2009 (UTC)[reply]
also, Yworo, if you follow your posts with --~~~~ , wiki will automatically sign the post, so that people will know that you wrote the post. --stmrlbs|talk 23:58, 9 June 2009 (UTC)[reply]
Yah, I've just been informed on my talk page about the tildes. Thanks. You may have something there about how to do this. The current list is just so disorganized. Maybe some sort of a "list" subarticle would be better. And what about obsolete architectures, do we list them too? I took a machine language/assembly language class many years ago which used Burroughs, PDP-11, and CDC Cyber assembly languages as examples. PDP-11 assembly may well still be an excellent example of an orthogonally designed assembly language, but the other too are certainly obsolete. Do we link to info about say 8008 assembly? I still think it might be better to put the links on the pages about the machines, but perhaps we could create a see also section which mentions that that is where to find the assembly language reference links? Or? There just has to be a better solution than the current one... Yworo (talk) 13:13, 10 June 2009 (UTC)[reply]
Yworo, I think we should just start with what we have, rather than worrying about getting everything in at once. If we set up the structure, then I think people will add in the right place if they can see it easily. How about if I set up something tonight, then you can give me your opinion, or change/tweak it, then we can go from there. Ok? --stmrlbs|talk 18:27, 10 June 2009 (UTC)[reply]
Sure thing, go ahead. I'm the newcomer here... :-) Yworo (talk) 19:07, 10 June 2009 (UTC)[reply]
Yworo, I took a look around, and I see that this has already been created: List_of_assemblers. At the bottom of the Assembler article, it has this mixed in with other links here: Assembly_language#See_also. I think we should the link to a section by itself with a little paragraph explaining that this is a link of the different assemblers for the different machines. Then, maybe organize the rest of the links so they make better sense. What do you think? --stmrlbs|talk 09:11, 11 June 2009 (UTC)[reply]

Yworo, I created a new section: Assemblers#List_of_assemblers_for_different_computer_architectures which just has an introductory sentence explaining that a list of assemblers and architectures is on an associated page. Now, I think we can go through the links, and add those links to different assemblers into the table on the other page (if they are not already there), and take them off this page. The table is a more user friendly presentation of the information, than a bunch of links. You are right in that all the jumbled links with no organization is not good. If you need any help figuring out how to put something in the table, let me know. I will be glad to help --stmrlbs|talk 19:29, 11 June 2009 (UTC)[reply]

OK, let's make sure I have this straight, most of the links, the ones specific to architechtures, will go into the table on the subpage? And we'll have only a few general links on this one? I think that solves it quite nicely and is much more navigable and user-friendly. Good work. Yworo (talk) 13:12, 12 June 2009 (UTC)[reply]
yes, the table give like a crossroads link page between the different articles - between the assembly language, and the architecture. For each specific language, the table points to a wikipedia article on that language. For each architecture, there is a wikipedia article on that architecture.
So, I was thinking of going back to what you originally suggested, with a variation. For each wiki article on a language, add a subsection: manuals - then add the links to the assembly manuals there. And for each architecture, add a section for manuals. This will streamline this article, which, like you said, shouldn't have every assembler manual referenced in this article, and it will provide a way for a person to see all assemblers and their associated architecture, and point them to the correct articles for more information, and the manuals. If someone adds a manual here, we just move it and explain on the talk page and edit summary - that way the editor is still encouraged to contribute to the article.
I think this will make the wikipedia articles on this subject much more user friendly, and provide a nice resource for the public. I will start with the IBM Z/Architecture Assembler (HLASM) that is my ballpark. --stmrlbs|talk 18:14, 12 June 2009 (UTC)[reply]

Modulo

I made a long research to use the Modulo operator in Assembly language and the closest I found was the DIV operator however it's not available on the simple educational Assembler PEP8 [3] (French operators instruction Chapitre 7 in http://www.er.uqam.ca/nobel/k20250/Notes_cours.html).

Is there a simpler way of doing a modulo ? Perhaps doing bitwise operations ? --DynV (talk) 19:29, 12 June 2009 (UTC)[reply]

Only thing I can think of is performing the DIV operation to return an integral value and multiplying it with the divisor then subtracting it from the dividend. This is probably how it's done physically in architectures. ChazZeromus (talk) 18:05, 13 August 2009 (UTC)[reply]

Immediate encodings

I thought I'd put a little section about the ModR/M operand specifier byte underneath the opcode section. Please edit if their are any erroneous typings in my words lol. ChazZeromus (talk) 18:11, 13 August 2009 (UTC)[reply]

I reverted this change. You are describing the underlying machine language of x86, not assembly language. The ModR/M byte details, etc., aren't part of and are not reflected in the assembly language. You could however see if the x86 architecture article could use this material. Jeh (talk) 18:14, 13 August 2009 (UTC)[reply]
Hm, maybe there should be a section approaching the architecture of the assembler itself? This article describes the different language, and so I thought I'd put an example, but I forgot about the assembler part! Alright, I'll see what I can plug around in the x86 article.