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

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

?? formats.inc

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

; flat assembler core
; Copyright (c) 1999-2006, Tomasz Grysztar.
; All rights reserved.

formatter:
	cmp	[output_file],0
	jne	output_path_ok
	
	push	edi
	mov	esi,[input_file]
	mov	edi,[free_additional_memory]
      copy_output_path:
	lods	byte [esi]
	cmp	edi,[structures_buffer]
	jae	out_of_memory
	stos	byte [edi]
	or	al,al
	jnz	copy_output_path
	dec	edi
	mov	eax,edi
      find_extension:
	dec	eax
	cmp	eax,[free_additional_memory]
	jb	extension_found
	cmp	byte [eax],'\'
	je	extension_found
	cmp	byte [eax],'/'
	je	extension_found
	cmp	byte [eax],'.'
	jne	find_extension
	mov	edi,eax
      extension_found:
	lea	eax,[edi+9]
	cmp	eax,[structures_buffer]
	jae	out_of_memory
	
	cmp	[output_format],2
	je	exe_extension
	
	jb	bin_extension
	
	cmp	[output_format],4
	je	obj_extension
	
	cmp	[output_format],5
	je	o_extension
	
	cmp	[output_format],3
	jne	no_extension
	
	cmp	[subsystem],1
	je	sys_extension
	
	bt	[format_flags],8
	jnc	exe_extension
	mov	eax,'.dll'
	jmp	make_extension
 
      sys_extension:
	mov	eax,'.sys'
	jmp	make_extension
 
      bin_extension:
	mov	eax,'.bin'
	bt	[format_flags],0
	jnc	make_extension
	mov	eax,'.com'
	jmp	make_extension

      obj_extension:
	mov	eax,'.obj'
	jmp	make_extension

      o_extension:
	mov	eax,'.o'
	bt	[format_flags],0
	jnc	make_extension

      no_extension:
	xor	eax,eax
	jmp	make_extension
 
      exe_extension:
	mov	eax,'.exe'
 
      make_extension:
	xchg	eax,[edi]
	scas	dword [edi]
	mov	byte [edi],0
	scas	byte [edi]
	mov	esi,edi
	stos	dword [edi]
	sub	edi,9
	xor	eax,eax
	mov	ebx,characters
      adapt_case:
	mov	al,[esi]
	or	al,al
	jz	adapt_next
	xlat	byte [ebx]
	cmp	al,[esi]
	je	adapt_ok
	sub	byte [edi],20h
      adapt_ok:
	inc	esi
      adapt_next:
	inc	edi
	cmp	byte [edi],0
	jne	adapt_case
	mov	esi,edi
	lea	ecx,[esi+1]
	sub	ecx,[free_additional_memory]
	mov	edi,[structures_buffer]
	dec	edi
	std
	rep	movs byte [edi],[esi]
	cld
	inc	edi
	mov	[structures_buffer],edi
	mov	[output_file],edi
	pop	edi
	
      output_path_ok:
	cmp	[output_format],4
	je	coff_formatter
	
	cmp	[output_format],5
	jne	common_formatter
	
	bt	[format_flags],0
	jnc	elf_formatter
	
      common_formatter:
	mov	eax,edi
	sub	eax,[code_start]
	mov	[real_code_size],eax
	cmp	edi,[undefined_data_end]
	jne	calculate_code_size
	mov	edi,[undefined_data_start]
	
      calculate_code_size:
	sub	edi,[code_start]
	mov	[code_size],edi
	mov	[written_size],0
	mov	edx,[output_file]
	call	create
	jc	write_failed
	
	cmp	[output_format],3
	jne	stub_written
	
	mov	edx,[code_start]
	mov	ecx,[stub_size]
	sub	edx,ecx
	add	[written_size],ecx
	call	write
	
      stub_written:
	cmp	[output_format],2
	jne	write_output
	
	call	write_mz_header
	
      write_output:
	call	write_code
	
      output_written:
	call	close
	ret
	
      write_code:
	mov	eax,[written_size]
	mov	[headers_size],eax
	mov	edx,[code_start]
	mov	ecx,[code_size]
	add	[written_size],ecx
	call	write
	jc	write_failed
	ret
	
