Assembly Evolution

Julien Oster is writing up an interesting series about the evolution of Assembly Language in Intel processors. The first piece is about memory access, and how it’s handled in early CPUs, including the 4004, 8008 and 8085. He writes:

While it has become far less relevant for non-system developers to write assembly than it was a few decades ago, by now CPUs have nevertheless made it much more comfortable to do so. Today we are used to a lot of things: fancy indirect addressing modes with scale, a galore of general purpose registers instead of an accumulator and maybe one or two crippled index registers, condition codes for nearly every instruction (on ARM)…

But also the basics themselves have evolved. Let’s take a look at what past programmers had to put up with in entirely simple, everyday things. We’ll start with the most trivial: writing to memory.

We’ll work backwards, from the present to the past, to explore the wonders of direct addressing in Intel CPUs. (One precautionary warning though: I only really tested the 4004 code in an emulator, and my habits are highly tainted by current Intel CPUs. So if I made some mistake somewhere, kindly point it out and I’ll fix it!)

Read more…

[via pagetable]


Adafruit publishes a wide range of writing and video content, including interviews and reporting on the maker market and the wider technology world. Our standards page is intended as a guide to best practices that Adafruit uses, as well as an outline of the ethical standards Adafruit aspires to. While Adafruit is not an independent journalistic institution, Adafruit strives to be a fair, informative, and positive voice within the community – check it out here: adafruit.com/editorialstandards

Join Adafruit on Mastodon

Adafruit is on Mastodon, join in! adafruit.com/mastodon

Stop breadboarding and soldering – start making immediately! Adafruit’s Circuit Playground is jam-packed with LEDs, sensors, buttons, alligator clip pads and more. Build projects with Circuit Playground in a few minutes with the drag-and-drop MakeCode programming site, learn computer science using the CS Discoveries class on code.org, jump into CircuitPython to learn Python and hardware together, TinyGO, or even use the Arduino IDE. Circuit Playground Express is the newest and best Circuit Playground board, with support for CircuitPython, MakeCode, and Arduino. It has a powerful processor, 10 NeoPixels, mini speaker, InfraRed receive and transmit, two buttons, a switch, 14 alligator clip pads, and lots of sensors: capacitive touch, IR proximity, temperature, light, motion and sound. A whole wide world of electronics and coding is waiting for you, and it fits in the palm of your hand.

Have an amazing project to share? The Electronics Show and Tell is every Wednesday at 7:30pm ET! To join, head over to YouTube and check out the show’s live chat and our Discord!

Join us every Wednesday night at 8pm ET for Ask an Engineer!

Join over 38,000+ makers on Adafruit’s Discord channels and be part of the community! http://adafru.it/discord

CircuitPython – The easiest way to program microcontrollers – CircuitPython.org


New Products – Adafruit Industries – Makers, hackers, artists, designers and engineers! — New Products 9/13/2024 Featuring Adafruit Feather RP2350 with HSTX Port! (Video)

Python for Microcontrollers – Adafruit Daily — Python on Microcontrollers Newsletter: The latest on Raspberry Pi RP2350-E9, Bluetooth 6, 4,000 Stars and more! #CircuitPython #Python #micropython @ThePSF @Raspberry_Pi

EYE on NPI – Adafruit Daily — EYE on NPI Maxim’s Himalaya uSLIC Step-Down Power Module #EyeOnNPI @maximintegrated @digikey

Adafruit IoT Monthly — IoT Vulnerability Disclosure, Decorative Dorm Lights, and more!

Maker Business – Adafruit Daily — A look at Boeing’s supply chain and manufacturing process

Electronics – Adafruit Daily — Autoscale is cheating!

Get the only spam-free daily newsletter about wearables, running a "maker business", electronic tips and more! Subscribe at AdafruitDaily.com !



3 Comments

  1. Ah the 8085… that was the cpu in the first computer I bought for myself, the venerable Tandy 102 laptop. I had a lot of fun playing around with that machine.

  2. The base x86 architecture support works across almost any platform you can throw at it (even your latest Intel desktop). Standardized base BIOS architecture ensures this. But the x86 architecture is sorely outdated, compare what it takes to do something compared with an ARM core (with MMU). Night and day. Newer architectures are much more efficient in terms of clock cycles. Steve Gibson compared these differences in one of his netcasts.

    But the problem with the likes of boards running the likes of an ARM architecture (IP), is that there is no "legacy" base that has been around for decades. So for every non x86 board, you typically need a Board Support Package (BSP, or similar) to deal with anything relatively close to the hardware.

    For quasi-embedded, what this means is that for every non x86 compatible processor you need a different tool-chain and libraries etc, (e.g., the Chumby board, hacked routers, Raspberry Pi, on-and-on). Plus if you’re running one of the Unices, forget the depth of compatible software that you get with an x86 compatible platform.

    Unfortunately, low-cost embedded x86 compatible boards are becoming scarce. The Atom boards are too big and power hungry. But there is still the venerable AMD Geode line. Alix is one source (not affiliated). Soekris used to be a contender, but prices are now through the roof IMO.

  3. I guess. On the other hand, there are all those lovely CISC CPUs of yesteryear (say, PDP11 and PDP10, for example) compared to modern RISC CPUs (“you want a fancy addressing mode? Do the math yourself!”)

Sorry, the comment form is closed at this time.