Oi, Habr.
Na história da computação, existem certos eventos que influenciaram o curso da história. Um deles foi o surgimento do primeiro computador pessoal produzido em massa.

Naqueles anos, os computadores eram usados apenas por cientistas e engenheiros em grandes empresas. E então aparece um computador, que qualquer pessoa pode comprar. O Altair 8800 continha um processador 8080, 256 bytes de memória na primeira versão e tinha um preço abaixo de US $ 1000 - foi o primeiro computador pessoal de sucesso a ser vendido. Este foi o mesmo computador para o qual Bill Gates e Paul Allen desenvolveram a linguagem BASIC, o computador graças ao qual centenas e milhares de entusiastas estudantes e crianças em idade escolar vieram para o mundo da programação.
Claro, o baixo custo tinha um preço - a primeira versão do ALTAIR não tinha teclado nem tela, apenas um painel de alternância, como na foto. Tornou-se interessante descobrir como escrever e executar um programa nesse PC. Para quem quiser saber como funciona, a continuação sob o corte.
Código
. ALTAIR 64 , 8080, 2 .
, , 1 5:
; Code segment:
ORG 0o ; Set Program Counter to address 0
START: LDA I
MOV B,A ; RegB => I (1..N)
LDA STEP
MOV C,A ; RegC => STEP (always 1)
LDA SUM
MOV D,A ; RegD => SUM (result)
LOOP: MOV A,D ; Move value to Accumulator from Register D (SUM)
ADD B ; Add value in Register B to value in Accumulator
MOV D,A ; Save result back to D I
MOV A,B ; Mov B to A and decrement it
SUB C
JZ PEND ; If A is zero, the calculation is complete
MOV B,A ; If not, continue
JMP LOOP
PEND: MOV A,D ; Save result in SUM value
STA SUM
PWAIT: JMP PWAIT ; Nothing to do, infinite loop
; Data segment:
ORG 200o ; Set Program Counter to address 200
I: DB 5o ; Data Byte at address 200 = 5
STEP: DB 1o ; Data Byte at address 201 = 8 (10 octal)
SUM: DB 0o ; Data Byte at address 202 = 0
END ; End
, 3 , I, STEP SUM, 1 5 1. B, C D, . JZ (Jump if Zero) , . SUM. , (data segment) , 200o ("o" octet, 8- ).
, , Python :
s = sum(range(6))
, , - . .
, , . , LDA:

"LDA I", I 200 = 80h, 3A 80 00.
MOV B,A :

01000111b = 47h
- , ( ). , "" , , . :
3a 80 00 47 3a 81 00 4f
3a 82 00 57 7a 80 57 78
91 ca 18 00 47 c3 0c 00
7a 32 82 00 c3 1c 00
- 38 . MZ, - 0. , , , 40...
ALTAIR 8800, github. :

, ALTAIR . - . , 1 10001000b, DEPOSIT, , DEPOSIT NEXT. , EXAMINE/EXAMINE NEXT. RUN SINGLE STEP.
, DEBUG , hex- . , .
. , 202 = 10000010b, EXAMINE. D7..D0 00001111b = 15, 1 5:

, , . , , , .
1975 BASIC ALTAIR, 1976 "Micro-Soft". IT.
. ALTAIR - , 50 . , . 2 , , , " ".
, ALTAIR . -, "", :
, ALTAIR simh, Linux, :

, .
Como de costume, boa sorte a todos.