format_directive:
	cmp	edi,[code_start]
	jne	unexpected_instruction
	cmp	[virtual_data],0
	jne	unexpected_instruction
	cmp	[output_format],0
	jne	unexpected_instruction
	lods	byte [esi]
	cmp	al,17h
	je	format_prefix
	cmp	al,18h
	jne	invalid_argument
	lods	byte [esi]
      select_format:
	mov	dl,al
	shr	al,4
	mov	[output_format],al
	and	edx,0Fh
	or	[format_flags],edx
	cmp	al,2
	je	format_mz
	cmp	al,3
	je	format_pe
	cmp	al,4
	je	format_coff
	cmp	al,5
	je	format_elf
	jmp	instruction_assembled
      format_prefix:
	lods	byte [esi]
	mov	ah,al
	lods	byte [esi]
	cmp	al,18h
	jne	invalid_argument
	lods	byte [esi]
	mov	edx,eax
	shr	dl,4
	shr	dh,4
	cmp	dl,dh
	jne	invalid_argument
	or	al,ah
	jmp	select_format
entry_directive:
	bts	[format_flags],10h
	jc	setting_already_specified
	mov	al,[output_format]
	cmp	al,2
	je	mz_entry
	cmp	al,3
	je	pe_entry
	cmp	al,5
	jne	illegal_instruction
	bt	[format_flags],0
	jc	elf_entry
	jmp	illegal_instruction
stack_directive:
	bts	[format_flags],11h
	jc	setting_already_specified
	mov	al,[output_format]
	cmp	al,2
	je	mz_stack
	cmp	al,3
	je	pe_stack
	jmp	illegal_instruction
heap_directive:
	bts	[format_flags],12h
	jc	setting_already_specified
	mov	al,[output_format]
	cmp	al,2
	je	mz_heap
	cmp	al,3
	je	pe_heap
	jmp	illegal_instruction
segment_directive:
	cmp	[virtual_data],0
	jne	illegal_instruction
	mov	al,[output_format]
	cmp	al,2
	je	mz_segment
	cmp	al,5
	je	elf_segment
	jmp	illegal_instruction
section_directive:
	cmp	[virtual_data],0
	jne	illegal_instruction
	mov	al,[output_format]
	cmp	al,3
	je	pe_section
	cmp	al,4
	je	coff_section
	cmp	al,5
	je	elf_section
	jmp	illegal_instruction
public_directive:
	mov	al,[output_format]
	cmp	al,4
	je	public_allowed
	cmp	al,5
	jne	illegal_instruction
	bt	[format_flags],0
	jc	illegal_instruction
      public_allowed:
	lods	byte [esi]
	cmp	al,2
	jne	invalid_argument
	lods	dword [esi]
	cmp	eax,0Fh
	jb	invalid_use_of_symbol
	je	reserved_word_used_as_symbol
	mov	dx,[current_pass]
	mov	[eax+18],dx
	or	byte [eax+8],8
	inc	esi
	mov	ebx,[free_additional_memory]
	lea	edx,[ebx+10h]
	cmp	edx,[structures_buffer]
	jae	out_of_memory
	mov	[free_additional_memory],edx
	mov	[ebx+8],eax
	mov	eax,[current_line]
	mov	[ebx+0Ch],eax
	lods	byte [esi]
	cmp	al,86h
	jne	invalid_argument
	lods	word [esi]
	cmp	ax,'('
	jne	invalid_argument
	mov	[ebx+4],esi
	lods	dword [esi]
	lea	esi,[esi+eax+1]
	mov	byte [ebx],80h
	jmp	instruction_assembled
