亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ex16_1b.asm

?? 匯編編程藝術
?? ASM
字號:
; EX16_1a.asm
;
; A simple floating point calculator that demonstrates the use of the
; UCR Standard Library pattern matching routines.  Note that this
; program requires an FPU.

		.xlist
		.386
		.387
		option		segment:use16
		include 	stdlib.a
		includelib	stdlib.lib
		matchfuncs
		.list

; If the symbol "DEBUG" is defined, then call the MatchSP routine
; to do stack overflow checking.  If "DEBUG" is not defined, just
; call the sl_Match2 routine directly.

DEBUG		=	0		;Define for debugging.

		ifdef	DEBUG
MatchPat	textequ	<MatchSP>
		else
MatchPat	textequ	<sl_Match2>
		endif

dseg		segment	para public 'data'

; The following is a temporary used when converting a floating point
; string to a 64 bit real value.

CurValue	real8	0.0


; A Test String:

TestStr		byte	"5+2-(3-1)",0




; Grammar for simple infix -> postfix translation operation:
; Semantic rules appear in braces.
;
; NOTE: This code has a serious problem.  The first production
; is left recursive and will generate an infinite loop.
;
; E -> E+T {print result} | T {print result}
; T -> <constant> {fld constant} | (E)
;
;
;
; UCR Standard Library Pattern that handles the grammar above:

; An expression consists of an "E" item followed by the end of the string:

Expression      pattern {MatchPat,E,,EndOfString}
EndOfString	pattern	{EOS}


; An "E" item consists of an "E" item optionally followed by "+" or "-"
; and a "T" item (E -> E+T | T):

E               pattern	{PatPrint,EMsg,,E2}
EMsg		byte	"E->E+T | T",cr,lf,0

E2		pattern {MatchPat, E,T,Eplus}
Eplus		pattern	{MatchChar, '+', T, epPlus}
epPlus		pattern	{DoFadd,,,E3}
E3		pattern	{PatPrint,EMsg3}
EMsg3		byte	"E->E+T",cr,lf,0


; A "T" item is either a floating point constant or "(" followed by
; an "E" item followed by ")".
;
; The regular expression for a floating point constant is
;
;	[0-9]+ ( "." [0-9]* | ) ( ((e|E) (+|-| ) [0-9]+) | )
;
; Note: the pattern "Const" matches exactly the characters specified
;	by the above regular expression.  It is the pattern the calc-
;	ulator grabs when converting a string to a floating point number.


Const           pattern {MatchPat, ConstStr, 0, FLDConst}
ConstStr        pattern {MatchPat, DoDigits, 0, Const2}
Const2		pattern	{matchchar, '.', Const4, Const3}
Const3          pattern {MatchPat, DoDigits, Const4, Const4}
Const4		pattern	{matchchar, 'e', const5, const6}
Const5		pattern	{matchchar, 'E', Succeed, const6}
Const6		pattern	{matchchar, '+', const7, const8}
Const7		pattern	{matchchar, '-', const8, const8}
Const8          pattern {MatchPat, DoDigits}

FldConst	pattern	{PushValue,,,ConstMsg}
ConstMsg	pattern	{PatPrint,CMsg}
CMsg		byte	"T->const",cr,lf,0

; DoDigits handles the regular expression [0-9]+

DoDigits	pattern	{Anycset, Digits, 0, SpanDigits}
SpanDigits	pattern	{Spancset, Digits}

; The S production handles constants or an expression in parentheses.

T		pattern	{PatPrint,TMsg,,T2}
TMsg		byte	"T->(E) | const",cr,lf,0

T2		pattern	{MatchChar, '(', Const, IntE}
IntE            pattern {MatchPat, E, 0, CloseParen}
CloseParen	pattern	{MatchChar, ')',,T3}

T3		pattern	{PatPrint,TMsg3}
TMsg3		byte	"T->(E)",cr,lf,0


; The Succeed pattern always succeeds.

Succeed		pattern	{DoSucceed}


; We use digits from the UCR Standard Library cset standard sets.

		include	stdsets.a

dseg		ends



cseg		segment	para public 'code'
		assume	cs:cseg, ds:dseg

; Debugging feature #1:
; This is a special version of sl_Match2 that checks for
; stack overflow.  Stack overflow occurs whenever there
; is an infinite loop (i.e., left recursion) in a pattern.

MatchSP		proc    far
		cmp	sp, offset StkOvrfl
		jbe	AbortPgm
		jmp	sl_Match2

AbortPgm:	print
                byte    cr,lf,lf
		byte	"Error: Stack overflow in MatchSP routine.",cr,lf,0
		ExitPgm
