Hai, Habr.
Dalam sejarah komputasi, ada peristiwa-peristiwa tertentu yang mempengaruhi jalannya sejarah. Salah satunya adalah munculnya komputer pribadi pertama yang diproduksi secara massal.
Pada tahun-tahun itu, komputer hanya digunakan oleh ilmuwan dan insinyur di perusahaan besar. Dan kemudian komputer muncul, yang dapat dibeli siapa saja. Altair 8800 berisi prosesor 8080, memori 256 byte pada versi pertama, dan harga di bawah $ 1000 - ini adalah komputer pribadi pertama yang berhasil dijual. Ini adalah komputer yang sama yang digunakan Bill Gates dan Paul Allen untuk mengembangkan bahasa BASIC, komputer yang dengannya ratusan dan ribuan siswa dan anak sekolah yang antusias datang ke dunia pemrograman.
Tentu saja, murahnya harganya - versi pertama ALTAIR tidak memiliki keyboard atau layar, hanya panel sakelar sakelar, seperti pada foto. Menjadi menarik untuk mengetahui bagaimana menulis dan menjalankan program pada PC seperti itu. Bagi yang ingin tahu cara kerjanya, kelanjutannya di bawah.
Kode
. 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, :
, .
Seperti biasa, semoga sukses untuk semuanya.