extrn_directive:
	mov	al,[output_format]
	cmp	al,4
	je	extrn_allowed
	cmp	al,5
	jne	illegal_instruction
	bt	[format_flags],0
	jc	illegal_instruction
      extrn_allowed:
	lods	word [esi]
	cmp	ax,'('
	jne	invalid_argument
	mov	ebx,esi
	lods	dword [esi]
	lea	esi,[esi+eax+1]
	mov	edx,[free_additional_memory]
	lea	eax,[edx+0Ch]
	cmp	eax,[structures_buffer]
	jae	out_of_memory
	mov	[free_additional_memory],eax
	mov	byte [edx],81h
	mov	[edx+4],ebx
	lods	byte [esi]
	cmp	al,86h
	jne	invalid_argument
	lods	byte [esi]
	cmp	al,2
	jne	invalid_argument
	lods	dword [esi]
	cmp	eax,0Fh
	jb	invalid_use_of_symbol
	je	reserved_word_used_as_symbol
	inc	esi
	mov	ebx,eax
	xor	ah,ah
	lods	byte [esi]
	cmp	al,':'
	je	get_extrn_size
	dec	esi
	cmp	al,11h
	jne	extrn_size_ok
      get_extrn_size:
	lods	word [esi]
	cmp	al,11h
	jne	invalid_argument
      extrn_size_ok:
	mov	[address_symbol],edx
	movzx	ecx,ah
	mov	[edx+8],ecx
	xor	eax,eax
	xor	edx,edx
	xor	ebp,ebp
	mov	ch,2
	test	[format_flags],8
	jz	make_free_label
	mov	ch,4
	jmp	make_free_label
mark_relocation:
	cmp	[value_type],0
	je	relocation_ok
	cmp	[virtual_data],0
	jne	relocation_ok
	cmp	[output_format],2
	je	mark_mz_relocation
	cmp	[output_format],3
	je	mark_pe_relocation
	cmp	[output_format],4
	je	mark_coff_relocation
	cmp	[output_format],5
	je	mark_elf_relocation
      relocation_ok:
	ret
close_pass:
	mov	al,[output_format]
	cmp	al,3
	je	close_pe
	cmp	al,4
	je	close_coff
	cmp	al,5
	je	close_elf
	ret

format_mz:
	mov	edx,[additional_memory]
	push	edi
	mov	edi,edx
	mov	ecx,1Ch shr 2
	xor	eax,eax
	rep	stos dword [edi]
	mov	[free_additional_memory],edi
	pop	edi
	mov	word [edx+0Ch],0FFFFh
	mov	word [edx+10h],1000h
	mov	[code_type],16
	jmp	instruction_assembled
mark_mz_relocation:
	push	eax ebx
	inc	[number_of_relocations]
	mov	ebx,[free_additional_memory]
	mov	eax,edi
	sub	eax,[code_start]
	mov	[ebx],ax
	shr	eax,16
	shl	ax,12
	mov	[ebx+2],ax
	cmp	word [ebx],0FFFFh
	jne	mz_relocation_ok
	inc	word [ebx+2]
	sub	word [ebx],10h
      mz_relocation_ok:
	add	ebx,4
	cmp	ebx,[structures_buffer]
	jae	out_of_memory
	mov	[free_additional_memory],ebx
	pop	ebx eax
	ret
mz_segment:
	lods	byte [esi]
	cmp	al,2
	jne	invalid_argument
	lods	dword [esi]
	cmp	eax,0Fh
	jb	invalid_use_of_symbol
	je	reserved_word_used_as_symbol
	inc	esi
	mov	ebx,eax
	mov	eax,edi
	sub	eax,[code_start]
	mov	ecx,0Fh
	add	eax,0Fh
	and	eax,1111b
	sub	ecx,eax
	mov	edx,edi
	xor	al,al
	rep	stos byte [edi]
	mov	dword [org_origin],edi
	mov	dword [org_origin+4],0
	mov	[org_registers],0
	mov	[org_start],edi
	mov	eax,edx
	call	undefined_data
	mov	eax,edi
	sub	eax,[code_start]
	shr	eax,4
	cmp	eax,10000h
	jae	value_out_of_range
	mov	edx,eax
	mov	al,16
	cmp	byte [esi],13h
	jne	segment_type_ok
	inc	esi
	lods	byte [esi]
      segment_type_ok:
	mov	[code_type],al
	mov	eax,edx
	mov	cx,0100h
	xor	edx,edx
	xor	ebp,ebp
	mov	[address_symbol],edx
	jmp	make_free_label
