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

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

?? search.inc

?? 一個用純匯編 寫的操作系統 源代碼 是用 TASM 編譯器寫的
?? INC
字號:

; Assembly Editor core
; Copyright (c) 2001-2006, Tomasz Grysztar.
; All rights reserved.

find_first:
	mov	[search_flags],eax
	call	release_search_data
	or	esi,esi
	jz	nothing_to_search_for
	mov	edi,esi
	xor	al,al
	xor	ecx,ecx
	sub	ecx,edi
	repne	scasb
	lea	ebx,[edi-1]
	sub	ebx,esi
	jz	nothing_to_search_for
	lea	ecx,[(256+ebx)*4+ebx]
	call	get_memory
	or	eax,eax
	jz	not_enough_memory
	mov	[search_data],eax
	mov	edi,eax
	lea	ecx,[256+ebx]
	mov	eax,ebx
	rep	stosd
	mov	ecx,ebx
	mov	ebx,[search_data]
	mov	edx,ecx
	test	[search_flags],AEFIND_BACKWARD
	jnz	text_for_backward_search
	test	[search_flags],AEFIND_CASESENSITIVE
	jnz	copy_search_text
	push	ebx
	mov	ebx,case_table
    convert_search_text:
	lodsb
	xlatb
	stosb
	loop	convert_search_text
	pop	ebx
	jmp	make_character_shifts_table
    copy_search_text:
	rep	movsb
	jmp	make_character_shifts_table
    text_for_backward_search:
	add	edi,ecx
	mov	edx,ecx
	push	ebx
	mov	ebx,case_table
    reverse_search_text:
	lodsb
	test	[search_flags],AEFIND_CASESENSITIVE
	jnz	reverse_store_character
	xlatb
    reverse_store_character:
	dec	edi
	mov	[edi],al
	dec	ecx
	jnz	reverse_search_text
	pop	ebx
	add	edi,edx
	xor	ecx,ecx
    make_character_shifts_table:
	cmp	edx,ecx
	je	character_shifts_table_ok
	dec	edi
	jecxz	character_shift_ok
	mov	al,[edi]
	cmp	[ebx+eax*4],edx
	jne	character_shift_ok
	mov	[ebx+eax*4],ecx
    character_shift_ok:
	inc	ecx
	jmp	make_character_shifts_table
    character_shifts_table_ok:
	lea	edi,[ebx+(256+ecx)*4]
	push	edi
	lea	edi,[edi+ecx-2]
	movzx	eax,byte [edi+1]
	mov	edx,[ebx+eax*4]
	mov	[ebx+256*4],edx
	cmp	ecx,1
	je	suffix_match_shifts_table_done
	mov	ecx,2
	mov	esi,edi
	sub	esi,edx
    make_suffix_match_shifts_table:
	cmp	esi,[esp]
	jb	store_suffix_match_shift
	mov	al,[esi]
	cmp	al,[edi]
	je	store_suffix_match_shift
    find_suffix_match:
	dec	esi
	inc	edx
	cmp	esi,[esp]
	jb	match_part_of_suffix
	push	ecx esi edi
	repe	cmpsb
	pop	edi esi ecx
	jne	find_suffix_match
	jmp	store_suffix_match_shift
    match_part_of_suffix:
	mov	eax,[esp]
	push	ecx esi edi
	xchg	eax,esi
	sub	eax,esi
	sub	ecx,eax
	repe	cmpsb
	pop	edi esi ecx
	jne	suffix_match_shifts_table_done
    store_suffix_match_shift:
	mov	[ebx+256*4+(ecx-1)*4],edx
	dec	esi
	dec	edi
	inc	ecx
	cmp	ecx,[ebx]
	jbe	make_suffix_match_shifts_table
    suffix_match_shifts_table_done:
	pop	eax

