Skip to content

Linking Loader Pass1 Algorithm.

VittalAB edited this page Dec 8, 2021 · 2 revisions

## PASS-1 ALGORTIHM

BEGIN
   GET THE PROGRAM ADDRESS FROM OS
   SET CSADDR TO PROGRAM ADDRESS {FOR FIRST CONTROL SECTION}
   WHILE NOT END OF INPUT DO
       BEGIN
           READ NEXT INPUT RECORD {HEADER RECORD FOR CONTROL SECTION}
           SET CSLTH TO CONTROL SECTION LENGTH
           SEARCH ESTAB FRO CONTROL SECTION NAME
           IF FOUND THEN
               SET ERROR FLAG (DUPLICATE EXTERNAL SYMBOL)
           ELSE
               ENTER CONTROL SECTION NAME INTO ESTAB WITH CSADDR AS VALUE
           WHILE RECORD TYPE !='E' DO
               BEGIN
                   READ NEXT INPUT RECORD
                   IF RECORD TYPE='D' THEN
                       FOR EACH SYMBOL IN THAT RECORD DO
                           BEGIN
                               SEARCH ESTAB FOR THE SYMBOL
                               IF FOUND THEN 
                                   SET ERROR FLAG DUPLICATE EXTERNAL SYMBOL FOUND
                               ELSE 
                                   ENTER SYMBOL TO ESTAB WITH THE VALUE AS {CSADDR + INDICATED ADDRESS}
                           END FOR
               END WHILE != 'E'
                   ADD CSLTH + CSADDR {STARTING ADDRESS FOR THE NEXT CONTROL SECTION}
       END {WHILE NOT EOF}
END PASS-1
Clone this wiki locally