mz_entry:
	lods	byte [esi]
	cmp	al,'('
	jne	invalid_argument
	call	get_word_value
	cmp	[value_type],1
	je	initial_cs_ok
	cmp	[error_line],0
	jne	initial_cs_ok
	mov	eax,[current_line]
	mov	[error_line],eax
	mov	[error],invalid_address
      initial_cs_ok:
	mov	edx,[additional_memory]
	mov	[edx+16h],ax
	lods	byte [esi]
	cmp	al,':'
	jne	invalid_argument
	lods	byte [esi]
	cmp	al,'('
	jne	invalid_argument
	ja	invalid_address
	call	get_word_value
	cmp	[value_type],0
	jne	invalid_use_of_symbol
	mov	edx,[additional_memory]
	mov	[edx+14h],ax
	jmp	instruction_assembled
mz_stack:
	lods	byte [esi]
	cmp	al,'('
	jne	invalid_argument
	call	get_word_value
	cmp	byte [esi],':'
	je	stack_pointer
	cmp	ax,10h
	jb	invalid_value
	cmp	[value_type],0
	jne	invalid_use_of_symbol
	mov	edx,[additional_memory]
	mov	[edx+10h],ax
	jmp	instruction_assembled
      stack_pointer:
	cmp	[value_type],1
	je	initial_ss_ok
	cmp	[error_line],0
	jne	initial_ss_ok
	mov	eax,[current_line]
	mov	[error_line],eax
	mov	[error],invalid_address
      initial_ss_ok:
	mov	edx,[additional_memory]
	mov	[edx+0Eh],ax
	lods	byte [esi]
	cmp	al,':'
	jne	invalid_argument
	lods	byte [esi]
	cmp	al,'('
	jne	invalid_argument
	call	get_word_value
	cmp	[value_type],0
	jne	invalid_use_of_symbol
	mov	edx,[additional_memory]
	mov	[edx+10h],ax
	bts	[format_flags],4
	jmp	instruction_assembled
mz_heap:
	cmp	[output_format],2
	jne	illegal_instruction
	lods	byte [esi]
	call	get_size_operator
	cmp	ah,1
	je	invalid_value
	cmp	ah,2
	ja	invalid_value
	cmp	al,'('
	jne	invalid_argument
	call	get_word_value
	cmp	[value_type],0
	jne	invalid_use_of_symbol
	mov	edx,[additional_memory]
	mov	[edx+0Ch],ax
	jmp	instruction_assembled
write_mz_header:
	mov	edx,[additional_memory]
	bt	[format_flags],4
	jc	mz_stack_ok
	mov	eax,[real_code_size]
	dec	eax
	shr	eax,4
	inc	eax
	mov	[edx+0Eh],ax
	shl	eax,4
	movzx	ecx,word [edx+10h]
	add	eax,ecx
	mov	[real_code_size],eax
      mz_stack_ok:
	mov	edi,[free_additional_memory]
	mov	eax,[number_of_relocations]
	shl	eax,2
	add	eax,1Ch
	sub	edi,eax
	xchg	edi,[free_additional_memory]
	mov	ecx,0Fh
	add	eax,0Fh
	and	eax,1111b
	sub	ecx,eax
	xor	al,al
	rep	stos byte [edi]
	sub	edi,[free_additional_memory]
	mov	ecx,edi
	shr	edi,4
	mov	word [edx],'MZ' 	; signature
	mov	[edx+8],di		; header size in paragraphs
	mov	eax,[number_of_relocations]
	mov	[edx+6],ax		; number of relocation entries
	mov	eax,[code_size]
	add	eax,ecx
	mov	esi,eax
	shr	esi,9
	and	eax,1FFh
	inc	si
	or	ax,ax
	jnz	mz_size_ok
	mov	ax,200h
	dec	si
      mz_size_ok:
	mov	[edx+2],ax		; number of bytes in last page
	mov	[edx+4],si		; number of pages
	mov	eax,[real_code_size]
	dec	eax
	shr	eax,4
	inc	eax
	mov	esi,[code_size]
	dec	esi
	shr	esi,4
	inc	esi
	sub	eax,esi
	mov	[edx+0Ah],ax		; minimum memory in addition to code
	add	[edx+0Ch],ax		; maximum memory in addition to code
	salc
	mov	ah,al
	or	[edx+0Ch],ax
	mov	word [edx+18h],1Ch	; offset of relocation table
	add	[written_size],ecx
	call	write
	jc	write_failed
	ret

