Programming the 8085¶
Note
Although “Machine Code” is the only kind of language the CPU actually understands, we will focus on ‘Assembly Language” for our programs. I have done a great deal of manual “Machine Code” entry and trust me, you don’t want to do it and nowadays you don’t NEED to do it. The assembler will generate all the Machine Code for you to see and learn from, but it won’t make any of the entry errors that humans do.
I recommend you start in the 8085 IDE window as it has the editor and assembler, run and single step facilities.
Note
The Heathkit 8085 book mentions, but doesn’t contain any exercises, however there are a choice of two types below.
Exercises 1¶
Look in the 8085 IDE “Load Sample Program” menu in the top bar. There are twenty two exercises that will load into the simulator when selected.
Exercises 2¶
By Dishita Badarshahi <trivedivatsal005@gmail.com> (https://github.com/DishitaBadarshahi). These are designed for GNUSim8085 but can be used on Jubin Mitra’s 8085 Simulator.
1. Store 8-bit data in memory.
Program1.asm
Program2.asm
2. Exchange the contents of memory locations.
Program3.asm
Program4.asm
3. Add two 8-bit numbers.
Program5.asm
4. Subtract two 8-bit numbers.
Program6.asm
5. Find the 1’s complement of the number.
Program7.asm
6. Find the 2’s complement of the number.
Program8.asm
7. Pack the two unpacked BCD numbers.
Program9.asm
8. Unpack the BCD number.
Program10.asm
9. Add two 16-bit numbers.
Program11.asm
Program12.asm
10. Subtract two 16-bit numbers.
Program13.asm
11. Calculate the sum of series of numbers. (8-bit numbers)
Program14.asm
12. Add the contents of two memory locations.
Program15.asm
13. Shift an eight bit data
Program16.asm
14. Find the 2’s complement of 16-bit number
Program17.asm
Have I Finished This Course Yet ?¶
By the time you have read the Heathkit 8085 book and worked your way down to here I’d think you would have a pretty good idea of what a Microprocessor is and does ?
Try to resist the temptation to buy some old Microprocessor gear and actually make something because you’ll only learn things you don’t need to know unless you plan jumping in a time machine and going back to the mid 80’s to live.
Of course if your desire for retro computing is strong, who am I to stop you ?
MCU | Peripherals | Registers | Register Bitfields | Rom and Ram | Clock Speed MHz | Bits |
---|---|---|---|---|---|---|
8085 | 0 | 10 | n/a | none | 3 | 8 |
The better way would be to start learning about modern ARM Cortex-M based Microcontrollers like these, that way you can do with ONE CHIP, costing $1 that would take a big expensive PCB and around 50 parts using a 8085. Even then the 8085 would have NOTHING like the capability of that single chip.
MCU | Peripherals | Registers | Register Bitfields | Rom and Ram | Clock Speed MHz | Bits |
---|---|---|---|---|---|---|
STM32F0xx | 37 | 413 | 3044 | plenty | 48 | 32 |
STM32F303x | 38 | 549 | 3857 | heaps | 72 | 32 |
STM32F103xx | 53 | 722 | 4833 | plenty | 72 | 32 |
TM4C129x | 65 | 2137 | 7347 | tons | 120 | 32 |
STM32F7x | 89 | 1737 | 14091 | tons | 216 | 32 |