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

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

?? asmedit.inc

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

; Assembly Editor interface for Win32 IDE
; Copyright (c) 2001-2006, Tomasz Grysztar.
; All rights reserved.

SEGMENT_LENGTH	      = 100h
BLOCK_LENGTH	      = 100h * SEGMENT_LENGTH
SEGMENT_HEADER_LENGTH = 16
SEGMENT_DATA_LENGTH   = SEGMENT_LENGTH - SEGMENT_HEADER_LENGTH

proc AsmEdit hwnd,wmsg,wparam,lparam

 locals

  editor_memory dd ?
  editor_style dd ?

  label editor_data

  first_line dd ?
  lines_count dd ?
  peak_line_length dd ?
  maximum_position dd ?
  window_line dd ?
  window_position dd ?
  window_line_number dd ?
  caret_line dd ?
  caret_position dd ?
  caret_line_number dd ?
  selection_line dd ?
  selection_position dd ?
  selection_line_number dd ?
  editor_mode dd ?

  editor_status_size = $ - editor_data

  editor_font dd ?
  font_width dd ?
  font_height dd ?
  screen_base dd ?
  screen_offset dd ?
  screen_width dd ?
  screen_height dd ?
  screen_size dd ?
  window_width dd ?
  window_height dd ?
  background_color dd ?
  text_color dd ?
  selection_background dd ?
  selection_text dd ?
  syntax_proc dd ?
  syntax_colors dd ?
  menu_handle dd ?
  menu_window dd ?
  line_buffer dd ?
  line_buffer_size dd ?
  unallocated_segments dd ?
  unallocated_segments_end dd ?
  released_segments dd ?
  memory_search_block dd ?
  memory_search_segment dd ?
  lengths_table dd ?
  undo_data dd ?
  search_data dd ?
  search_flags dd ?
  caret_x dd ?
  caret_y dd ?
  current_operation db ?
  last_operation db ?
  mouse_select db ?
  focus db ?

  editor_data_size = $ - editor_data

  return_value dd ?
  background_brush dd ?
  selection_brush dd ?
  ps PAINTSTRUCT
  tm TEXTMETRIC
  sc SCROLLINFO
  point POINT
  rect RECT
  size SIZE
  char dd ?
  kbstate rb 100h
  was_selection db ?
  line_selection db ?
  clipboard_opened db ?
  redraw_now db ?
  notification db ?

 endl

	push	ebx esi edi
	invoke	GetWindowLong,[hwnd],GWL_STYLE
	mov	[editor_style],eax
	cmp	[wmsg],WM_CREATE
	je	wm_create
	cmp	[wmsg],WM_GETDLGCODE
	je	wm_getdlgcode
	invoke	GetWindowLong,[hwnd],0
	or	eax,eax
	jz	defwndproc
	mov	[editor_memory],eax
	lea	esi,[eax+8]
	lea	edi,[editor_data]
	mov	ecx,editor_data_size shr 2
	rep	movsd
	mov	[return_value],0
	mov	[notification],0
	mov	[redraw_now],0
	mov	[clipboard_opened],0
	cmp	[wmsg],WM_DESTROY
	je	wm_destroy
	cmp	[wmsg],WM_PAINT
	je	wm_paint
	invoke	HideCaret,[hwnd]
	cmp	[wmsg],WM_HSCROLL
	je	wm_hscroll
	cmp	[wmsg],WM_VSCROLL
	je	wm_vscroll
	cmp	[wmsg],WM_SIZE
	je	wm_size
	cmp	[selection_line],0
	setnz	al
	mov	[was_selection],al
	xor	al,al
	xchg	[current_operation],al
	mov	[last_operation],al
	mov	eax,[wmsg]
	cmp	eax,WM_SETFOCUS
	je	wm_setfocus
	cmp	eax,WM_KILLFOCUS
	je	wm_killfocus
	cmp	eax,WM_KEYDOWN
	je	wm_keydown
	cmp	eax,WM_SYSKEYDOWN
	je	wm_syskeydown
	cmp	eax,WM_CHAR
	je	wm_char
	cmp	eax,WM_LBUTTONDOWN
	je	wm_lbuttondown
	cmp	eax,WM_LBUTTONUP
	je	wm_lbuttonup
	cmp	eax,WM_MOUSEMOVE
	je	wm_mousemove
	cmp	eax,WM_LBUTTONDBLCLK
	je	wm_lbuttondblclk
	cmp	eax,WM_MOUSEWHEEL
	je	wm_mousewheel
	cmp	eax,WM_RBUTTONDOWN
	je	wm_rbuttondown
	cmp	eax,WM_COPY
	je	wm_copy
	cmp	eax,WM_CUT
	je	wm_cut
	cmp	eax,WM_PASTE
	je	wm_paste
	cmp	eax,WM_CLEAR
	je	wm_clear
	cmp	eax,WM_SETTEXT
	je	wm_settext
	cmp	eax,WM_GETTEXTLENGTH
	je	wm_gettextlength
	cmp	eax,WM_GETTEXT
	je	wm_gettext
	cmp	eax,WM_SETFONT
	je	wm_setfont
	cmp	eax,WM_GETFONT
	je	wm_getfont
	cmp	eax,WM_UNDO
	je	wm_undo
	cmp	eax,EM_UNDO
	je	wm_undo
	cmp	eax,EM_CANUNDO
	je	em_canundo
	cmp	eax,EM_EMPTYUNDOBUFFER
	je	em_emptyundobuffer
	cmp	eax,EM_REPLACESEL
	je	em_replacesel
	cmp	eax,AEM_SETMODE
	je	aem_setmode
	cmp	eax,AEM_GETMODE
	je	aem_getmode
	cmp	eax,AEM_SETSYNTAXHIGHLIGHT
	je	aem_setsyntaxhighlight
	cmp	eax,AEM_SETRIGHTCLICKMENU
	je	aem_setrightclickmenu
	cmp	eax,AEM_GETLINELENGTH
	je	aem_getlinelength
	cmp	eax,AEM_GETLINE
	je	aem_getline
	cmp	eax,AEM_SETPOS
	je	aem_setpos
	cmp	eax,AEM_GETPOS
	je	aem_getpos
	cmp	eax,AEM_FINDFIRST
	je	aem_findfirst
	cmp	eax,AEM_FINDNEXT
	je	aem_findnext
	cmp	eax,AEM_CANFINDNEXT
	je	aem_canfindnext
	cmp	eax,AEM_GETWORDATCARET
	je	aem_getwordatcaret
	cmp	eax,AEM_SETTEXTCOLOR
	je	aem_settextcolor
	cmp	eax,AEM_SETSELCOLOR
	je	aem_setselcolor
	invoke	ShowCaret,[hwnd]
