Talk:Assembly language
Add topic| This is the talk page for discussing improvements to the Assembly language article. This is not a forum for general discussion of the subject of the article. |
Article policies
|
| Find sources: Google (books · news · scholar · free images · WP refs) · FENS · JSTOR · TWL |
| Archives: 1, 2, 3, 4Auto-archiving period: 12 months |
| Assembly language was nominated as a Engineering and technology good article, but it did not meet the good article criteria at the time (September 17, 2020). There are suggestions on the review page for improving the article. If you can improve it, please do; it may then be renominated. |
| This It is of interest to the following WikiProjects: | ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
Macro pseudo-ops in open code
[edit]@Wtshymanski: In several assemblers, pseudoops meant for defining macros can also be used in open code.
I added the text "
In addition, some of the assembler statements useful in macro definitions are also valid in open code, e.g., the HLASM statements
- AGO
- Transfer to specified assembler statement
- AIF
- Evaluate logical and transfer if true
- GBLx
- Define compile-time variables in a global context
- LCLx
- Define compile-time variables in a local context
- SETx
- Evaluate expressions and assign their values to compile time variables
" to Assembly language#Macros and Wtshymanski reverted the change, stating that it was out of place. I don't see anything wrong with either the text or its location. --Shmuel (Seymour J.) Metz Username:Chatul (talk) 00:18, 19 November 2021 (UTC)
- Wikipedia is not a textbook. It's probably excessivley detailed, especially in an already over-long article, to go into all the fascinating tangents. --Wtshymanski (talk) 21:38, 22 November 2021 (UTC)
- @Wtshymanski: The list of pseudo-ops may be TMI, but surely the fact that they are allowed in open code belongs there. How about just "
In addition, some of the assembler statements useful in macro definitions are also valid in open code
"? --Shmuel (Seymour J.) Metz Username:Chatul (talk) 01:42, 23 November 2021 (UTC)- This article doesn't define "open code" so the phrase is meaningless to the reader. This reader, anyway. --Wtshymanski (talk) 03:22, 24 November 2021 (UTC)
- @Wtshymanski: Surely it should, since some pseudo-ops are invalid in open code, e.g., MEXIT in HLASM. --Shmuel (Seymour J.) Metz Username:Chatul (talk) 11:46, 24 November 2021 (UTC)
- When it comes to defining what features work in which implementations, we leave the realm of an encyclopedai article and descent to the level of a textbook...or a programmer's manual or how-to guide. The first dozen hits on Google Books for "open code" are split between "open source" and food best-fefore dates written in plain language instead of a cipher. --Wtshymanski (talk) 19:39, 24 November 2021 (UTC)
- @Wtshymanski: "open code" = "outside of macro definitions". It's a pretty well understood term among assembler programmers. Peter Flass (talk) 20:09, 24 November 2021 (UTC)
- When it comes to defining what features work in which implementations, we leave the realm of an encyclopedai article and descent to the level of a textbook...or a programmer's manual or how-to guide. The first dozen hits on Google Books for "open code" are split between "open source" and food best-fefore dates written in plain language instead of a cipher. --Wtshymanski (talk) 19:39, 24 November 2021 (UTC)
- @Wtshymanski: Surely it should, since some pseudo-ops are invalid in open code, e.g., MEXIT in HLASM. --Shmuel (Seymour J.) Metz Username:Chatul (talk) 11:46, 24 November 2021 (UTC)
- This article doesn't define "open code" so the phrase is meaningless to the reader. This reader, anyway. --Wtshymanski (talk) 03:22, 24 November 2021 (UTC)
- @Wtshymanski: The list of pseudo-ops may be TMI, but surely the fact that they are allowed in open code belongs there. How about just "
- This (https://www.google.ca/books/edition/IBM_Assembler/6thQAAAAYAAJ?hl=en&gbpv=1&bsq=%22open+code%22+%22assembler%22&dq=%22open+code%22+%22assembler%22&printsec=frontcover) says "open code" is an IBM-ism, which is why I never heard of it, learning my assembler on the streets as I did. It's a pretty recondite point for a general article on assembly language, which must perforce pay attention to the world outside of IBM. --Wtshymanski (talk) 21:28, 24 November 2021 (UTC)
- You’re right that google shows a lot of irrelevant results in a generic search for “open code”, but it’s not just an IBM-ism, but is regularly used when talking about macros and conditional assembly. For example, here’s one result from a book on MASM programming. .if the term is used here, however, it should probably be defined.Peter Flass (talk) 02:27, 25 November 2021 (UTC)
It is useful to include features which exist in assemblers for a variety of machines. In this case, the actual features are assembler variables and conditional assembly. That is, the assembler equivalent of C's #define and #ifdef. (More generally, #if.) AGO allows for loops, which might be more rare for assemblers. These are similar to the features of the PL/I preprocessors, and as well as I know, implemented in a preprocessor stage by assemblers. (That is, a temporary file is written for later processing.) The more general case should be covered here. Gah4 (talk) 23:41, 23 June 2024 (UTC)
- While many simple assemblers have a separate preprocessor stage, but that is by no means universal. Specifically, the IBM assemblers Assembler H Versions 1 and 2 and High Level Assembler (HLASM) allow macro to query attributes of symbols even when they are defined later in the source code than the macro definition and invocation. -- Shmuel (Seymour J.) Metz Username:Chatul (talk) 14:18, 24 June 2024 (UTC)
DSECT
[edit]IBM assemblers use DSECT in about the way that C programmers use struct. That is, for computing offsets into data structures. (In the case of struct pointers, that is all the compiler does. For an actual struct, it also allocates memory.) What I am wondering now, is which other assemblers have a similar feature? This would be the case where the assembler computes the offsets, and not a series of (the equivalent of) #define. Gah4 (talk) 23:31, 23 June 2024 (UTC)
The final paragraph of § Macros, beginning Macro parameter substitution is strictly by name: at macro processing time, the value of a parameter is textually substituted for its name. The most famous class of bugs resulting was the use of a parameter that itself was an expression and not a simple name when the macro writer expected a name. In the macro:
, has several issues.
- It is unclear what assembler on what platform has the issue; it needs explanatory text, a citation for the assembler and a citation for the bug.
- There is a NPOV issue; the wording should make it clear that not all assemblers have the issue.
It might be better to write example subsections for a few diverse assemblers and to include a modified version of that paragraph in the relevant example. Candidates for example sections include
- Digital Equipment Corporation#DEC decsystem10 Macro Assembler
- DEC VAX-11 Macro Assembler
- IBM 707x Autocoder
- IBM 709/7090 FORTRAN II Assembly Program
- IBM 709x Macro Assembly Program (MAP)
- IBM OS/360 Assembler (F)
- IBM OS/VS, DOS/VS, and VM/370 Assembler (Assembler XF)
- IBM Assembler H
- IBM High Level Assembler (HLASM)
- SDS/XDS Macro-Symbol
- UNIVAC 1100/2200 Meta-Assembler (MASM)
I can do some of the word-smithing for the IBM assemblers if and when there is consensus on what to include. Note that the nomenclature varies all over the landscape. -- Shmuel (Seymour J.) Metz Username:Chatul (talk) 14:48, 3 July 2026 (UTC)
tell me about 2nd gen of computer
[edit]tell me about 2nd gen of computer ~2026-46173-44 (talk) 04:10, 24 August 2026 (UTC)
- Second-generation computer redirects to History of computing hardware § Transistor computers, which discusses what are referred to as "second-generation computers".
- This is not tied to assembler language; many, probably most, first-generation computers (that links to Vacuum-tube computer), had both assemblers for assembly language, and many of them had compilers for higher-level languages. Later generations of computers, all the way to present-day computers, generally have both as well. Guy Harris (talk) 07:24, 24 August 2026 (UTC)
Claim about inventor of assembly language
[edit]The article currently says: "Kathleen Booth 'is credited with inventing assembly language'". The first of two citations is to a blog post, which is not a reputable source. (I also quickly noticed an error in the blog post, which said she "was born Kathleen Britten in 1922". Her birth name was actually Hylda Valerie Britten.)
The second is a reference to a seminal paper written by her and Andrew Booth. The reference includes the text "The non-original ideas, contained in the following text, have been derived from a number of sources, ... It is felt, however, that acknowledgement should be made to Prof. John von Neumann and to Dr. Herman Goldstein for many fruitful discussions ..."
This does not support the claim that she is credited as being the [sole] inventor of assembly language.
I think the sentence in which the claim appeared needs to be rewritten unless supporting references can be found.
- Former good article nominees
- B-Class level-4 vital articles
- Wikipedia level-4 vital articles in Technology
- B-Class vital articles in Technology
- B-Class Computer science articles
- High-importance Computer science articles
- WikiProject Computer science articles
- B-Class Computing articles
- High-importance Computing articles
- B-Class software articles
- High-importance software articles
- B-Class software articles of High-importance
- All Software articles
- B-Class Early computers articles
- High-importance Early computers articles
- B-Class Early computers articles of High-importance
- All Computing articles

