Monday, October 2, 2017

Programarea în cod mașină

Fără să mă dau rotund în anul al III-lea de studenție chiar am făcut programare în cod mașină, lucru care nu era deloc foarte simplu, dar era așa de frumos încât nu regret nicio clipă că am făcut acest exercițiu fabulos. Pentru a scrie programe în cod mașină se specificau:
- structura programului ca fiind o succesiune de instrucțiuni scrise una sub alta;
- structura instrucțiunilor ca fiind formată din cod ioerație și listă de operanzi;
- lista de operații și cpdurile numerice asociate fiecăreia;
- modul de definire a adreselor absolute pentru instrucțiuni și operanzi;
- sistemul de gestionare a adreselor absolute;
- delimitatorii de instrucțiuni și de program;
- modul de perforare și de operare;
- obținerea rezultatelor.
Să zicem că totul într-un limbaj cod mașină ipotetic este cu patru cifre, adică pentru codurile operațiilor se asociază patru cifre, pentru adresele operanzilor adresele au patru cifre. Să zicem că adunarea are codul 0001, scăderea are codul 0002, memorarea are codul 0003. Să zicem că dorim să evaluăm expresia e=a+b+c-d-f+g cu  a = 7, b= 200, c=13, d=27, f=18 și g=33Să zicem că instrucțiunea de start are codul 0000, iar instrucțiunea de stop are codul 9999. Mașina are un singur registru notat 8888. Pentru tipărire se flosește codul 7777. Să zicem că se definesc mai întâi operanzii, iar prima adresă fizică este 4444. Să zicem că ceea ce acum se cheamă cuvânnt de memorie are 4 bytes și că reprezentarea este astfel gândită încât orice instrucțiune și orice operand să fie reprezentate pe un astfel de cuvânt. Programul va fi:
4444   0007
4448   0200
4452   0013
4456   0027
4460   0018
4464   0033
4468   9999
4472   0002, 8888,8888
4476   0001, 8888,4444
4480   0001, 8888,4448
4484   0001, 8888,4452
4488   0002, 8888,4456
4492   0001, 8888,4460
4496   0001, 8888,4464
4500   7777, 8888
4504   9999
Lucrrurile în cod mașină nu au stat așa de simplu pentru că acolo erau câteva zeci de coduri de instrucțiuni elementare și lipsa posibilității de a pune comentarii decât pe foaia de hârtie a programatorului ducea la mai dificultăți în a gestiona programe de câteva zeci sau sute de instrucțiuni. Și totuși așa au fost rezolvate probleme comolicate precum inversarea de matrice sau soluționarea de sisteme lineare de ecuații prin metoda Gaus-Seidel.
Programarea în cod mașină a avut misterul ei și nu trebuie sărit peste ea, căci în vremuri de restriște depanarea de programe revine la a lucra chiar pe cod mașină dacă dorim să soluționăm științific o problemă, mergând tot științific de la cauză la efect după un algoritm determinist, deși eroarea are caracter aleator, cred alții, noi nu.
Programarea în cod mașină a avut farmecul ei, dar ca orice mâncare dacă este mâncată în fiecare zi omul se satură și vrea să treacă la felul doi, adică o programare în limbaj de asalnlare, apoi la deser, programarea în FORTRAN sau COBOL.


(02 octombrie 2017)

No comments:

Post a Comment