defwndproc:
	invoke	DefWindowProc,[hwnd],[wmsg],[wparam],[lparam]
	jmp	finish_wndproc
wm_create:
	call	init_editor_memory
	jc	create_failed
	invoke	SetWindowLong,[hwnd],0,[editor_memory]
	mov	[syntax_proc],SyntaxProc
	mov	[syntax_colors],0
	mov	[current_operation],0
	mov	[focus],0
	mov	[mouse_select],0
	mov	[menu_handle],0
	mov	eax,SEGMENT_DATA_LENGTH*2
	mov	[line_buffer_size],eax
	invoke	VirtualAlloc,0,eax,MEM_COMMIT,PAGE_READWRITE
	or	eax,eax
	jz	create_failed
	mov	[line_buffer],eax
	mov	[screen_base],0
	invoke	GetSysColor,COLOR_WINDOW
	mov	[background_color],eax
	invoke	GetSysColor,COLOR_WINDOWTEXT
	mov	[text_color],eax
	invoke	GetSysColor,COLOR_HIGHLIGHT
	mov	[selection_background],eax
	invoke	GetSysColor,COLOR_HIGHLIGHTTEXT
	mov	[selection_text],eax
	mov	eax,[asmedit_font]
	mov	[editor_font],eax
	invoke	GetDC,[hwnd]
	mov	ebx,eax
	invoke	SelectObject,ebx,[editor_font]
	lea	edi,[char]
	mov	byte [edi],20h
	lea	eax,[size]
	invoke	GetTextExtentPoint32,ebx,edi,1,eax
	mov	eax,[size.cy]
	mov	[font_height],eax
	mov	eax,[size.cx]
	mov	[font_width],eax
	invoke	ReleaseDC,[hwnd],ebx
	mov	[return_value],0
	jmp	done
    create_failed:
	or	eax,-1
	jmp	finish_wndproc
