q2K BHP
Black History Portal
THE BHP WIRE —
HIDDEN TRUTHS
What's New!
THE JOURNEY THROUGH TIME

Explore Black History

Explore the people, places, events, achievements, struggles and stories that shaped our journey.

✊🏾

Civil Rights

Movements, leaders, victories and the continuing fight for equality.

⚙️

Black Inventors

Innovation, patents, science, technology and world-changing contributions.

🏆

Sports

Pioneers, champions, Negro Leagues, records, activism and excellence.

♟️

People

Meet the people whose lives, choices and achievements shaped the journey.

📍

Places

Black towns, communities, institutions and places where history happened.

📜

Events

Moments that changed communities, movements, institutions and the nation.

Enter a person, place, event, or topic.
MY'STORY

The MOVE Fire

This is a personal recollection on the Move fire on May 13, 1985 Philadelphia police fired thousands of rounds at the MOVE house, city officials approved dropping an explosive device on the roof, the resulting fire was allowed to burn, 11 people—including five children—died, and 61 homes were destroyed. Philadelphia City Council later called it a “brutal attack carried out by the City of Philadelphia on its own citizens” and acknowledged that no individual faced criminal consequences for the bombing. One timeline correction worth preserving for the BHP record: the major previous MOVE-police confrontation was August 8, 1978, about seven years before the bombing, not a year or two earlier. Officer James Ramp was killed, other police and firefighters were wounded, nine MOVE members were later convicted, and television cameras recorded police beating Delbert Africa during his arrest. The 1985 MOVE Commission later specifically criticized city planners for failing to adequately use lessons from that 1978 confrontation. And that actually strengthens the point you’re making: 1985 did not happen without precedent or institutional memory. There had already been a deadly confrontation with MOVE, years of conflict, negotiations and police involvement before Osage Avenue.

MORE →
BLACK FACTS
The Truths They Never Taught You...

The Violence That Helped Spark the NAACP

In August 1908, a white mob attacked Springfield, Illinois’s Black community, destroying homes and businesses and lynching two Black men. National outrage over the violence helped spur the movement that created the NAACP the following year.

MORE →
BHP gathered finds from its connected research sources. Showing the 4 strongest Black History matches.
← BACK TO RESULTS
Wikipedia

Microsoft Macro Assembler

Microsoft Macro Assembler
DeveloperMicrosoft
Release1981; 45 years ago (1981)
Stable release
14.16.27023.1 / March 7, 2017; 9 years ago (2017-03-07)
Operating systemMicrosoft Windows and MS-DOS
TypeAssembler
LicenseCommercial proprietary software
Websitedocs.microsoft.com/en-us/cpp/assembler/masm/microsoft-macro-assembler-reference

Microsoft Macro Assembler (MASM) is an x86 assembler that uses the Intel syntax for MS-DOS and Microsoft Windows. Beginning with MASM 8.0, there are two versions of the assembler: One for 16-bit & 32-bit assembly sources, and another (ML64) for 64-bit sources only.

MASM is maintained by Microsoft, but since version 6.12 it has not been sold as a separate product. It is instead supplied with various Microsoft SDKs and C compilers. Recent versions of MASM are included with Microsoft Visual Studio.

Notable applications compiled using MASM are RollerCoaster Tycoon which was 99% written in assembly language and built with MASM.[1]

History

[edit]

The earliest versions of MASM date back to 1981.[2] They were sold either as the generic "Microsoft Macro Assembler" for all x86 machines or as the OEM version specifically for IBM PCs. By Version 4.0, the IBM release was dropped. Up to Version 3.0, MASM was also bundled with a smaller companion assembler, ASM.EXE. This was intended for PCs with only 64k of memory and lacked some features of the full MASM, such as the ability to use code macros.

MS-DOS versions up to 4.x included Microsoft's LINK utility, which was designed to convert intermediate OBJ files generated by MASM and other compilers; however, as users who did not program had no use of the utility, it was moved to their compiler packages.

Version 4.0, released October 1985, added support for 286 instructions.

Version 5.0, released August 1987, supported 386 instructions, and also shorthand mnemonics for segment descriptors (.code, .data, etc.), but it could still only generate real mode executables.

Through version 5.0, MASM was available as an MS-DOS application only. Versions 5.1 and 6.0 were available as both MS-DOS and OS/2 applications.[3]

