// the main program file. // it needs to be combined with the assembled library // in order to make a whole executable. Make a note // asking the linker to do that. .link "lib.obj" // we do not define fact or print, they are defined // in the libraruy file. Make a note asking the linker // to find out their addresses and substitute them in // when those names are used in this file. .import fact, print // we define the evil global variables, but the library // code needs to access them. Make a note asking the // linker to keep track of their addresses. .export facin, facout // the program starts here. call fact call print halt facin: .data 7 facout: .data 0