wm_destroy:
	invoke	VirtualFree,[line_buffer],0,MEM_RELEASE
	invoke	VirtualFree,[screen_base],0,MEM_RELEASE
	call	release_search_data
	call	release_editor_memory
	invoke	SetWindowLong,[hwnd],0,0
	xor	eax,eax
	jmp	finish_wndproc
wm_getdlgcode:
	mov	eax,DLGC_WANTCHARS+DLGC_WANTARROWS
	jmp	finish_wndproc
wm_paint:
	lea	eax,[rect]
	invoke	GetUpdateRect,[hwnd],eax,FALSE
	or	eax,eax
	jz	finish_wndproc
	cmp	[screen_base],0
	je	finish_wndproc
	lea	eax,[ps]
	invoke	BeginPaint,[hwnd],eax
	mov	ebx,eax
	invoke	CreateSolidBrush,[background_color]
	mov	[background_brush],eax
	invoke	CreateSolidBrush,[selection_background]
	mov	[selection_brush],eax
	invoke	SelectObject,ebx,[editor_font]
	mov	esi,[screen_base]
	add	esi,[screen_offset]
	mov	eax,[screen_width]
	mul	[screen_height]
	lea	edi,[esi+eax]
	mov	[rect.top],0
	mov	eax,[font_height]
	mov	[rect.bottom],eax
	mov	ecx,[screen_height]
    paint_screen:
	push	ecx
	mov	[rect.left],0
	mov	ecx,[screen_width]
    paint_line:
	cmp	byte [esi],0
	je	paint_empty_block
	mov	edx,1
	mov	al,[edi]
    get_characters_block:
	cmp	edx,ecx
	je	get_color
	cmp	al,[edi+edx]
	jne	get_color
	cmp	byte [esi+edx],0
	je	get_color
	inc	edx
	jmp	get_characters_block
    paint_empty_block:
	mov	edx,1
	test	byte [edi],80h
	jnz	get_empty_selection
    get_empty_block:
	cmp	edx,ecx
	je	fill_empty_block
	cmp	byte [esi+edx],0
	jne	fill_empty_block
	test	byte [edi+edx],80h
	jnz	fill_empty_block
	inc	edx
	jmp	get_empty_block
    fill_empty_block:
	push	ecx edx
	mov	eax,[font_width]
	mul	edx
	add	eax,[rect.left]
	mov	[rect.right],eax
	lea	eax,[rect]
	invoke	FillRect,ebx,eax,[background_brush]
	jmp	paint_next_block
    get_empty_selection:
	cmp	edx,ecx
	je	fill_empty_selection
	cmp	byte [esi+edx],0
	jne	fill_empty_selection
	test	byte [edi+edx],80h
	jz	fill_empty_selection
	inc	edx
	jmp	get_empty_selection
    fill_empty_selection:
	push	ecx edx
	mov	eax,[font_width]
	mul	edx
	add	eax,[rect.left]
	mov	[rect.right],eax
	lea	eax,[rect]
	invoke	FillRect,ebx,eax,[selection_brush]
	jmp	paint_next_block
    get_color:
	push	ecx edx
	test	byte [edi],80h
	jnz	highlight_color
	invoke	SetBkColor,ebx,[background_color]
	mov	al,[edi]
	or	al,al
	jnz	syntax_color
    default_color:
	invoke	SetTextColor,ebx,[text_color]
	jmp	color_ok
    syntax_color:
	movzx	eax,al
	mov	edx,[syntax_colors]
	or	edx,edx
	jz	default_color
	mov	eax,[edx+(eax-1)*4]
	invoke	SetTextColor,ebx,eax
	jmp	color_ok
    highlight_color:
	invoke	SetBkColor,ebx,[selection_background]
	invoke	SetTextColor,ebx,[selection_text]
    color_ok:
	mov	ecx,[esp]
	mov	eax,[font_width]
	mul	ecx
	add	eax,[rect.left]
	mov	[rect.right],eax
	lea	eax,[rect]
	invoke	DrawText,ebx,esi,ecx,eax,DT_LEFT+DT_NOPREFIX+DT_SINGLELINE
    paint_next_block:
	pop	edx ecx
	sub	ecx,edx
	add	esi,edx
	add	edi,edx
	mov	eax,[rect.right]
	mov	[rect.left],eax
	or	ecx,ecx
	jnz	paint_line
	mov	eax,[font_height]
	add	[rect.top],eax
	add	[rect.bottom],eax
	pop	ecx
	dec	ecx
	jnz	paint_screen
	invoke	DeleteObject,[background_brush]
	invoke	DeleteObject,[selection_brush]
	lea	eax,[ps]
	invoke	EndPaint,[hwnd],eax
	xor	eax,eax
	jmp	finish_wndproc