Version 6.0, released in 1991, added parameter passing with "invoke" and some other high level-like constructs, in addition to the already existing high level-like records, among other things. Both 6.0 and 6.0B were able to be run on an 8086 processor but could generate flat 32-bit 386 code. In 1992, 6.1 was released, which added support for the COFF object format used by Windows NT, and removed support for OS/2. 6.1 was built as a bi-modal binary before the Win32 API was finalized, and is incompatible with running on Windows NT due to missing exports.[4]

In 1993 full support for protected mode 32-bit applications and the Pentium instruction set was added. The 6.11 MASM binary at that time (1993) was shipped as a "bi-modal" (win32, i.e. PE) DOS-extended binary (using the Phar Lap TNT DOS extender). However, the setup.exe is an MZ executable so won't run under 64-bit versions of Windows, and the bi-modal ml.exe is compressed, and the decomp.exe is an NE executable, so also won't run under 64-bit versions of Windows, so you effectively need access to 32-bit Windows (or MSDOS) in order to install it. Version 6.11 is the last version of MASM that will run under MS-DOS. There were a series of patches available, up to 6.11d, that need 32-bit Windows to run, but the patched ml.exe still has the Phar Lap dos extender so can still be run under MSDOS.

By the end of 1997, MASM fully supported Windows 95 and included some AMD-specific instructions.[5]

In 1999, Intel released macros for SIMD and MMX instructions, which were shortly thereafter supported natively by MASM. With the 6.15 release in 2000, Microsoft discontinued support for MASM as a separate product, instead subsuming it into the Visual Studio toolset. Though it was still compatible with Windows 98, current versions of Visual Studio were not.[5] Support for 64-bit processors was not added until the release of Visual Studio 2005, with MASM 8.0.

After 25 June 2015, there are at least three different MASMs with the version number 14.00.23026. In Microsoft Visual Studio 2015 Enterprise Edition, there is one "amd64_x86" ml and two ml64s, "x86_amd64" and "amd64". They run on different platforms targeting different platforms:

  • amd64_x86: generates 64-bit code, runs in a Windows 32-bit environment
  • x86_amd64: generates 32-bit code, runs in a Windows 64-bit environment
  • amd64: generates 64-bit code, runs in a Windows 64-bit environment

Object module formats supported by MASM

[edit]

Early versions of MASM generated object modules using the OMF format, which was used to create binaries for MS-DOS or OS/2.

Since version 6.1, MASM is able to produce object modules in the Portable Executable[6][7] (PE/COFF) format. PE/COFF is compatible with recent Microsoft C compilers, and object modules produced by either MASM or the C compiler can be routinely intermixed and linked into Win32 and Win64 binaries.

Assemblers compatible with MASM

[edit]

Some other assemblers can assemble most code written for MASM, with the exception of more complex macros.

  • Turbo Assembler (TASM) developed by Borland, later owned by Embarcadero, last updated in 2002, but still supplied with C++Builder and RAD Studio.
  • JWasm Macro Assembler, licensed under the Sybase Open Watcom EULA. Last updated in 2014.
  • Pelle's Macro Assembler, a component of the Pelles C Archived 2020-02-29 at the Wayback Machine development environment.
  • UASM is a free MASM-compatible assembler based on JWasm.
  • ASMC is a free MASM-compatible assembler based on JWasm.

Mixed language programming support

[edit]

Documentation for 1987's version 5.1 included support for "Microsoft BASIC, C, FORTRAN, Pascal."[8]

Reception

[edit]

In a review of three assemblers, Michael Blaszczak of BYTE in February 1989 found that MASM 5.1 was the slowest and complained the most about code. He concluded that "MASM takes some getting used to, but it gets the job done" despite "more than its fair share of frustrating quirks and oddities".[9]

See also

[edit]

References

[edit]
  1. ^ "Chris Sawyer Software Development". www.chrissawyergames.com. Archived from the original on 2025-03-07. Retrieved 2023-01-05.
  2. ^ Watt, Peggy; Christine McGeever (January 7, 1985). "Macintosh Vs. IBM PC At One Year". InfoWorld. Vol. 7, no. 1. pp. 15–16. ISSN 0199-6649. The IBM PC Macro Assembler was released in December 1981.
  3. ^ Marshall, Martin (April 29, 1991). "Macro Assembler Update Adds High-Level Features". InfoWorld. Vol. 13, no. 17. p. 21. ISSN 0199-6649.
  4. ^ "Q94314: 32-Bit Flat Memory Model MASM Code for Windows NT". Archived from the original on 13 January 2021. Retrieved 3 October 2023.
  5. ^ a b R. E. Harvey (2007). "Assemblers". Archived from the original on 16 February 2008. Retrieved 4 February 2010.
  6. ^ "Archived copy". Archived from the original on 2009-01-26. Retrieved 2008-06-24.{{cite web}}: CS1 maint: archived copy as title (link)
  7. ^ "WHDC White Papers and Documentation". Microsoft. Retrieved 25 September 2016.
  8. ^ Microsoft Macro Assembler 5.1, Mixed-Language Programming Guide. p. 3.
  9. ^ Blaszczak, Michael (February 1989). "Three Assemblers for MS-DOS". BYTE. pp. 205–209. Retrieved 2024-10-08.
