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

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

?? util.m

?? compiler-compiler. This is a compiler-compiler with table-driven scanner, table-driven parser.
?? M
?? 第 1 頁 / 共 2 頁
字號:
%==============================================================%% File:        util.m                                          %% Author:      Nagi B. F. MIKHAIL                              %% Date:        April, 1995                                     %% Description: This file contains utility routines written in  %%              MOON's assembly to handle string operations &   %%              Input/Output.                                   %%==============================================================%%%%--------------------------------------------------------------%% getint                                                       %%--------------------------------------------------------------%% Read an integer number from stdin. Read until a non digit char% is entered. Allowes (+) & (-) signs only as first char. The% digits are read in ASCII and transformed to numbers.% Entry : none.% Exit : result -> r1%getint	align	add	r1,r0,r0		% Initialize input register (r1 = 0)	add	r2,r0,r0		% Initialize buffer's index i	add	r4,r0,r0		% Initialize sign flaggetint1	getc	r1			% Input ch	ceqi	r3,r1,43		% ch = '+' ?	bnz	r3,getint1		% Branch if true (ch = '+')	ceqi	r3,r1,45		% ch = '-' ?	bz	r3,getint2		% Branch if false (ch != '-')	addi	r4,r0,1			% Set sign flag to true	j	getint1			% Loop to get next chgetint2	clti	r3,r1,48		% ch < '0' ?	bnz	r3,getint3		% Branch if true (ch < '0')	cgti	r3,r1,57		% ch > '9' ?	bnz	r3,getint3		% Branch if true (ch > '9')	sb	getint9(r2),r1		% Store ch in buffer	addi	r2,r2,1			% i++	j	getint1			% Loop if not finishedgetint3	sb	getint9(r2),r0		% Store end of string in buffer (ch = '\0')	add	r2,r0,r0		% i = 0	add	r1,r0,r0		% N = 0	add	r3,r0,r0		% Initialize r3getint4	lb	r3,getint9(r2)		% Load ch from buffer	bz	r3,getint5		% Branch if end of string (ch = '\0')	subi	r3,r3,48		% Convert to number (M)	muli	r1,r1,10		% N *= 10	add	r1,r1,r3		% N += M	addi	r2,r2,1			% i++	j	getint4			% Loop if not finishedgetint5	bz	r4,getint6		% Branch if sign flag false	sub	r1,r0,r1		% N = -Ngetint6	jr	r15			% Return to the callergetint9	res	12			% Local buffer (12 bytes)	align%%%--------------------------------------------------------------%% putint                                                       %%--------------------------------------------------------------%% Write an integer number to stdout. Transform the number into% ASCII string taking the sign into account.% Entry : integer number -> r1% Exit : none.%putint	align	add	r2,r0,r0		% Initialize buffer's index i	cge	r3,r1,r0		% True if N >= 0	bnz	r3,putint1		% Branch if True (N >= 0)	sub	r1,r0,r1		% N = -Nputint1	modi	r4,r1,10		% Rightmost digit	addi	r4,r4,48		% Convert to ch	divi	r1,r1,10		% Truncate rightmost digit	sb	putint9(r2),r4		% Store ch in buffer	addi	r2,r2,1			% i++	bnz	r1,putint1		% Loop if not finished	bnz	r3,putint2		% Branch if True (N >= 0)	addi	r3,r0,45	sb	putint9(r2),r3		% Store '-' in buffer	addi	r2,r2,1			% i++	add	r1,r0,r0		% Initialize output register (r1 = 0)putint2	subi	r2,r2,1			% i--	lb	r1,putint9(r2)		% Load ch from buffer	putc	r1			% Output ch	bnz	r2,putint2		% Loop if not finished	jr	r15			% return to the callerputint9	res	12			% loacl buffer (12 bytes)	align%%%--------------------------------------------------------------%% putstr                                                       %%--------------------------------------------------------------%% Write a string to stdout. Write char by char until end of % string.% Entry : address of string -> r1% Exit : none.% putstr	align	add	r2,r0,r0		% Initialize output register (r2 = 0)putstr1	lb	r2,0(r1)		% Load ch from buffer	bz	r2,putstr2		% Branch if end of string (ch = '\0')	putc	r2			% Output ch	addi	r1,r1,1			% i++	j	putstr1			% Loop if not finishedputstr2	jr	r15			% Return to the caller	align%%%--------------------------------------------------------------%% putsub                                                       %%--------------------------------------------------------------% % Write a substring to stdout. Write char by char until end of % substring.% Entry : address of substring -> r1%         address of end of substring -> r3% Exit : none.% putsub	align	add	r2,r0,r0		% Initialize output register (r2 = 0)putsub1	lb	r2,0(r1)		% Load ch from buffer	putc	r2			% Output ch	ceq	r2,r1,r3		% Current pos. is end of substring ?	bnz	r2,putsub2		% Branch if end of substring	addi	r1,r1,1			% i++	j	putsub1			% Loop if not finishedputsub2	jr	r15			% Return to the caller	align%%%--------------------------------------------------------------%% getstr                                                       %%--------------------------------------------------------------%% Read a string from stdin. Read char by char until CR but do % not store CR.% Entry : address of string var. -> r1% Exit : address of string var. -> r1%getstr	align	add	r2,r0,r0		% Initialize input register (r2 = 0)	getc	r2			% Input ch	ceqi	r3,r2,10		% ch = CR ?	bnz	r3,getstr1		% branch if true (ch = CR)	sb	0(r1),r2		% Store ch in buffer	addi	r1,r1,1			% i++	j	getstr			% Loop if not finishedgetstr1	sb	0(r1),r0		% Store end of string (ch = '\0')	jr	r15			% Return to the caller	align%%%--------------------------------------------------------------%% catstr                                                       %%--------------------------------------------------------------%% Append one string to another.% Entry : address of 1st string -> r1%         address of 2nd string -> r2% Exit : address of concatenated strings -> r1%catstr	align	add	r3,r0,r0		% r3 = 0catstr1	lb	r3,0(r1)		% Load ch from 1st string	bz	r3,catstr2		% Branch if end of string (ch = `\0')	addi	r1,r1,1			% i++	j	catstr1			% Loop if not end of 1st stringcatstr2	lb	r3,0(r2)		% Load ch from 2nd string	sb	0(r1),r3		% Store ch at the end of 1st string	bz	r3,catstr3		% Branch if end of 2nd string	addi	r2,r2,1			% j++	addi	r1,r1,1			% i++	j	catstr2			% Loop if not end of 2nd stringcatstr3	jr	r15			% Return to the caller	align%%%--------------------------------------------------------------%% catsub                                                       %%--------------------------------------------------------------%% Append a substring to a string.% Entry : address of string -> r1%         address of substring -> r2%         address of end of substring -> r4% Exit : address of concatenated strings -> r1% catsub	align	add	r3,r0,r0		% r3 = 0catsub1	lb	r3,0(r1)		% Load ch from 1st string	bz	r3,catsub2		% Branch if end of string (ch = `\0')	addi	r1,r1,1			% i++	j	catsub1			% Loop if not end of 1st stringcatsub2	lb	r3,0(r2)		% Load ch from substring	sb	0(r1),r3		% Store ch at the end of 1st string	bz	r3,catsub4		% Branch if end of string ch	addi	r1,r1,1			% i++	ceq	r3,r2,r4		% Check end of substring	bnz	r3,catsub3		% Branch if end of substring	addi	r2,r2,1			% j++	j	catsub2			% Loop if not end of substringcatsub3	sb	0(r1),r0		% Store end of stringcatsub4	jr	r15			% Return to the caller	align%%%--------------------------------------------------------------%% eqstr                                                        %%--------------------------------------------------------------%% Check if string1 = string2.% Entry : address of string1 -> r1%         address of string2 -> r2% Exit : r1 = 1 (true)%        r1 = 0 (false)%eqstr	align	add	r3,r0,r0		% Initialize r3 (r3 = 0)	add	r4,r0,r0		% Initialize r4 (r4 = 0)eqstr1	lb	r3,0(r1)		% Load ch1 from 1st string	lb	r4,0(r2)		% Load ch2 from 2nd string	ceq	r5,r3,r4		% ch1 = ch2 ?	bz	r5,eqstr2		% Branch if false	ceq	r5,r3,r0		% ch1 = '\0' ?	bnz	r5,eqstr3		% Branch if true	addi	r1,r1,1			% i++	addi	r2,r2,1			% j++	j	eqstr1			% Loop if not finishedeqstr2	add	r1,r0,r0		% Return false	j	eqstr4eqstr3	addi	r1,r0,1			% Return trueeqstr4	jr	r15			% Return to the caller	align%%%--------------------------------------------------------------%% neqstr                                                       %%--------------------------------------------------------------%% Check if string1 != string2.% Entry : address of string1 -> r1%         address of string2 -> r2% Exit : r1 = 1 (true)%        r1 = 0 (false)% neqstr	align	add	r3,r0,r0		% Initialize r3 (r3 = 0)	add	r4,r0,r0		% Initialize r4 (r4 = 0)neqstr1	lb	r3,0(r1)		% Load ch1 from 1st string	lb	r4,0(r2)		% Load ch2 from 2nd string	cne	r5,r3,r4		% ch1 != ch2 ?	bnz	r5,neqstr3		% Branch if true	ceq	r5,r3,r0		% ch1 = '\0' ?	bnz	r5,neqstr2		% Branch if true	addi	r1,r1,1			% i++	addi	r2,r2,1			% j++	j	neqstr1			% Loop if not finishedneqstr2	add	r1,r0,r0		% Return false	j	neqstr4neqstr3	addi	r1,r0,1			% Return trueneqstr4	jr	r15			% Return to the caller	align%

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美mv日韩mv亚洲| 丝袜亚洲另类欧美| 亚洲成人tv网| 国产成人午夜电影网| 欧美亚洲精品一区| 中文乱码免费一区二区| 美脚の诱脚舐め脚责91| 91国产视频在线观看| 欧美精品一区二区三区蜜桃| 亚洲精品中文字幕在线观看| 国产91丝袜在线播放九色| 4438x成人网最大色成网站| 色综合天天视频在线观看| 99国产精品99久久久久久| 欧美tickling网站挠脚心| 亚洲精品中文在线观看| 亚洲午夜私人影院| 国产综合色视频| 日韩欧美亚洲另类制服综合在线 | 国产精品三级av在线播放| 日本aⅴ亚洲精品中文乱码| 91一区二区在线观看| 国产欧美日韩视频在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美伊人久久大香线蕉综合69| 中文字幕一区在线| 成人av先锋影音| 国产精品毛片大码女人| 成人激情开心网| 国产女同互慰高潮91漫画| 精品一区二区三区免费毛片爱| 欧美一区二区免费| 蜜臀va亚洲va欧美va天堂| 日韩一级精品视频在线观看| 日韩中文字幕麻豆| 91.麻豆视频| 麻豆精品一区二区综合av| 欧美不卡视频一区| 国产麻豆精品久久一二三| 久久久国产一区二区三区四区小说| 国产一区二区精品久久99| 国产视频一区在线观看| 成人免费的视频| 国产精品超碰97尤物18| 在线区一区二视频| 午夜精品久久久久久久久| 欧美一三区三区四区免费在线看 | 国产精品免费视频一区| www.色精品| 亚洲精品国产a| 欧美日韩一区二区三区高清| 日欧美一区二区| 精品乱码亚洲一区二区不卡| 国产大陆精品国产| 自拍偷自拍亚洲精品播放| 欧美日韩夫妻久久| 韩国成人精品a∨在线观看| 国产精品系列在线| 欧美日免费三级在线| 久久精品久久久精品美女| 国产欧美日产一区| 欧美视频在线一区| 国产一区二区三区蝌蚪| 中文字幕一区二区三区不卡在线| 欧美亚洲一区三区| 久久er精品视频| 国产精品久久久久久久岛一牛影视| 色婷婷亚洲精品| 精品一区二区免费视频| 国产精品国产馆在线真实露脸| 欧美日韩一区二区在线观看视频| 久久er精品视频| 悠悠色在线精品| 久久蜜桃一区二区| 欧美日韩亚洲高清一区二区| 国产真实乱子伦精品视频| 亚洲日本中文字幕区| 精品欧美久久久| 99国产精品99久久久久久| 精品在线亚洲视频| 亚洲国产欧美在线| 国产欧美va欧美不卡在线| 欧美日韩电影一区| 大胆欧美人体老妇| 麻豆一区二区三区| 亚洲综合一区在线| 国产精品三级av在线播放| 欧美一区二区三区免费在线看| av在线不卡观看免费观看| 久久国产精品色| 亚洲综合在线五月| 国产欧美日韩不卡免费| 色综合久久天天| 成人性视频网站| 狠狠色狠狠色合久久伊人| 亚洲一区在线播放| 亚洲色图另类专区| 国产精品久久久久婷婷二区次 | 色综合天天性综合| 国产99精品在线观看| 国产尤物一区二区在线| 日本va欧美va瓶| 三级在线观看一区二区| 一区二区三区蜜桃| 尤物视频一区二区| 亚洲激情图片一区| 最新国产の精品合集bt伙计| 国产欧美日韩在线看| 久久久久国色av免费看影院| 欧美videossexotv100| 欧美高清视频不卡网| 欧美日韩精品是欧美日韩精品| 99久久久久免费精品国产| proumb性欧美在线观看| 国产宾馆实践打屁股91| 国产麻豆一精品一av一免费| 国产伦精品一区二区三区视频青涩| 全部av―极品视觉盛宴亚洲| 热久久免费视频| 麻豆免费精品视频| 精品伊人久久久久7777人| 久久se精品一区精品二区| 国产呦精品一区二区三区网站| 国内偷窥港台综合视频在线播放| 青娱乐精品视频| 精品午夜久久福利影院| 国产精品一区三区| 成人午夜在线免费| 色哟哟欧美精品| 欧美日韩一区二区三区四区五区| 欧美精品视频www在线观看| 日韩午夜在线观看| 久久久精品国产免费观看同学| 国产欧美日韩在线| 一区二区在线观看av| 日本亚洲欧美天堂免费| 久久不见久久见免费视频7| 粉嫩aⅴ一区二区三区四区| 一本久道久久综合中文字幕 | 成a人片亚洲日本久久| 91国偷自产一区二区开放时间| 欧美日韩国产三级| 26uuu国产日韩综合| 国产精品久久久久永久免费观看 | 亚洲18女电影在线观看| 麻豆久久久久久久| 不卡视频免费播放| 国产欧美一区二区三区鸳鸯浴| 亚洲桃色在线一区| 丝袜亚洲精品中文字幕一区| 国内精品在线播放| 色婷婷综合中文久久一本| 日韩欧美在线不卡| 亚洲国产高清不卡| 日韩在线一区二区| 成人免费视频免费观看| 欧美久久久久久蜜桃| 日本一区二区三区免费乱视频| 亚洲影视在线观看| 国产精品影视在线观看| 欧美日韩精品欧美日韩精品| 欧美经典一区二区三区| 亚洲亚洲人成综合网络| 国产成人福利片| 欧美精品欧美精品系列| 国产三级精品三级| 日韩国产欧美在线播放| k8久久久一区二区三区| 日韩欧美国产麻豆| 亚洲欧美偷拍三级| 国模大尺度一区二区三区| 欧美在线观看禁18| 国产精品久久久久四虎| 麻豆成人久久精品二区三区红 | 国产午夜精品久久| 日韩黄色片在线观看| 色综合一区二区| 国产情人综合久久777777| 日韩精品成人一区二区三区| 色激情天天射综合网| 国产欧美一二三区| 激情文学综合插| 欧美日韩国产影片| 亚洲视频你懂的| 国产成a人亚洲精| 久久综合久色欧美综合狠狠| 天堂蜜桃一区二区三区| 欧美日韩中文精品| 亚洲免费伊人电影| 99视频精品在线| 国产精品人成在线观看免费| 国产一区二区看久久| 精品处破学生在线二十三| 日本在线不卡视频| 欧美精品成人一区二区三区四区| 亚洲综合999| 欧美亚洲国产一卡| 亚洲观看高清完整版在线观看| 色嗨嗨av一区二区三区| 亚洲免费毛片网站|