An Arduino does not have to be a pre-fabricated board - it can be as simple as a microcontroller IC and some support components.
An eg basic Arduino Nano clone from Asia for under $US3 incl shipping gives you a few basic ICs a voltage regulator, a USB to serial interface and some support firmware to allow bootloading from USB. You gain nothing by not starting with a few parts on a board and the bootloader and free environment. Once running you can pursue whatever purist directions that seem good.
Struggling with months to achieve what can be done in hours in setting up an Arduino will teach you much, but there are far far far better ways to use the same learning time.
I built my first microcontroller system on strip board about 45 years ago!!!
Based on a Nat Semi SC/MP.
Binary toggle switch program and data input.
(No keyboard or keypad initially).
LED I/O (yes, we had LEDs :-) ).
No assembler (let alone an HLL).
Later we graduated to using Baudot code teleprinetrs - that we wrote our own code for.
So, yes, I know what you can learn the hard way.
Buy an Arduino to start :-).
You can learn far far far more quickly by starting with an Arduino and working DOWN once you have it running. Arduino use in no way misses out on ANY computer architecture aspects. You are doing yourself a massively large disservice by not starting with Arduino.
What it does and why use it, & How to turn any appropriate AVR microcontroller IC into an Arduino.
An Arduino-less Arduino here
Adding a bootloader with ICSP here
Stack Exchange discussion here
What it is and what it does here