Thursday, November 9, 2017

Lucrul cu registre în programe ASSEMBLER

În limbajul de asamblare sunt instrucțiuni de tip RR, adică ambii operanzi sunt în registre. Calculatorul are 16 registre numerotate cu 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 dar este dificil de a le fiferenția de constantele  întregi 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, drept care este rezonabil ca în programe să se scrise secvența:
R0        EQU   0
R1        EQU   1
R2        EQU   2
R3        EQU   3
R4        EQU   4
R5        EQU   5
R6        EQU   6
R7        EQU   7
R8        EQU   8
R9        EQU   9
R10      EQU   10
R11      EQU   11
R12      EQU   12
R13      EQU   13
R14      EQU   14
R15      EQU   15
și în loc de a scrie secvența de instrucțiunile
AR       1,2          adună la conținutul registrului 1 conținutul registrului 2
SR        7,5          scade din valoarea din registrului 7 valoarea din registrul 5
LR        11,15      inițializează registrul 11 cu valoarea din registrul 15
se va scrie secvența
AR       R1,R2          adună la conținutul registrului R1 conținutul registrului R2
SR        R7,R5          scade din valoarea din registrului R7 valoarea din registrul R5
LR        R11,R15      inițializează registrul R11 cu valoarea din registrul R15
care este ușor de urmărit.
Unii programatori sunt și mai clari în textele lor utilizând recvența:
REG0       EQU   0
REG1       EQU   1
REG2       EQU   2
REG3       EQU   3
REG4       EQU   4
REG5       EQU   5
REG6       EQU   6
REG7       EQU   7
REG8       EQU   8
REG9       EQU   9
REG10      EQU   10
REG11      EQU   11
REG12      EQU   12
REG13      EQU   13
REG14      EQU   14
REG15      EQU   15
și în loc de a scrie secvența de instrucțiunile
AR       1,2          adună la conținutul registrului 1 conținutul registrului 2
SR        7,5          scade din valoarea din registrului 7 valoarea din registrul 5
LR        11,15      inițializează registrul 11 cu valoarea din registrul 15
se va scrie secvența
AR       REG1,REG2          adună la conținutul registrului REG1 conținutul registrului REG2
SR        REG7,REG5          scade din valoarea din registrului REG7 valoarea din registrul REG5
LR        REG11,REG15      inițializează registrul REG11 cu valoarea din registrul REG15
care este cu mult mai ușor de urmărit, căci REG este prescurtare de la cuvântul REGISTRU.
Lucrul cu registre în programe ASSEMBLER trebuie să devină ușor și sugestiv, altfel lucrurile devin foarte greoaie în procesul de mentenanță care de regulă nu este făcut de cel care a scris programele inițiale.



(09 noiembrie 2017)

No comments:

Post a Comment