私たちはコンピューター用のプログラムを書いていますALTAIR88001975リリース

こんにちは、Habr。





コンピューティングの歴史には、歴史の流れに影響を与えた特定のイベントがあります。そのひとつが、最初の量産パソコンの登場です。





当時、コンピューターは大企業の科学者やエンジニアだけが使用していました。そして、誰でも購入できるコンピューターが登場します。Altair 8800は、最初のバージョンで8080プロセッサ、256バイトのメモリを搭載し、価格は1000ドル未満でした。これは、販売された最初の成功したパーソナルコンピュータでした。これは、ビル・ゲイツとポール・アレンがBASIC言語を開発したのと同じコンピューターであり、そのおかげで何百、何千もの熱狂的な学生や学童がプログラミングの世界にやって来ました。





もちろん、安さには代償が伴いました。ALTAIRの最初のバージョンには、キーボードも画面もありませんでした。写真のように、トグルスイッチパネルしかありませんでした。そのようなPCでプログラムを作成して実行する方法を理解することが面白くなりました。それがどのように機能するかを知りたい人のために、カットの下での継続。





コード

. 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, :





, .





いつものように、みんなに頑張ってください。








All Articles