wm_setfocus:
	or	[focus],-1
	call	create_caret
	mov	[notification],AEN_SETFOCUS
	cmp	[was_selection],0
	je	done
	jmp	moved_window
wm_killfocus:
	mov	[focus],0
	invoke	DestroyCaret
	mov	[notification],AEN_KILLFOCUS
	cmp	[was_selection],0
	je	done
	jmp	moved_window
wm_hscroll:
	mov	[sc.cbSize],sizeof.SCROLLINFO
	mov	[sc.fMask],SIF_ALL
	lea	eax,[sc]
	invoke	GetScrollInfo,[hwnd],SB_HORZ,eax
	movzx	eax,word [wparam]
	cmp	eax,SB_LINEUP
	je	hscroll_left
	cmp	eax,SB_LINEDOWN
	je	hscroll_right
	cmp	eax,SB_THUMBTRACK
	je	hscroll_pos
	cmp	eax,SB_PAGEUP
	je	hscroll_wleft
	cmp	eax,SB_PAGEDOWN
	je	hscroll_wright
    hscroll_ignore:
	jmp	done
    hscroll_left:
	cmp	[window_position],0
	je	hscroll_ignore
	dec	[window_position]
	jmp	moved_window
    hscroll_right:
	mov	eax,[maximum_position]
	sub	eax,[sc.nPage]
	cmp	[window_position],eax
	jge	hscroll_ignore
	inc	[window_position]
	jmp	moved_window
    hscroll_pos:
	mov	eax,[sc.nTrackPos]
	mov	[window_position],eax
	jmp	moved_window
    hscroll_wleft:
	mov	eax,[sc.nPage]
	sub	[window_position],eax
	jnc	moved_window
	mov	[window_position],0
	jmp	moved_window
    hscroll_wright:
	mov	eax,[sc.nPage]
	mov	ecx,[maximum_position]
	sub	ecx,eax
	add	[window_position],eax
	cmp	[window_position],ecx
	jbe	moved_window
	mov	[window_position],ecx
	jmp	moved_window