find_next:
	mov	edi,[search_data]
	or	edi,edi
	jz	nothing_to_search_for
	push	[caret_line]
	push	[caret_line_number]
	push	[caret_position]
	push	[selection_position]
	test	[search_flags],AEFIND_BACKWARD
	jnz	search_backward
    search_for_text:
	mov	ecx,[edi]
	dec	ecx
	add	ecx,[caret_position]
	mov	esi,[caret_line]
	cmp	ecx,[peak_line_length]
	jae	text_not_in_this_line
	mov	[caret_position],ecx
	call	get_caret_segment
	mov	edi,[search_data]
	mov	eax,[edi]
	lea	ebx,[edi+(256+eax)*4]
	mov	ah,[ebx+eax-1]
	mov	ebx,case_table
    search_in_line:
	cmp	edx,SEGMENT_DATA_LENGTH
	jae	text_not_in_this_line
	mov	al,[esi+SEGMENT_HEADER_LENGTH+edx]
	test	[search_flags],AEFIND_CASESENSITIVE
	jnz	compare_last_character
	xlatb
    compare_last_character:
	cmp	al,ah
	je	partial_match
    mismatch_shift:
	movzx	ecx,al
	mov	ecx,[edi+ecx*4]
    shift_search_position:
	add	edx,ecx
	add	ecx,[caret_position]
	cmp	ecx,[peak_line_length]
	jae	text_not_in_this_line
	mov	[caret_position],ecx
    check_search_position:
	cmp	edx,SEGMENT_DATA_LENGTH
	jb	search_in_line
	mov	ecx,[esi]
	btr	ecx,0
	jnc	search_in_line
	sub	edx,SEGMENT_DATA_LENGTH
	mov	esi,ecx
	jmp	check_search_position
    partial_match:
	mov	ecx,[edi]
	dec	ecx
	jz	text_found
	push	edi
	lea	edi,[edi+(256+ecx+1)*4]
	lea	edi,[edi+ecx]
    compare_text:
	sub	edx,1
	jc	compare_in_previous_segment
	dec	edi
	mov	al,20h
	cmp	edx,SEGMENT_DATA_LENGTH
	jae	compare_character
	mov	al,[esi+SEGMENT_HEADER_LENGTH+edx]
	test	[search_flags],AEFIND_CASESENSITIVE
	jnz	compare_character
	xlatb
    compare_character:
	cmp	al,[edi]
	loope	compare_text
	pop	edi
	je	text_found
	neg	ecx
	add	ecx,[edi]
	dec	ecx
	add	edx,ecx
	mov	ecx,[edi+(256+ecx-1)*4]
	jmp	shift_search_position
    compare_in_previous_segment:
	mov	esi,[esi+4]
	and	esi,not 1
	mov	edx,SEGMENT_DATA_LENGTH
	jmp	compare_text
    text_not_in_this_line:
	mov	esi,[esi]
	or	esi,esi
	jz	text_not_found
	btr	esi,0
	jc	text_not_in_this_line
    search_in_next_line:
	mov	[caret_line],esi
	inc	[caret_line_number]
	mov	[caret_position],0
	mov	edi,[search_data]
	jmp	search_for_text
    text_found:
	mov	eax,[caret_position]
	inc	eax
	mov	[selection_position],eax
	sub	eax,[edi]
	mov	[caret_position],eax
	jz	left_text_edge_ok
	test	[search_flags],AEFIND_WHOLEWORDS
	jz	left_text_edge_ok
	mov	edi,[search_data]
	mov	ecx,[edi]
	mov	al,[edi+(256+ecx)*4]
	call	recognize_character
	jc	left_text_edge_ok
	dec	[caret_position]
	call	get_caret_segment
	inc	[caret_position]
	cmp	edx,SEGMENT_DATA_LENGTH
	jae	left_text_edge_ok
	mov	al,[esi+SEGMENT_HEADER_LENGTH+edx]
	call	recognize_character
	jnc	found_not_acceptable
    left_text_edge_ok:
	mov	eax,[caret_position]
	xchg	eax,[selection_position]
	mov	[caret_position],eax
	mov	edi,[search_data]
	mov	ecx,[edi]
	lea	edi,[edi+(256+ecx)*4]
	mov	al,[edi+ecx-1]
	cmp	al,20h
	je	right_text_edge_blank
	test	[search_flags],AEFIND_WHOLEWORDS
	jz	right_text_edge_ok
	call	recognize_character
	jc	right_text_edge_ok
	call	get_caret_segment
	cmp	edx,SEGMENT_DATA_LENGTH
	jae	right_text_edge_ok
	mov	al,[esi+SEGMENT_HEADER_LENGTH+edx]
	call	recognize_character
	jc	right_text_edge_ok
	mov	eax,[selection_position]
	mov	[caret_position],eax
    found_not_acceptable:
	mov	edi,[search_data]
	mov	ecx,[edi]
	mov	eax,[edi+(256+ecx-1)*4]
	add	[caret_position],eax
	jmp	search_for_text
    right_text_edge_blank:
	call	get_caret_segment
    check_for_blank_end:
	mov	ecx,SEGMENT_DATA_LENGTH
	sub	ecx,edx
	jz	blank_end_next_segment
	push	edi
	mov	al,20h
	lea	edi,[esi+SEGMENT_HEADER_LENGTH+edx]
	repe	scasb
	pop	edi
	jne	right_text_edge_ok
    blank_end_next_segment:
	mov	esi,[esi]
	or	esi,esi
	jz	text_not_found
	btr	esi,0
	jnc	search_in_next_line
	xor	edx,edx
	jmp	check_for_blank_end
    right_text_edge_ok:
	mov	eax,[caret_line]
	mov	ecx,[caret_line_number]
	mov	[selection_line],eax
	mov	[selection_line_number],ecx
	add	esp,16
	clc
	retn
    text_not_found:
	pop	[selection_position]
	pop	[caret_position]
	pop	[caret_line_number]
	pop	[caret_line]
	call	release_search_data
    nothing_to_search_for:
	stc
	retn
    search_backward:
	mov	ecx,[caret_position]
	sub	ecx,1
	jc	backward_text_not_in_this_line
	mov	[caret_position],ecx
	mov	edi,[search_data]
	mov	eax,[edi]
	add	ecx,eax
	mov	al,[edi+(256+eax)*4]
	cmp	al,20h
	jne	backward_search_starting_position_ok
	mov	esi,[caret_line]
	mov	ecx,[esi+8]
	mov	edi,[search_data]
	mov	eax,[edi]
	sub	ecx,eax
	jc	backward_text_not_in_this_line
	cmp	ecx,[caret_position]
	jae	backward_search_starting_position_ok
	mov	[caret_position],ecx
    backward_search_starting_position_ok:
	call	get_caret_segment
	mov	edi,[search_data]
	mov	eax,[edi]
	lea	ebx,[edi+(256+eax)*4]
	mov	ah,[ebx+eax-1]
	mov	ebx,case_table
	cmp	edx,SEGMENT_DATA_LENGTH
	jb	backward_search_in_line
	mov	eax,SEGMENT_DATA_LENGTH-1
	sub	edx,eax
	sub	[caret_position],edx
	mov	edx,eax
    backward_search_in_line:
	mov	al,[esi+SEGMENT_HEADER_LENGTH+edx]
	test	[search_flags],AEFIND_CASESENSITIVE
	jnz	compare_first_character
	xlatb
    compare_first_character:
	cmp	al,ah
	je	backward_partial_match
    backward_mismatch_shift:
	movzx	ecx,al
	mov	ecx,[edi+ecx*4]
    shift_backward_search_position:
	sub	edx,ecx
	sub	[caret_position],ecx
	jc	backward_text_not_in_this_line
    check_backward_search_position:
	cmp	edx,0
	jge	backward_search_in_line
	mov	esi,[esi+4]
	and	esi,not 1
	add	edx,SEGMENT_DATA_LENGTH
	jmp	check_backward_search_position
    backward_partial_match:
	mov	ecx,[edi]
	dec	ecx
	jz	backward_text_found
	push	edi
	lea	edi,[edi+(256+ecx+1)*4]
	lea	edi,[edi+ecx]
    backward_compare_text:
	inc	edx
	cmp	edx,SEGMENT_DATA_LENGTH
	jae	compare_in_next_segment
	dec	edi
	mov	al,[esi+SEGMENT_HEADER_LENGTH+edx]
	test	[search_flags],AEFIND_CASESENSITIVE
	jnz	backward_compare_character
	xlatb
    backward_compare_character:
	cmp	al,[edi]
	loope	backward_compare_text
	pop	edi
	je	backward_text_found
	neg	ecx
	add	ecx,[edi]
	dec	ecx
	sub	edx,ecx
	mov	ecx,[edi+(256+ecx)*4]
	jmp	shift_backward_search_position
    compare_in_next_segment:
	sub	edx,SEGMENT_DATA_LENGTH
	mov	esi,[esi]
	btr	esi,0
	jnc	compare_blank_space
	dec	edx
	jmp	backward_compare_text
    compare_blank_space:
	pop	edi
	cmp	ecx,[edi]
	jbe	backward_text_found
    backward_text_not_in_this_line:
	mov	esi,[caret_line]
	mov	esi,[esi+4]
	or	esi,esi
	jz	text_not_found
	mov	[caret_line],esi
	dec	[caret_line_number]
	mov	ecx,[peak_line_length]
	mov	[caret_position],ecx
	jmp	search_backward
    backward_text_found:
	test	[search_flags],AEFIND_WHOLEWORDS
	jz	backward_left_text_edge_ok
	cmp	[caret_position],0
	je	backward_left_text_edge_ok
	mov	edi,[search_data]
	mov	ecx,[edi]
	lea	edi,[edi+(256+ecx)*4]
	mov	al,[edi+ecx-1]
	call	recognize_character
	jc	backward_left_text_edge_ok
	dec	[caret_position]
	call	get_caret_segment
	inc	[caret_position]
	cmp	edx,SEGMENT_DATA_LENGTH
	jae	backward_left_text_edge_ok
	mov	al,[esi+SEGMENT_HEADER_LENGTH+edx]
	call	recognize_character
	jnc	backward_found_not_acceptable
    backward_left_text_edge_ok:
	mov	eax,[caret_position]
	mov	[selection_position],eax
	mov	edi,[search_data]
	mov	ecx,[edi]
	add	eax,ecx
	mov	[caret_position],eax
	test	[search_flags],AEFIND_WHOLEWORDS
	jz	backward_right_text_edge_ok
	mov	al,[edi+(256+ecx)*4]
	call	recognize_character
	jc	backward_right_text_edge_ok
	call	get_caret_segment
	cmp	edx,SEGMENT_DATA_LENGTH
	jae	backward_right_text_edge_ok
	mov	al,[esi+SEGMENT_HEADER_LENGTH+edx]
	call	recognize_character
	jc	backward_right_text_edge_ok
	mov	eax,[selection_position]
	mov	[caret_position],eax
    backward_found_not_acceptable:
	mov	edi,[search_data]
	mov	ecx,[edi]
	mov	eax,[edi+(256+ecx-1)*4]
	sub	[caret_position],eax
	jbe	backward_text_not_in_this_line
	jmp	search_backward
    backward_right_text_edge_ok:
	mov	eax,[caret_position]
	xchg	eax,[selection_position]
	mov	[caret_position],eax
	mov	eax,[caret_line]
	mov	ecx,[caret_line_number]
	mov	[selection_line],eax
	mov	[selection_line_number],ecx
	add	esp,16
	clc
	retn
  release_search_data:
	mov	edi,[search_data]
	or	edi,edi
	jz	search_data_released
	mov	eax,edi
	call	release_memory
	mov	[search_data],0
    search_data_released:
	retn

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线日韩国产精品| 亚洲黄色小视频| 欧美一级理论性理论a| 欧美亚洲综合一区| 欧美性感一区二区三区| 欧美丝袜第三区| 欧美日韩国产综合一区二区三区| 欧美日韩中文精品| 欧美丝袜自拍制服另类| 欧美日本高清视频在线观看| 欧美高清视频一二三区| 91精品国产综合久久婷婷香蕉| 欧美高清一级片在线| 欧美一级国产精品| 日韩视频在线观看一区二区| 日韩一区二区三区精品视频| 精品欧美乱码久久久久久1区2区| 精品奇米国产一区二区三区| 国产亚洲综合av| 亚洲色图一区二区三区| 亚洲成a人片综合在线| 天天综合网 天天综合色| 美女视频一区二区三区| 国产综合色在线视频区| 成人aaaa免费全部观看| 色88888久久久久久影院按摩| 欧美精品1区2区3区| 精品国产电影一区二区| 国产精品免费网站在线观看| 一区二区三区四区亚洲| 日韩制服丝袜av| 国产在线国偷精品免费看| 成人免费精品视频| 欧洲色大大久久| 欧美成人a在线| 国产精品不卡在线观看| 亚洲成人综合视频| 国产一区二区h| 色婷婷综合久久久| 日韩一级视频免费观看在线| 国产目拍亚洲精品99久久精品| 亚洲乱码国产乱码精品精小说| 天天操天天色综合| 国产99精品国产| 欧洲一区二区av| 精品国产凹凸成av人导航| 国产精品精品国产色婷婷| 丝袜国产日韩另类美女| 国产福利91精品一区二区三区| 在线观看www91| 久久久国际精品| 亚洲成人综合视频| 成人国产免费视频| 91精品中文字幕一区二区三区| 国产欧美精品在线观看| 日韩精品一二区| 成人精品在线视频观看| 日韩欧美国产wwwww| 综合av第一页| 国产精品一区一区| 欧美夫妻性生活| 亚洲精品中文字幕在线观看| 韩国精品主播一区二区在线观看 | 午夜精品福利视频网站| 国产精品综合在线视频| 欧美日韩免费高清一区色橹橹| 久久久天堂av| 日本中文字幕一区二区有限公司| 波多野洁衣一区| www国产成人免费观看视频 深夜成人网| 亚洲日本va午夜在线电影| 久久99精品国产| 91麻豆精品91久久久久同性| 一区二区三区四区中文字幕| 成人污视频在线观看| 欧美精品一区二区久久婷婷| 五月综合激情婷婷六月色窝| 99re这里只有精品首页| 欧美激情艳妇裸体舞| 九一久久久久久| 日韩欧美亚洲一区二区| 天堂va蜜桃一区二区三区| 91久久精品午夜一区二区| 亚洲国产精品精华液ab| 国产专区欧美精品| 欧美不卡123| 久久精品国产99久久6| 欧美麻豆精品久久久久久| 亚洲女同ⅹxx女同tv| 成人免费观看视频| 国产日韩精品一区二区三区| 狠狠狠色丁香婷婷综合激情| 欧美sm美女调教| 蜜桃视频一区二区三区 | 亚洲高清久久久| 一本大道久久a久久精品综合| 欧美国产乱子伦| 成人97人人超碰人人99| 中文字幕精品一区| a在线欧美一区| 中文字幕一区二区三中文字幕| 成人av第一页| 亚洲视频香蕉人妖| av资源站一区| 自拍偷拍亚洲欧美日韩| 色综合色狠狠天天综合色| 亚洲欧美偷拍卡通变态| 欧美性xxxxx极品少妇| 亚洲成国产人片在线观看| 在线成人免费观看| 久久精品99国产精品日本| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 91精品国产色综合久久ai换脸| 日韩av一区二区三区四区| 日韩一卡二卡三卡四卡| 韩国毛片一区二区三区| 欧美激情一区二区三区在线| 99国产精品一区| 亚洲一区二区美女| 欧美一级专区免费大片| 国内精品自线一区二区三区视频| 精品国产成人系列| 成人av网站免费| 亚洲国产精品一区二区www在线| 欧美日韩激情一区二区三区| 久久av资源网| 国产亚洲综合在线| 色综合久久久久综合体桃花网| 亚洲成a人v欧美综合天堂| 日韩一区二区不卡| 成人综合婷婷国产精品久久| 一区二区中文视频| 欧美日韩一区二区在线观看| 奇米综合一区二区三区精品视频| www国产成人| 日本高清不卡一区| 日韩精品一二三| 国产精品无遮挡| 欧美日韩综合在线| 国产精品夜夜爽| 亚洲激情图片一区| 日韩精品一区二区三区视频播放| 国产精品夜夜爽| 亚洲一级在线观看| 久久久国产午夜精品| 欧美性受xxxx| 国产在线国偷精品免费看| 夜夜嗨av一区二区三区中文字幕| 制服丝袜亚洲网站| 成年人网站91| 精品一区二区三区在线观看| 日韩一区欧美一区| 日韩一区二区影院| 99视频超级精品| 六月丁香婷婷久久| 亚洲人一二三区| 久久亚洲免费视频| 欧美日韩国产综合一区二区三区 | 欧美精品一区二区三区蜜桃视频| av电影在线观看完整版一区二区| 丝袜美腿亚洲色图| 亚洲色欲色欲www在线观看| 日韩精品一区二区在线| 色欧美片视频在线观看| 国内精品写真在线观看| 亚洲香蕉伊在人在线观| 国产欧美一区在线| 91精品国产日韩91久久久久久| 91麻豆精品视频| 国产成人午夜电影网| 蜜桃精品视频在线| 亚洲午夜国产一区99re久久| 亚洲国产精品t66y| 精品盗摄一区二区三区| 欧美四级电影在线观看| 99视频精品在线| 国产成人精品免费视频网站| 蜜臀av一区二区| 亚洲一区二区成人在线观看| 国产真实乱对白精彩久久| 亚洲国产欧美在线| 日韩理论在线观看| 中文字幕乱码一区二区免费| www国产成人免费观看视频 深夜成人网| 欧美在线999| 99久久婷婷国产综合精品电影| 国产一区二区三区久久久| 日韩电影在线免费观看| 亚洲三级久久久| 中文字幕乱码久久午夜不卡| 久久久久久电影| 亚洲精品一区二区三区在线观看 | 另类小说一区二区三区| 亚洲国产精品一区二区久久 | 亚洲黄色录像片| 综合av第一页| 最新中文字幕一区二区三区| 国产精品视频看| 中文av一区特黄| 欧美激情艳妇裸体舞|