MatchSP          endp


; PatPrint- A debugging aid.  This "Pattern matching function" prints
; the string that DS:SI points at.

PatPrint	proc	far
		push	es
		push	di
		mov	di, ds
		mov	es, di
		mov	di, si
		puts
		mov	ax, di
		pop	di
		pop	es
		stc
		ret
PatPrint	endp



; DoSucceed matches the empty string.  In other words, it matches anything
; and always returns success without eating any characters from the input
; string.

DoSucceed	proc	far
		mov	ax, di
		stc
		ret
DoSucceed	endp


; DoFadd - Adds the two items on the top of the FPU stack.

DoFadd		proc	far
		faddp	st(1), st
		mov	ax, di			;Required by sl_Match
		stc				;Always succeed.
		ret
DoFadd		endp


; PushValue-	We've just matched a string that corresponds to a
;		floating point constant.  Convert it to a floating
;		point value and push that value onto the FPU stack.

PushValue	proc	far
		push	ds
		push	es
		pusha
		mov	ax, dseg
		mov	ds, ax

		lesi	Const		;FP val matched by this pat.
		patgrab			;Get a copy of the string.
		atof			;Convert to real.
		free			;Return mem used by patgrab.
		lesi	CurValue	;Copy floating point accumulator
		sdfpa			; to a local variable and then
		fld	CurValue	; copy that value to the FPU stk.

		popa
		mov	ax, di
		pop	es
		pop	ds
		stc
		ret
PushValue	endp



; The main program tests the expression evaluator.

Main		proc
		mov	ax, dseg
		mov	ds, ax
		mov	es, ax
		meminit

		finit			;Be sure to do this!
		fwait

		lesi	TestStr
		puts			;Print the expression

		ldxi	Expression
		xor	cx, cx
		match
		jc	GoodVal
		printff
		byte	" is an illegal expression",cr,lf,0
		ret

GoodVal:	fstp	CurValue
		printff
		byte	" = %12.6ge\n",0
		dword	CurValue

Quit:		ExitPgm
Main		endp
cseg		ends

sseg		segment	para stack 'stack'
		word	64 dup (?)		;Buffer for stack overflow
StkOvrfl	word	?			;Stack overflow if drops
stk		db	1024 dup ("stack   ")	; below StkOvrfl.
sseg		ends

