IBM 704: razlika između inačica
Prijeđi na navigaciju
Prijeđi na pretraživanje
mNema sažetka uređivanja |
|||
| Redak 1: | Redak 1: | ||
== Instrukcijski skup IBM 704 == | |||
{| class="wikitable" | |||
|+ '''Glavne grupe instrukcija IBM 704''' | |||
! Grupa | |||
! Primjeri | |||
! Opis | |||
|- | |||
| Aritmetičke instrukcije | |||
| ADD, SUB, MPY, DIV | |||
| Operacije nad AC i MQ registrima; podrška za cijele brojeve i pomični zarez. | |||
|- | |||
| Logičke instrukcije | |||
| CLA, CLM, COM | |||
| Čišćenje, komplementiranje i manipulacija bitovima. | |||
|- | |||
| Uvjetno grananje | |||
| TRA, TMI, TPL, TZE | |||
| Skokovi ovisno o sadržaju AC ili MQ. | |||
|- | |||
| Rad sa Sense Indicators | |||
| TSI, SSI, RSI | |||
| Testiranje, postavljanje i resetiranje statusnih bitova. | |||
|- | |||
| Indeksno adresiranje | |||
| AXT, TXI | |||
| Modifikacija adresa pomoću XR1, XR2, XR4. | |||
|- | |||
| Ulazno/izlazne instrukcije | |||
| RDS, WRS, RWT | |||
| Rad s magnetskom vrpcom, kartičnim čitačem i pisačem. | |||
|- | |||
| Kontrola toka programa | |||
| HLT, NOP | |||
| Zaustavljanje programa, prazna instrukcija. | |||
|} | |||
Inačica od 7. srpanj 2026. u 09:37
Instrukcijski skup IBM 704
| Grupa | Primjeri | Opis |
|---|---|---|
| Aritmetičke instrukcije | ADD, SUB, MPY, DIV | Operacije nad AC i MQ registrima; podrška za cijele brojeve i pomični zarez. |
| Logičke instrukcije | CLA, CLM, COM | Čišćenje, komplementiranje i manipulacija bitovima. |
| Uvjetno grananje | TRA, TMI, TPL, TZE | Skokovi ovisno o sadržaju AC ili MQ. |
| Rad sa Sense Indicators | TSI, SSI, RSI | Testiranje, postavljanje i resetiranje statusnih bitova. |
| Indeksno adresiranje | AXT, TXI | Modifikacija adresa pomoću XR1, XR2, XR4. |
| Ulazno/izlazne instrukcije | RDS, WRS, RWT | Rad s magnetskom vrpcom, kartičnim čitačem i pisačem. |
| Kontrola toka programa | HLT, NOP | Zaustavljanje programa, prazna instrukcija. |
Registri
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Senzorni indikatori
Senzorni indikatori - su posebni statusni bitovi u IBM 704 koj su se u praksi rabili za provjeru grešaka, grananje ovisno o stanju sustava, upravljanje perifernim jedinicama, te za signalizaciju posebnih događaja. Kroz njih programeri su mogli održavati stanje sustava, signalizirati određene uvjete tokom izvršavanje naredbi, čitanje i postavljanje naredbi i tako su služili za jednostane oblike upravljanja tokom programa.
| SI broj | Naziv / funkcija | Opis |
|---|---|---|
| 0 | Overflow flag | Postavlja se pri prekoračenju rezultata u akumulatoru (AC) ili količniku (MQ). |
| 1 | Divide check | Signalizira pogrešku pri dijeljenju, uključujući dijeljenje nulom. |
| 2 | I/O ready | Uređaj spreman za prijenos podataka. |
| 3 | I/O complete | Završetak operacije ulaza/izlaza. |
| 4 | Tape mark | Očitana oznaka kraja bloka na magnetskoj vrpci. |
| 5 | Printer ready | Pisač spreman za rad. |
| 6 | Card reader ready | Čitač kartica spreman. |
| 7 | Card punch ready | Bušilica kartica spremna. |
| 8–15 | Peripheral flags | Razni signali perifernih uređaja (disk, vrpca, pisač). |
| 16–35 | User-defined flags | Zastavice koje programer može slobodno koristiti za logiku grananja. |
Korištenje u IBM 704 assembleru
IBM 704 je imao posebne instrukcije za rad sa Sense Indicators:
- TSI n
- Testira Sense Indicator n. Ako je postavljen, izvršavanje se nastavlja normalno; ako nije, preskače se sljedeća instrukcija.
TSI 3 / provjeri je li I/O complete
TRA DONE / ako je postavljen, skoči na DONE
- SSI n
- Postavlja Sense Indicator n.
- RSI n
- Resetira Sense Indicator n.
TSI 1 / provjeri divide check
TRA ERROR / ako je SI1 = 1, idi na ERROR
SSI 20 / postavi korisnički indikator 20
RSI 3 / resetiraj I/O complete indikator
Usporedba s modernim statusnim registrima
| IBM 704 Sense Indicators | Moderni statusni registri (x86, ARM, RISC-V) |
|---|---|
| 36 jednobitnih zastavica | 8–32 bitni statusni registri |
| Ručno postavljanje i brisanje | Automatsko postavljanje od strane ALU |
| Koriste se za I/O signalizaciju | I/O signalizacija preko interrupt kontrolera |
| Jednostavne logičke zastavice | Zastavice za aritmetiku, usporedbe, prekide |
| Programer koristi dio SI kao "user flags" | Moderni jezici koriste varijable, strukture, objekte |
| Grananje preko TSI instrukcije | Grananje preko CMP/JMP, BEQ/BNE, BLT/BGT |