[edit]

Source: Wikipedia. Article content is retrieved live through the MediaWiki API.

No preview image
Wikipedia

Microsoft Macro Assembler

Microsoft Macro Assembler (MASM) is an x86 assembler that uses the Intel syntax for MS-DOS and Microsoft Windows. Beginning with MASM 8.0, there are two versions of the assembler: One for 16-bit & 32-bit assembly sources, and another (ML64) for 64-bit sources only. MASM is maintained by Microsoft, but since version 6.12 it has not been sold as a separate product. It is instead supplied with various Microsoft SDKs and C compilers. Recent versions of MASM are included with Microsoft Visual Studio. Notable applications compiled using MASM are RollerCoaster Tycoon which was 99% written in assembly language and built with MASM.

MORE →
No preview image
Wikipedia

Easy Approach to Requirements Syntax

The Easy Approach to Requirements Syntax (EARS) is a structured method for writing natural language requirements using a small set of keywords and sentence patterns. Developed by Alistair Mavin and colleagues at Rolls-Royce plc while analysing airworthiness regulations for a jet engine control system, EARS was first published at the IEEE International Requirements Engineering Conference (RE'09) in 2009. EARS gently constrains free-form natural language by imposing a consistent clause order and a limited vocabulary of structural keywords, reducing or eliminating common problems such as ambiguity, vagueness and incompleteness. EARS has been adopted by organisations including Airbus, Bosch, Dyson, Honeywell, Intel, NASA, Rolls-Royce and Siemens, and is taught at universities in China, France, Germany, Sweden, the United Kingdom and the United States. Since 2025, EARS notation has been integrated into AI-assisted spec-driven development tooling, most notably Amazon's Kiro IDE.

MORE →
Wikipedia

Intel MCS-51

The Intel MCS-51 (commonly termed 8051) is a single-chip microcontroller (MCU) series developed by Intel in 1980 for use in embedded systems. Intel's original versions were popular in the 1980s and early 1990s, and enhanced binary compatible derivatives remain popular today. It is a complex instruction set computer with separate memory spaces for program instructions and data. Intel's original MCS-51 family was developed using N-type metal–oxide–semiconductor (NMOS) technology, like its predecessor Intel MCS-48, but later versions, identified by a letter C in their name (e.g., 80C51) use complementary metal–oxide–semiconductor (CMOS) technology and consume less power than their NMOS predecessors. This made them more suitable for battery-powered devices. The family was continued in 1996 with the enhanced 8-bit MCS-151 and the 8/16/32-bit MCS-251 family of binary compatible microcontrollers. While Intel no longer manufactures the MCS-51, MCS-151 and MCS-251 family, enhanced binary compatible derivatives made by numerous vendors remain popular today. Some derivatives integrate a digital signal processor (DSP) or a floating-point unit (coprocessor, FPU). Beyond these physical devices, several companies also offer MCS-51 derivatives as IP cores for use in field-programmable gate array (FPGA) or application-specific integrated circuit (ASIC) designs.

MORE →
Wikipedia

Intel 8008

The Intel 8008 ("eight-thousand-eight" or "eighty-oh-eight") is an early 8-bit microprocessor capable of addressing 16 KB of memory, introduced in April 1972. The 8008 architecture was designed by Computer Terminal Corporation (CTC) and was implemented and manufactured by Intel. While the 8008 was originally designed for use in CTC's Datapoint 2200 programmable terminal, an agreement between CTC and Intel permitted Intel to market the chip to other customers after Seiko expressed an interest in using it for a calculator.

MORE →
TOPIC OF THE DAY

Greenwood / Black Wall Street

Before the 1921 destruction of Tulsa’s Greenwood District, Black residents had created a remarkable center of business and community life. The district included stores, professional offices, entertainment venues and homes owned by Black citizens. Understanding Greenwood means learning what was built—not only what was burned.

MORE →
TRIVIA QUESTION OF THE DAY

What prosperous Tulsa district became widely known as “Black Wall Street”?

The Greenwood District.