庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>程序设计>汇编语言>相关源码>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

汇编的的各类源码--COBLOAD

 作者:本站收集   日期:2005-8-1 15:39:20
字号选择〖 〗/ 双击滚屏 单击停止   
;COBLOAD.ASM	  07/09/84 - DKeels
;----------------------------------------------------------------------------
;This program provides COBOL programs with access to 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_SEG	SEGMENT PUBLIC 'CODE'
		ASSUME	CS:CL_CODE_SEG,DS:CL_CODE_SEG,ES:CL_CODE_SEG

STACK_PARM	STRUC
PUSHED_SI	DW	?
PUSHED_DI	DW	?
PUSHED_DS	DW	?
PUSHED_ES	DW	?
PUSHED_BP	DW	?
RETURN_IP	DW	?
RETURN_CS	DW	?
PARM1_OFFSET	DW	?
PARM1_DS	DW	?
STACK_PARM	ENDS

		PUBLIC	COBLOAD		;make known to COBOL at link time
COBLOAD		PROC	FAR

	;prologue
		PUSH	BP
		PUSH	ES
		PUSH	DS
		PUSH	DI
		PUSH	SI
		MOV	BP,SP		;set base for stack parm structure

	;address caller's parameter block
		MOV	AX,[BP].PARM1_DS
		MOV	DS,AX			;DS -> cobol data seg
		MOV	SI,[BP].PARM1_OFFSET	;SI -> offset to parm block

	;address load's parameter block in sysparm
		MOV	DX,'dk'		;verification switch
		INT	77H		;get seg addr in AX
		MOV	ES,AX		;ES -> sysparm
		MOV	DI,0		;DI -> offset to LOAD parms

	;move cobol's parm block to load's parm block (in sysparm)
		CLD				;set direction for moves

		MOV	CX,80			;length of move
		REP	MOVSB			;move file spec 1
ASCIIZ1:	MOV	BYTE PTR ES:[DI],0	;make asciiz string
		DEC	DI
		MOV	AL,BYTE PTR ES:[DI]
		CMP	AL,' '			;nullify trailing spaces
		JE	ASCIIZ1

		MOV	BX,81			;point to parm length byte
		MOV	BYTE PTR ES:[BX],82	;init length of parm, + 2
		MOV	DI,82			;point to 1st parm position
		MOV	CX,80			;length of move
		REP	MOVSB			;move parm
ADD_CR_1:	MOV	BYTE PTR ES:[DI],13	;add carriage return
		DEC	BYTE PTR ES:[BX]	;sub 1 from length of parm
		DEC	DI
		MOV	AL,BYTE PTR ES:[DI]
		CMP	AL,' '			;put cr in trailing spaces
		JE	ADD_CR_1

		MOV	DI,163
		MOV	CX,80			;length of move
		REP	MOVSB			;move file spec 2
ASCIIZ2:	MOV	BYTE PTR ES:[DI],0	;make asciiz string
		DEC	DI
		MOV	AL,BYTE PTR ES:[DI]
		CMP	AL,' '			;nullify trailing spaces
		JE	ASCIIZ2

		MOV	BX,244			;point to parm length byte
		MOV	BYTE PTR ES:[BX],82	;init length of parm, + 2
		MOV	DI,245			;point to 1st parm position
		MOV	CX,80			;length of move
		REP	MOVSB			;move parm
ADD_CR_2:	MOV	BYTE PTR ES:[DI],13	;add carriage return
		DEC	BYTE PTR ES:[BX]	;sub 1 from length of parm
		DEC	DI
		MOV	AL,BYTE PTR ES:[DI]
		CMP	AL,' '			;put cr in trailing spaces
		JE	ADD_CR_2

	;return to caller
		POP	SI
		POP	DI
		POP	DS
		POP	ES
		POP	BP
		RET	4

COBLOAD		ENDP

CL_CODE_SEG	ENDS
		END

上一篇:汇编的的各类源码--COMINT    下一篇:汇编的的各类源码--CLR  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 本站收集
信息来源: 网络 录入时间: 2005-8-1 15:39:20
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