wm_vscroll:
	mov	[sc.cbSize],sizeof.SCROLLINFO
	mov	[sc.fMask],SIF_ALL
	lea	eax,[sc]
	invoke	GetScrollInfo,[hwnd],SB_VERT,eax
	movzx	eax,word [wparam]
	cmp	eax,SB_LINEUP
	je	vscroll_up
	cmp	eax,SB_LINEDOWN
	je	vscroll_down
	cmp	eax,SB_THUMBTRACK
	je	vscroll_pos
	cmp	eax,SB_PAGEUP
	je	vscroll_pageup
	cmp	eax,SB_PAGEDOWN
	je	vscroll_pagedown
    vscroll_ignore:
	jmp	done
    vscroll_up:
	mov	esi,[window_line]
	mov	esi,[esi+4]
	or	esi,esi
	jz	vscroll_ignore
	dec	[window_line_number]
	mov	[window_line],esi
	jmp	moved_window
    vscroll_down:
	mov	eax,[sc.nPos]
	add	eax,[sc.nPage]
	cmp	eax,[sc.nMax]
	ja	vscroll_ignore
	mov	esi,[window_line]
    vscroll_skip_line:
	mov	esi,[esi]
	btr	esi,0
	jc	vscroll_skip_line
	or	esi,esi
	jz	vscroll_ignore
	inc	[window_line_number]
	mov	[window_line],esi
	jmp	moved_window
    vscroll_pos:
	mov	eax,[sc.nTrackPos]
	call	find_line
	or	esi,esi
	jz	vscroll_ignore
	mov	[window_line],esi
	mov	[window_line_number],ecx
	jmp	moved_window
    vscroll_pageup:
	mov	esi,[window_line]
	mov	ecx,[sc.nPage]
    scroll_up:
	mov	eax,[esi+4]
	or	eax,eax
	jz	scroll_ok
	dec	[window_line_number]
	mov	esi,eax
	loop	scroll_up
	jmp	scroll_ok
    vscroll_pagedown:
	mov	esi,[window_line]
	mov	eax,[sc.nPos]
	add	eax,[sc.nPage]
	mov	ecx,[sc.nMax]
	sub	ecx,eax
	inc	ecx
	cmp	ecx,[sc.nPage]
	jbe	scroll_down
	mov	ecx,[sc.nPage]
    scroll_down:
	mov	eax,[esi]
	btr	eax,0
	jnc	scroll_next_line
	mov	esi,eax
	jmp	scroll_down
    scroll_next_line:
	or	eax,eax
	jz	scroll_ok
	inc	[window_line_number]
	mov	esi,eax
	loop	scroll_down
    scroll_ok:
	mov	[window_line],esi
	jmp	moved_window
