AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > 汇编语言

汇编源码--basload

51自学网 2015-09-08 http://www.51zixue.net
;BASLOAD.ASM	  07/09/84 - DKeels;----------------------------------------------------------------------------;This program provides BASIC programs with access to the program loader (LOAD) ;by passing parameters via the system parameter area (SYSPARM).;;Inputs:;  FILE SPEC 1	- A string (len <= 80) with the complete name, including;		  path, of the file to be loaded and executed.;		  Example: 'MAINMENU.EXE' or 'C:/FORMAT.COM';  PARAMETER 1  - A string (len <= 80) with the command line parameters;		  to be passed to the program specified in FILE SPEC 1.;		  Example: '' or 'A:';  FILE SPEC 2  - Same as 1.;  PARAMETER 2  - Same as 1.;;Outputs:;  This program gives control to LOAD.;----------------------------------------------------------------------------CODE		SEGMENT 'CODE'		ASSUME	CS:CODE		PUBLIC	BASLOAD		;make known to BASIC at link timeBASLOAD		PROC	FAR	;prologue		PUSH	BP		;save BP		MOV	BP,SP		;set base for parm list		PUSH	DS		;DS -> basic work area		PUSH	ES		;ES -> basic work area		MOV	DX,'dk'		;interrupt verification switch		INT	77H		;get seg address of sysparm area in AX		MOV	ES,AX		;ES -> sysparm area		CLD			;set direction for all moves	;move file spec 1 to sysparm		MOV	BX,SS:[BP+12]	;get addr of string descriptor		MOV	CX,DS:[BX]	;get length of string into CX		MOV	SI,DS:[BX+2]	;get addr of string into SI		MOV	DI,0		;offset into sysparm		REP	MOVSB		;move string		MOV	BYTE PTR ES:[DI],0	;make it asciiz string	;move parameter 1 to sysparm		MOV	BX,SS:[BP+10]	;get addr of string descriptor		MOV	CX,DS:[BX]	;get length of string into CX		MOV	SI,DS:[BX+2]	;get addr of string into SI		MOV	DI,81		;offset into sysparm		INC	CL		;adjust for cr to be added at end		MOV	BYTE PTR ES:[DI],CL	;1st byte is length of string		DEC	CL		;re-adjust for move operation		INC	DI		REP	MOVSB		;move string		MOV	BYTE PTR ES:[DI],13	;add cr to end	;move file spec 2 to sysparm		MOV	BX,SS:[BP+8]	;get addr of string descriptor		MOV	CX,DS:[BX]	;get length of string into CX		MOV	SI,DS:[BX+2]	;get addr of string into SI		MOV	DI,163		;offset into sysparm		REP	MOVSB		;move string		MOV	BYTE PTR ES:[DI],0	;make it asciiz string	;move parameter 2 to sysparm		MOV	BX,SS:[BP+6]	;get addr of string descriptor		MOV	CX,DS:[BX]	;get length of string into CX		MOV	SI,DS:[BX+2]	;get addr of string into SI		MOV	DI,244		;offset into sysparm		INC	CL		;adjust for cr to be added at end		MOV	BYTE PTR ES:[DI],CL	;1st byte is length of string		DEC	CL		;re-adjust for move operation		INC	DI		REP	MOVSB		;move string		MOV	BYTE PTR ES:[DI],13	;add cr to end	;exit to BASIC		POP	ES		POP	DS		POP	BP		RET	8BASLOAD		ENDPCODE		ENDS		END	BASLOAD

 

 

 
上一篇:汇编源码--basmain  下一篇:Mixer&nbsp;Volume&nbsp;Ctrler&nbsp;V1.0