make_stub:
	mov	[stub_file],edx
	or	edx,edx
	jnz	stub_from_file
	push	esi
	mov	edx,edi
	xor	eax,eax
	mov	ecx,20h
	rep	stos dword [edi]
	mov	eax,40h+default_stub_end-default_stub
	mov	cx,100h+default_stub_end-default_stub
	mov	word [edx],'MZ'
	mov	word [edx+4],1
	mov	word [edx+2],ax
	mov	word [edx+8],4
	mov	word [edx+0Ah],10h
	mov	word [edx+0Ch],0FFFFh
	mov	word [edx+10h],cx
	mov	word [edx+3Ch],ax
	mov	word [edx+18h],40h
	lea	edi,[edx+40h]
	mov	esi,default_stub
	mov	ecx,default_stub_end-default_stub
	rep	movs byte [edi],[esi]
	pop	esi
	jmp	stub_ok

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品视频一区| 国产精品久久国产精麻豆99网站| 97精品久久久久中文字幕| 美女mm1313爽爽久久久蜜臀| 亚洲午夜久久久| 亚洲桃色在线一区| 亚洲曰韩产成在线| 国产日产欧美精品一区二区三区| 日韩精品一区二区三区视频在线观看 | 免费不卡在线视频| 亚洲国产欧美一区二区三区丁香婷| 国产精品久久久久精k8 | 欧美日韩一区 二区 三区 久久精品| 久久精品免费看| 美女mm1313爽爽久久久蜜臀| 亚洲国产精品精华液2区45| 久久久久久影视| 欧美日本视频在线| 正在播放一区二区| 91精品免费观看| 欧美一区二区视频在线观看2020| 色综合久久中文综合久久97| 国产精品自在欧美一区| 国产精选一区二区三区| 国产成人午夜99999| 成人免费毛片嘿嘿连载视频| 高清在线成人网| 蜜桃av噜噜一区二区三区小说| 亚洲一区二区三区四区五区黄 | 国产高清久久久| 久久99九九99精品| 国产美女娇喘av呻吟久久| 国产一区二区三区久久悠悠色av| 国产寡妇亲子伦一区二区| 久久国产日韩欧美精品| 欧美午夜寂寞影院| 日韩亚洲欧美一区二区三区| 日韩欧美在线不卡| 亚洲精品一区二区三区在线观看| 9191精品国产综合久久久久久| 7777精品伊人久久久大香线蕉超级流畅 | 91福利国产精品| 欧美日韩另类国产亚洲欧美一级| 91精品国产综合久久香蕉的特点 | 麻豆久久久久久久| 美女视频免费一区| 成人综合婷婷国产精品久久蜜臀| 波多野结衣亚洲一区| 色哟哟在线观看一区二区三区| 欧美最猛性xxxxx直播| 在线观看av不卡| 日韩一区二区三区在线观看| 国产欧美日韩在线| 亚洲最新视频在线播放| 亚洲精品网站在线观看| 日本视频在线一区| 国产成人av福利| 欧美一a一片一级一片| 日韩欧美你懂的| 日韩欧美第一区| 亚洲欧美日韩一区| 美日韩黄色大片| 99re这里都是精品| 欧美成人三级在线| 亚洲人亚洲人成电影网站色| 日本高清不卡视频| 亚洲综合一二三区| 午夜精品免费在线| 日韩影视精彩在线| 国产超碰在线一区| 欧美一a一片一级一片| 日韩限制级电影在线观看| 久久久精品欧美丰满| 亚洲精品亚洲人成人网在线播放| 美女国产一区二区| 国产综合色精品一区二区三区| 色综合一区二区三区| 精品久久久久99| 亚洲美女视频在线| 欧美在线观看视频一区二区 | 在线免费亚洲电影| 国产精品久久久久久久久图文区 | 偷拍自拍另类欧美| 国产91在线观看| 欧美成人aa大片| 亚洲一二三区在线观看| 国模少妇一区二区三区| 日韩一区二区三区三四区视频在线观看| 国产精品女上位| 日韩高清在线电影| 欧美日韩成人一区| 亚洲色图视频网| 成人黄色国产精品网站大全在线免费观看| 91精品国产综合久久蜜臀| 亚洲免费av在线| 一本一本久久a久久精品综合麻豆| 精品国产91亚洲一区二区三区婷婷| 亚洲国产精品精华液网站| 国产精品一区二区免费不卡 | 91精品国产欧美日韩| 亚洲一区在线观看网站| 91免费精品国自产拍在线不卡| 日韩午夜精品电影| 午夜在线成人av| 欧美在线影院一区二区| 国产色综合久久| 成人白浆超碰人人人人| 久久众筹精品私拍模特| 看片网站欧美日韩| 久久午夜色播影院免费高清| 久久精品国产亚洲5555| 91精品一区二区三区在线观看| 日本91福利区| 日韩精品专区在线影院重磅| 蜜臀av一区二区在线免费观看| 日韩一区二区精品葵司在线| 日韩主播视频在线| 制服丝袜中文字幕一区| 久久国产生活片100| 精品少妇一区二区三区在线视频| 麻豆国产精品一区二区三区 | 一区二区三区欧美在线观看| 色婷婷av一区二区三区之一色屋| 亚洲男女毛片无遮挡| 在线视频综合导航| 午夜影院久久久| 欧美日韩一区二区不卡| 免费欧美在线视频| 亚洲精品在线一区二区| 国内精品写真在线观看| 久久天堂av综合合色蜜桃网| 国产成人亚洲综合a∨婷婷图片| 国产欧美精品国产国产专区| 成人av网站在线| 亚洲最大成人综合| 91精品国产综合久久久久久| 精品一区二区久久| 国产女人水真多18毛片18精品视频| www.99精品| 午夜欧美视频在线观看| 日韩三级视频在线看| 国产精品996| 国产精品电影一区二区三区| 欧美中文字幕亚洲一区二区va在线| 亚洲精品中文字幕乱码三区| 欧美丰满一区二区免费视频| 另类小说图片综合网| 久久久久久97三级| 91麻豆精东视频| 亚洲免费在线看| 精品久久久久av影院| 不卡的看片网站| 亚洲午夜激情网站| 国产欧美日韩综合精品一区二区| 99国产精品久久久| 日韩av成人高清| 亚洲国产精品ⅴa在线观看| 欧美日韩国产高清一区| 懂色av一区二区三区蜜臀| 天堂蜜桃一区二区三区| 国产精品素人一区二区| 制服丝袜中文字幕一区| 91网站在线播放| 韩日av一区二区| 亚洲成人av在线电影| 欧美激情一区二区三区四区| 91精品国产美女浴室洗澡无遮挡| jizzjizzjizz欧美| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲免费视频成人| 久久午夜电影网| 欧美一区二区三级| 在线看不卡av| 91网站视频在线观看| 国内精品视频一区二区三区八戒 | av影院午夜一区| 韩国一区二区在线观看| 亚洲福利一区二区三区| 国产精品对白交换视频| 国产三级三级三级精品8ⅰ区| 欧美一级淫片007| 欧美日韩精品电影| 91浏览器打开| 成人黄色网址在线观看| 国产成人一区二区精品非洲| 免费不卡在线观看| 日本中文一区二区三区| 夜夜揉揉日日人人青青一国产精品| 亚洲国产精品黑人久久久| 久久色中文字幕| 日韩你懂的在线观看| 在线播放91灌醉迷j高跟美女| 色哟哟欧美精品| 91欧美激情一区二区三区成人| 成人免费黄色在线| 风间由美一区二区av101| 国产在线不卡视频| 九色综合狠狠综合久久| 美女看a上一区| 精品在线免费视频|