wm_mousewheel:
	mov	esi,[window_line]
	mov	eax,[wparam]
	sar	eax,16

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久在线观看免费| 欧美aa在线视频| 日本强好片久久久久久aaa| 捆绑紧缚一区二区三区视频| 99久久国产综合精品女不卡| 久久综合狠狠综合| 午夜不卡在线视频| 色综合久久88色综合天天| 久久久久国产精品麻豆ai换脸| 午夜精品福利一区二区蜜股av| www.一区二区| 久久精品欧美一区二区三区麻豆| 天堂成人国产精品一区| 在线欧美日韩国产| 中文字幕一区视频| 不卡的av在线播放| 久久精品综合网| 毛片av一区二区三区| 欧美日韩在线三区| 一区二区三区在线播| av欧美精品.com| 中文字幕制服丝袜一区二区三区| 国产一二精品视频| 久久久久久日产精品| 粉嫩aⅴ一区二区三区四区| 日韩午夜精品视频| 丝袜亚洲另类丝袜在线| 欧美精品在线观看播放| 亚洲一二三区在线观看| 欧美日韩国产在线观看| 亚洲成人免费观看| 欧美精品一卡两卡| 免费的成人av| 精品国产区一区| 国产成都精品91一区二区三| 国产三级一区二区| fc2成人免费人成在线观看播放| 中文字幕在线视频一区| av成人免费在线观看| 亚洲免费在线看| 欧美性xxxxxx少妇| 无码av免费一区二区三区试看| 在线免费观看视频一区| 亚洲bt欧美bt精品777| 欧美一区二区网站| 久久草av在线| 国产精品无遮挡| 一本久道久久综合中文字幕| 亚洲福利电影网| 欧美一区二区视频在线观看| 韩国一区二区在线观看| 国产日韩精品一区| 色婷婷一区二区三区四区| 亚洲福利视频导航| 久久综合给合久久狠狠狠97色69| 丁香六月综合激情| 亚洲国产另类av| 久久亚洲欧美国产精品乐播| 91片黄在线观看| 蜜桃av一区二区在线观看| 中文字幕精品三区| 欧美日韩成人在线| 国产精品白丝jk白祙喷水网站| 国产精品国产三级国产| 欧美日本精品一区二区三区| 国内精品第一页| 亚洲自拍偷拍综合| 久久精品视频网| 欧美日韩成人一区| 成人激情视频网站| 日本aⅴ亚洲精品中文乱码| 中文字幕乱码日本亚洲一区二区 | 欧美亚洲综合在线| 蜜臀a∨国产成人精品| 亚洲丝袜美腿综合| 日韩欧美美女一区二区三区| 日本乱码高清不卡字幕| 国产一区二区免费看| 五月综合激情网| 国产精品福利在线播放| 日韩视频一区二区三区在线播放| 91丨porny丨最新| 九九视频精品免费| 久久97超碰国产精品超碰| 国产精品久久久久久久久免费相片| 欧美精品xxxxbbbb| 99精品久久只有精品| 国产综合成人久久大片91| 午夜一区二区三区在线观看| 成人免费小视频| 国产视频911| 日韩欧美成人午夜| 欧美男人的天堂一二区| 一道本成人在线| av激情亚洲男人天堂| 国产一区 二区 三区一级| 美女网站色91| 日av在线不卡| 日韩成人dvd| 五月天国产精品| 亚洲成a人v欧美综合天堂| 亚洲欧美综合另类在线卡通| 国产欧美精品国产国产专区| 久久久天堂av| 久久精品无码一区二区三区| 精品国一区二区三区| 日韩欧美一区在线| 日韩欧美在线综合网| 欧美精品色一区二区三区| 欧美日韩综合在线免费观看| 在线精品视频一区二区三四| 91久久精品国产91性色tv| 色琪琪一区二区三区亚洲区| 色先锋资源久久综合| 91伊人久久大香线蕉| 色悠久久久久综合欧美99| 91社区在线播放| 91久久精品一区二区三| 欧美伊人精品成人久久综合97| 欧美手机在线视频| 欧美日韩国产首页| 欧美日韩国产一区| 欧美一级精品在线| 日韩精品一区二区在线观看| 久久蜜臀精品av| 日本一区二区三区国色天香 | 在线播放91灌醉迷j高跟美女| 欧美中文字幕一区二区三区亚洲| 91啪亚洲精品| 777欧美精品| 久久久综合九色合综国产精品| 国产丝袜美腿一区二区三区| 综合分类小说区另类春色亚洲小说欧美| 中文字幕中文字幕一区二区 | 欧美综合视频在线观看| 欧美日韩日日夜夜| 日韩精品一区在线| 久久精品免费在线观看| 综合婷婷亚洲小说| 午夜精品久久久久久久久| 久久精品噜噜噜成人av农村| 国产不卡视频一区二区三区| 一本色道亚洲精品aⅴ| 欧美丰满少妇xxxbbb| 久久先锋资源网| 天天爽夜夜爽夜夜爽精品视频| 激情小说欧美图片| 91色视频在线| 精品久久一二三区| 中文字幕一区二区三区蜜月| 日本91福利区| 99精品欧美一区二区三区小说| 欧美一区二区私人影院日本| 国产精品天天看| 日本在线不卡视频| 成人激情免费网站| 日韩亚洲国产中文字幕欧美| 亚洲人成亚洲人成在线观看图片| 日本不卡中文字幕| 99综合影院在线| 91精品午夜视频| 136国产福利精品导航| 精品在线免费视频| 欧美性大战久久久久久久| 欧美激情一区二区| 男男gaygay亚洲| 欧美视频在线观看一区| 欧美激情一区二区三区蜜桃视频 | 5月丁香婷婷综合| 1024亚洲合集| 丁香天五香天堂综合| 日韩一区二区在线看| 亚洲综合在线电影| www.欧美色图| 久久久久国产精品麻豆| 日韩精品欧美精品| 欧美视频中文字幕| 亚洲六月丁香色婷婷综合久久 | 欧美性感一区二区三区| 国产精品入口麻豆原神| 精品伊人久久久久7777人| 欧美日韩一区二区三区视频| 亚洲嫩草精品久久| 成人一区二区三区中文字幕| 久久综合中文字幕| 免费在线欧美视频| 日韩一区二区电影在线| 亚洲高清久久久| 欧美日韩日日骚| 夜夜夜精品看看| 欧美在线观看你懂的| 亚洲欧美激情在线| 91网站在线播放| 亚洲色图在线看| 91麻豆免费看| 成人免费在线观看入口| k8久久久一区二区三区| 一区精品在线播放| 91在线你懂得| 亚洲激情第一区|