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

📄 as27.s

📁 Version 6 Unix 核心源代码 Version 6 Unix 核心源代码
💻 S
字号:
///  a7 -- pdp-11 assemblerexpres:	clr	xsymbolexpres1:	mov	r5,-(sp)	mov	$'+,-(sp)	clr	r2	mov	$1,r3	br	1fadvanc:	jsr	pc,readop1:	mov	r4,r0	jsr	r5,betwen; 0; 177		br .+4	br	7f	movb	(r4),r0	tst	r0	bne	1f	tstb	passno	beq	1f	jsr	r5,error; 'u1:	cmp	r0,$40	bne	1f	mov	r4,xsymbol	clr	r1	br	oprand1:	mov	2(r4),r1	br	oprand7:	cmp	r4,$141	blo	1f	asl	r4	mov	curfb-[2*141](r4),r0	mov	2(r0),r1	movb	(r0),r0	br	oprand1:	mov	$esw1,r11:	cmp	(r1)+,r4	beq	1f	tst	(r1)+	bne	1b	tst	(sp)+	mov	(sp)+,r5	rts	pc1:	jmp	*(r1)esw1:	'+;	binop	'-;	binop	'*;	binop	'/;	binop	'&;	binop	037;	binop	035;	binop	036;	binop	'%;	binop	'[;	brack	'^;	binop	1;	exnum	2;	exnum1	'!;	binop	200;	0binop:	cmpb	(sp),$'+	beq	1f	jsr	pc,errore1:	movb	r4,(sp)	br	advancexnum1:	mov	numval,r1	br	1fexnum:	jsr	pc,getw	mov	r4,r11:	mov	$1,r0	br	oprandbrack:	mov	r2,-(sp)	mov	r3,-(sp)	jsr	pc,readop	jsr	pc,expres1	cmp	r4,$']	beq	1f	jsr	r5,error; ']1:	mov	r3,r0	mov	r2,r1	mov	(sp)+,r3	mov	(sp)+,r2oprand:	mov	$exsw2,r51:	cmp	(sp),(r5)+	beq	1f	tst	(r5)+	bne	1b	br	eoprnd1:	jmp	*(r5)exsw2:	'+; exadd	'-; exsub	'*; exmul	'/; exdiv	037; exor	'&; exand	035;exlsh	036;exrsh	'%; exmod	'^; excmbin	'!; exnot	200;  0excmbin:	mov	r0,r3	br	eoprndexrsh:	neg	r1	beq	exlsh	inc	r1	clc	ror	r2exlsh:	jsr	r5,combin; relte2	als	r1,r2	br	eoprndexmod:	jsr	r5,combin; relte2	mov	r3,r0	mov	r2,r3	clr	r2	dvd	r1,r2	mov	r3,r2	mov	r0,r3	br	eoprndexadd:	jsr	r5,combin; reltp2	add	r1,r2	br	eoprndexsub:	jsr	r5,combin; reltm2	sub	r1,r2	br	eoprndexand:	jsr	r5,combin; relte2	com	r1	bic	r1,r2	br	eoprndexor:	jsr	r5,combin; relte2	bis	r1,r2	br	eoprndexmul:	jsr	r5,combin; relte2	mpy	r2,r1	mov	r1,r2	br	eoprndexdiv:	jsr	r5,combin; relte2	mov	r3,r0	mov	r2,r3	clr	r2	dvd	r1,r2	mov	r0,r3	br	eoprndexnot:	jsr	r5,combin; relte2	com	r1	add	r1,r2	br	eoprndeoprnd:	mov	$'+,(sp)	jmp	advanccombin:	tstb	passno	bne	combin1	mov	r0,-(sp)	bis	r3,(sp)	bic	$!40,(sp)	bic	$!37,r0	bic	$!37,r3	cmp	r0,r3	ble	1f	mov	r0,-(sp)	mov	r3,r0	mov	(sp)+,r31:	tst	r0	beq	1f	cmp	(r5)+,$reltm2	bne	2f	cmp	r0,r3	bne	2f	mov	$1,r3	br	2f1:	tst	(r5)+	clr	r32:	bis	(sp)+,r3	rts	r5combin1:	mov	r1,-(sp)	clr	maxtyp	jsr	pc,maprel	mov	r0,r1	mpy	$6,r1	mov	r3,r0	jsr	pc,maprel	add	(r5)+,r0	add	r1,r0	movb	(r0),r3	bpl	1f	cmp	r3,$-1	beq	2f	jsr	r5,error; 'r2:	mov	maxtyp,r31:	mov	(sp)+,r1	rts	r5maprel:	cmp	r0,$40	bne	1f	mov	$5,r0	rts	pc1:	bic	$!37,r0	cmp	r0,maxtyp	blos	1f	mov	r0,maxtyp1:	cmp	r0,$5	blos	1f	mov	$1,r01:	rts	pcX = -2M = -1reltp2:	.byte 0, 0, 0, 0, 0, 0	.byte 0, M, 2, 3, 4,40	.byte 0, 2, X, X, X, X	.byte 0, 3, X, X, X, X	.byte 0, 4, X, X, X, X	.byte 0,40, X, X, X, Xreltm2:	.byte 0, 0, 0, 0, 0, 0	.byte 0, M, 2, 3, 4,40	.byte 0, X, 1, X, X, X	.byte 0, X, X, 1, X, X	.byte 0, X, X, X, 1, X	.byte 0, X, X, X, X, Xrelte2:	.byte 0, 0, 0, 0, 0, 0	.byte 0, M, X, X, X, X	.byte 0, X, X, X, X, X	.byte 0, X, X, X, X, X	.byte 0, X, X, X, X, X	.byte 0, X, X, X, X, X

⌨️ 快捷键说明

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