敬业的IT人 >> 编程开发 >> 其他语言 >> 汇编源码--COBLOAD

汇编源码--COBLOAD

敬业的IT人 互联网 佚名 2008-2-19 14:33:03
    ·汇编源码--BRK
    ·汇编源码--CLOCK
    ·汇编源码--BURNOUT
    ·汇编源码--DOSSYM
    ·汇编源码--circle
    ·汇编源码--DEV
    ·汇编源码--getspace
    ·汇编源码--CLEAR
    ·汇编源码--col
    ·汇编源码--gameport
;COBLOAD.ASM 07/09/84 - DKeels ;---------------------------------------------------------------------------- ;This program provides COBOL programs with accessto the program loader (LOAD) ;by passing parameters via the system parameter area (SYSPARM). ; ;Inputs: ;01 COBLOAD-PARMS ; 05 FILE-SPEC-1 PIC X(80). Contains complete drive, path and filename. ; 05 PARAMETER-1 PIC X(80). Contains command line parameters. ; 05 FILE-SPEC-2 PIC X(80). Same as 1. ; 05 PARAMETER-2 PIC X(80). Same as 1. ; ;Outputs: ; None. ;---------------------------------------------------------------------------- CL_CODE_SEGSEGMENT PUBLIC 'CODE' ASSUMECS:CL_CODE_SEG,DS:CL_CODE_SEG,ES:CL_CODE_SEG STACK_PARMSTRUC PUSHED_SIDW? PUSHED_DIDW? PUSHED_DSDW? PUSHED_ESDW? PUSHED_BPDW? RETURN_IPDW? RETURN_CSDW? PARM1_OFFSETDW? PARM1_DSDW? STACK_PARMENDS PUBLICCOBLOAD;make known to COBOL at link time COBLOADPROCFAR ;prologue PUSHBP PUSHES PUSHDS PUSHDI PUSHSI MOVBP,SP;set base for stack parm structure ;address caller's parameter block MOVAX,[BP].PARM1_DS MOVDS,AX;DS -> cobol data seg MOVSI,[BP].PARM1_OFFSET;SI -> offset to parm block ;address load's parameter block in sysparm MOVDX,'dk';verification switch INT77H;get seg addr in AX MOVES,AX;ES -> sysparm MOVDI,0;DI -> offset to LOAD parms ;move cobol's parm block to load's parm block (in sysparm) CLD;set direction for moves MOVCX,80;length of move REPMOVSB;move file spec 1 ASCIIZ1:MOVBYTE PTR ES:[DI],0;make asciiz string DECDI MOVAL,BYTE PTR ES:[DI] CMPAL,' ';nullify trailing spaces JEASCIIZ1 MOVBX,81;point to parm length byte MOVBYTE PTR ES:[BX],82;init length of parm, + 2 MOVDI,82;point to 1st parm position MOVCX,80;length of move REPMOVSB;move parm ADD_CR_1:MOVBYTE PTR ES:[DI],13;add carriage return DECBYTE PTR ES:[BX];sub 1 from length of parm DECDI MOVAL,BYTE PTR ES:[DI] CMPAL,' ';put cr in trailing spaces JEADD_CR_1 MOVDI,163 MOVCX,80;length of move REPMOVSB;move file spec 2 ASCIIZ2:MOVBYTE PTR ES:[DI],0;make asciiz string DECDI MOVAL,BYTE PTR ES:[DI] CMPAL,' ';nullify trailing spaces JEASCIIZ2 MOVBX,244;point to parm length byte MOVBYTE PTR ES:[BX],82;init length of parm, + 2 MOVDI,245;point to 1st parm position MOVCX,80;length of move REPMOVSB;move parm ADD_CR_2:MOVBYTE PTR ES:[DI],13;add carriage return DECBYTE PTR ES:[BX];sub 1 from length of parm DECDI MOVAL,BYTE PTR ES:[DI] CMPAL,' ';put cr in trailing spaces JEADD_CR_2 ;return to caller POPSI POPDI POPDS POPES POPBP RET4 COBLOADENDP CL_CODE_SEGENDS END 进入讨论组讨论。
粤ICP备06119539号
Copyright CiscoSky.Org,Some Rights Reserved.
Email:me1228#tom.com