zzzzzzseg	segment	para public 'zzzzzz'
LastBytes	db	16 dup (?)
zzzzzzseg	ends
		end	Main

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品亚洲一区二区三区免费| 成人性生交大片免费看中文| 国产成人av一区二区三区在线观看| 成人sese在线| 欧美不卡一区二区三区四区| 国产精品福利一区二区| 日韩精品久久久久久| 色综合久久久久综合体桃花网| 4438亚洲最大| 一区二区三区欧美在线观看| 成人综合日日夜夜| 精品美女一区二区| 蜜臀av一级做a爰片久久| 91免费版pro下载短视频| 久久久久久久久99精品| 日本一道高清亚洲日美韩| 色999日韩国产欧美一区二区| 精品黑人一区二区三区久久| 天天综合天天做天天综合| 色婷婷综合激情| 国产精品久久福利| 国产剧情av麻豆香蕉精品| 日韩免费电影一区| 日韩和的一区二区| 欧美日韩视频在线第一区| 夜夜精品视频一区二区| 91麻豆精品秘密| 综合在线观看色| 成人av先锋影音| 国产婷婷色一区二区三区四区| 国产精品一区二区久激情瑜伽| 日韩色在线观看| 老色鬼精品视频在线观看播放| 欧美日韩一二区| 午夜a成v人精品| 欧美日本一区二区三区四区| 亚欧色一区w666天堂| 欧美精品色一区二区三区| 秋霞午夜av一区二区三区| 欧美久久久久中文字幕| 天天影视色香欲综合网老头| 欧美一区二区三区在线看| 毛片av中文字幕一区二区| 精品区一区二区| 国内成人自拍视频| 国产日韩欧美激情| av毛片久久久久**hd| 夜色激情一区二区| 91精品国产麻豆国产自产在线 | 欧美日韩精品系列| 亚洲成人av一区二区| 在线综合亚洲欧美在线视频| 人人狠狠综合久久亚洲| 久久精品视频免费| 91啪亚洲精品| 亚洲国产精品久久不卡毛片 | 精品乱码亚洲一区二区不卡| 国产精选一区二区三区| 中文字幕佐山爱一区二区免费| 在线观看免费成人| 粉嫩一区二区三区在线看| 国产精品久久精品日日| 欧美无砖专区一中文字| 黄网站免费久久| 综合久久久久久| 欧美精品第1页| 国产精品亚洲а∨天堂免在线| 日韩伦理免费电影| 91精品国产综合久久香蕉麻豆| 国产在线精品免费av| 最新高清无码专区| 日韩精品一区二| 在线观看区一区二| 国产另类ts人妖一区二区| 亚洲一二三四在线观看| 欧美一三区三区四区免费在线看 | 色综合久久中文字幕| 美女网站色91| 中文字幕一区二区视频| 日韩视频中午一区| 97精品国产露脸对白| 麻豆国产欧美一区二区三区| 一区精品在线播放| www国产精品av| 欧美久久高跟鞋激| 99re8在线精品视频免费播放| 日本aⅴ亚洲精品中文乱码| 成人欧美一区二区三区小说| 日韩精品一区二区三区中文不卡 | 欧美成人女星排名| 在线观看av一区二区| 国产成人免费在线视频| 天天综合网天天综合色| 国产精品久久影院| 26uuu亚洲| 欧美一区二区三区免费在线看| 99久久久无码国产精品| 国产在线播放一区三区四| 亚洲成人动漫在线观看| 中文字幕综合网| 国产精品少妇自拍| 久久午夜色播影院免费高清 | 美女看a上一区| 亚洲不卡在线观看| 亚洲美女免费在线| 中文字幕不卡在线| 久久久精品人体av艺术| 精品人在线二区三区| 日韩一级成人av| 7777女厕盗摄久久久| 欧美日韩在线不卡| 欧美日韩小视频| 欧美久久一二三四区| 欧美理论电影在线| 欧美日韩中文另类| 欧美午夜在线一二页| 欧美日韩一级片在线观看| 欧美三级视频在线| 91精品国产一区二区三区香蕉| 欧美日韩国产高清一区二区三区 | 在线观看区一区二| 欧美视频在线观看一区| 欧洲一区二区av| 欧美麻豆精品久久久久久| 欧美日韩久久久一区| 制服丝袜在线91| 精品国产乱码久久久久久夜甘婷婷 | 欧美日韩免费观看一区二区三区| 色狠狠av一区二区三区| 欧美性xxxxx极品少妇| 91麻豆精品国产91久久久使用方法 | 污片在线观看一区二区| 日韩和欧美一区二区| 久久99精品一区二区三区三区| 久久99精品国产麻豆不卡| 国产精品影视网| 91麻豆免费观看| 欧美精品亚洲二区| 久久久影院官网| 中文字幕中文乱码欧美一区二区 | 91香蕉视频在线| 欧美高清视频一二三区| 日韩精品在线一区| 国产精品久久久久一区| 一区二区三区四区视频精品免费 | 一区二区三区高清在线| 亚洲sss视频在线视频| 激情六月婷婷综合| 在线看不卡av| 日韩欧美一区中文| 国产精品不卡在线观看| 午夜视频在线观看一区二区 | 国产精品的网站| 偷偷要91色婷婷| 国产成人免费视频精品含羞草妖精| 99视频有精品| 中文字幕制服丝袜一区二区三区| 亚洲自拍都市欧美小说| 国产精品99久久久久久宅男| 色综合欧美在线| 日韩免费福利电影在线观看| 亚洲欧美一区二区三区极速播放| 日韩高清一级片| av亚洲精华国产精华精| 日韩女优av电影| 亚洲午夜精品网| 成人av电影免费观看| 日韩免费在线观看| 亚洲一区二区中文在线| 成人免费福利片| 精品国产一区二区三区av性色| 亚洲人妖av一区二区| 国产一区二区美女诱惑| 欧美日韩一区成人| 亚洲蜜臀av乱码久久精品| 久久99精品久久久久久动态图| 欧美在线视频日韩| 国产精品视频一区二区三区不卡| 免费成人在线网站| 欧美三区在线视频| 亚洲人妖av一区二区| 成人性生交大合| 精品美女在线播放| 热久久国产精品| 欧美日韩国产免费一区二区 | 国产欧美日韩精品在线| 男男视频亚洲欧美| 欧美一区二区三区免费大片 | 成人午夜精品在线| 精品成人一区二区| 奇米精品一区二区三区在线观看| 欧美老女人第四色| 亚洲妇熟xx妇色黄| 91国偷自产一区二区开放时间| 成人免费在线视频| 99久久99精品久久久久久| 国产精品女主播av| eeuss鲁片一区二区三区 | 亚洲超丰满肉感bbw| 欧美日韩激情在线|