亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
日韩久久久精品| 91久久线看在观草草青青| 8x8x8国产精品| 爽爽淫人综合网网站| 欧美精品丝袜中出| 久久国产精品露脸对白| 国产亚洲欧美在线| av不卡免费电影| 一区二区三区四区蜜桃 | 亚洲综合区在线| 欧美日韩精品欧美日韩精品| 天天操天天综合网| 精品国产乱子伦一区| 丰满放荡岳乱妇91ww| 亚洲免费在线观看视频| 欧美视频在线播放| 久草这里只有精品视频| 中文字幕在线观看不卡视频| 欧美日韩一区久久| 国产精品自在在线| 亚洲精品久久久蜜桃| 日韩亚洲欧美中文三级| av毛片久久久久**hd| 丝袜亚洲精品中文字幕一区| 一区二区在线观看视频在线观看| 在线观看日韩电影| 国精产品一区一区三区mba桃花 | 波多野结衣视频一区| 亚洲一区影音先锋| 久久免费视频色| 欧美日韩亚洲综合在线 | 欧美aⅴ一区二区三区视频| 国产日产亚洲精品系列| 欧美三级韩国三级日本一级| 韩国毛片一区二区三区| 亚洲一区二区三区在线看| 久久网站热最新地址| 欧美三级电影在线看| 成人精品一区二区三区中文字幕| 石原莉奈在线亚洲二区| 中文字幕在线不卡| 精品国产自在久精品国产| 色美美综合视频| 大胆亚洲人体视频| 狠狠色综合日日| 日韩电影在线观看网站| 亚洲人成网站在线| 久久久不卡网国产精品二区| 欧美精品在线一区二区三区| 99久久国产免费看| 国产福利一区二区三区视频 | 日韩一区欧美二区| **性色生活片久久毛片| 26uuu精品一区二区| 欧美三级韩国三级日本三斤| 成人av影视在线观看| 激情深爱一区二区| 日本不卡中文字幕| 亚洲成人1区2区| 一区二区三区免费| 樱花草国产18久久久久| 国产精品视频第一区| 国产亚洲美州欧州综合国| 日韩一级在线观看| 欧美一二三四在线| 制服丝袜日韩国产| 在线电影院国产精品| 色94色欧美sute亚洲线路一ni| bt7086福利一区国产| 成人国产精品免费观看动漫| 国产风韵犹存在线视精品| 国产中文字幕一区| 国产乱码精品1区2区3区| 久久精品国产99国产精品| 蜜桃精品在线观看| 久久精品免费观看| 久久er99热精品一区二区| 久久狠狠亚洲综合| 国产一区二区在线免费观看| 国内精品不卡在线| 国产精品亚洲专一区二区三区| 国产精品一区二区久久精品爱涩 | 91精品国产一区二区三区蜜臀| 欧美亚洲国产一区在线观看网站 | 91精品国产欧美日韩| 91精品国产综合久久精品图片| 欧美精品久久99久久在免费线 | 国产精品18久久久久| 国产激情精品久久久第一区二区 | 99久久免费视频.com| 色婷婷精品久久二区二区蜜臂av | 中文字幕在线一区二区三区| 亚洲婷婷综合色高清在线| 一区二区三区四区蜜桃| 午夜免费欧美电影| 老司机免费视频一区二区三区| 久久精品国产一区二区三| 国产成人在线观看| 91丨九色丨蝌蚪富婆spa| 欧美视频一区在线| 精品国产自在久精品国产| 国产精品女同互慰在线看| 自拍偷在线精品自拍偷无码专区| 亚洲一区二区成人在线观看| 日本人妖一区二区| 成人在线视频一区二区| 在线视频一区二区三区| 日韩精品在线网站| 亚洲欧美日韩综合aⅴ视频| 午夜一区二区三区在线观看| 国产自产视频一区二区三区| 91视视频在线直接观看在线看网页在线看| 欧美伊人久久大香线蕉综合69 | 久久精品一区四区| 一区二区三区在线观看国产| 麻豆精品在线看| 97国产精品videossex| 日韩欧美卡一卡二| 亚洲男人的天堂在线aⅴ视频| 免费高清视频精品| 色呦呦国产精品| 久久久国产精品麻豆| 亚洲成人黄色影院| www.亚洲精品| 久久综合久久综合九色| 亚洲永久免费视频| 高清不卡在线观看av| 欧美日韩一区不卡| 中文字幕中文字幕一区二区 | 国产一区二区三区不卡在线观看 | 日韩午夜激情av| 亚洲人午夜精品天堂一二香蕉| 三级久久三级久久久| 99在线精品观看| 久久久久综合网| 日韩综合一区二区| 99久久99久久精品国产片果冻| 精品久久久久久亚洲综合网| 亚洲综合激情另类小说区| 666欧美在线视频| 亚洲精品水蜜桃| 高清在线观看日韩| 久久精品人人做| 美女在线观看视频一区二区| 日本精品裸体写真集在线观看 | 91成人国产精品| 国产精品黄色在线观看| 久久国产精品99精品国产 | 国产亚洲美州欧州综合国| 日本aⅴ免费视频一区二区三区| 91啦中文在线观看| 国产精品污污网站在线观看| 国产一区二区电影| 欧美xxxxx牲另类人与| 日本在线观看不卡视频| 欧美网站一区二区| 亚洲成a人片综合在线| 在线免费视频一区二区| 亚洲欧洲一区二区在线播放| 国产成人在线视频免费播放| 精品91自产拍在线观看一区| 日本在线播放一区二区三区| 欧美日韩免费观看一区三区| 一级中文字幕一区二区| 91福利视频在线| 亚洲午夜精品网| 欧美日韩免费观看一区二区三区 | 亚洲综合激情另类小说区| 色综合久久中文字幕综合网| 亚洲天堂久久久久久久| 色综合久久久久| 亚洲自拍与偷拍| 欧美精品乱人伦久久久久久| 免费观看久久久4p| 久久中文字幕电影| 国产成人精品免费在线| 中文字幕第一区| 99re这里都是精品| 亚洲一区二区三区四区在线观看| 欧美三级电影网| 日本aⅴ免费视频一区二区三区| 日韩欧美成人午夜| 国产精品一区三区| 亚洲人成网站影音先锋播放| 色狠狠一区二区三区香蕉| 亚洲成av人影院| 日韩一区二区免费在线观看| 国产麻豆成人精品| 中文字幕亚洲区| 欧美日韩激情一区| 久久不见久久见免费视频1| 欧美激情自拍偷拍| 91国模大尺度私拍在线视频| 视频一区在线播放| 久久久www成人免费无遮挡大片| 99精品在线观看视频| 亚洲 欧美综合在线网络| 日韩精品一区二区三区四区视频| 高清久久久久久| 日韩精品乱码免费|