⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nm2rtso.s

📁 Minix比较全的源码
💻 S
字号:
! This is the Modula-2 run-time start-off routine.  It's job is to take the! arguments as put on the stack by EXEC, and to parse them and set them up the! way _m_a_i_n expects them..extern __m_a_i_n, _exit, m2rtso, hol0, __penvp.extern begtext, begdata, begbss, endtext, enddata, endbss.textbegtext:m2rtso:	xor	bp, bp			! clear for backtrace of core files	mov	bx, sp	mov	ax, (bx)		! argc	lea	dx, 2(bx)		! argv	lea	cx, 4(bx)	add	cx, ax	add	cx, ax			! envp	! Test if environ is in the initialized data area and is set to our	! magic number.  If so then it is not redefined by the user.	mov	bx, #_environ	cmp	bx, #__edata		! within initialized data?	jae	0f	testb	bl, #1			! aligned?	jnz	0f	cmp	(bx), #0x5353		! is it our environ?	jne	0f	mov	__penviron, bx		! _penviron = &environ;0:	mov	bx, __penviron	mov	(bx), cx		! *_penviron = envp;	push	cx			! push envp	push	dx			! push argv	push	ax			! push argc	call	__m_a_i_n		! run Modula-2 program	push	ax			! push exit status	call	__exit	hlt				! force a trap if exit fails.databegdata:	.data2	0			! for sep I&D: *NULL == 0__penviron:	.data2	__penvp			! Pointer to environ, or hidden pointer.bssbegbss:	.comm	__penvp, 2		! Hidden environment vector

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -