⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dump_impl.asm

📁 jserv写的orz小内核 有详细的注释
💻 ASM
字号:
%include "macro.inc"%include "orzmicro.inc"%include "fat12_handler.inc"		dd 0x1000		; Stack size		dd _DATA_LEN		; Data size[ORG -8][BITS 32]	mov esi, fat12_name	mov ecx, fat12_len	call Find	mov [fat12_ID], eax	mov eax, 1lp0:	push eax	mov ecx, 1lp1:	push ecx	mov [__dbg_msg + 1],eax	call __dbg_PrintNumS	mov [__dbg_msg + 1],ecx	call __dbg_PrintNumS	push eax, ecx	mov esi, strx	mov ecx, strx_len	call __dbg_PrintStrS	xor ebx, ebx	xor ecx, ecx	xor edx, edx	mov eax, msg_GetTickCount	int i_SendMessageW	mov [tmex], eax	pop ecx, eax	;;;;	mov [msg + shndl_Read.blockSize], eax	xchg eax, ecx	shl eax, 11	xor edx, edx	div ecx	mov ecx, eax	push ecx	mov ebx, [fat12_ID]	mov eax, hndl_ReadFile	mov esi, msg_of	mov ecx, msg_of_len	xor edx, edx	int i_SendMessageW	pop ecx	cmp eax, 0xFFFF0000	jc lp2	jmp lpelp2:	mov [msg + shndl_Read.fileID], eaxlp3:	push ecx	mov ebx, [fat12_ID]	mov eax, hndl_Read	mov esi, msg	mov ecx, shndl_Read.msize	mov edi, buf	mov edx, buf_len	int i_SendMessageW	pop ecx	loop lp3	;;;;lpe:	xor ebx, ebx	xor ecx, ecx	xor edx, edx	mov eax, msg_GetTickCount	int i_SendMessageW	sub eax, DWORD [tmex]	mov [__dbg_msg + 1], DWORD eax	call __dbg_PrintNum	pop ecx	add ecx, ecx	pop eax	push eax	cmp ecx, 32 + 1	jc lp1	pop eax	add eax, eax	cmp eax, 512 + 1	jc lp0	xor ebx, ebx	xor ecx, ecx	xor edx, edx	mov eax, msg_Exit	int i_SendMessageWtmex		dd 0;;;;Find:	xor ebx, ebx	xor edx, edx	mov eax, msg_FindTaskByName	int i_SendMessageW	jnc Find0	jmp BigErrorFind0:	ret;;;;Sleep:	xor ebx, ebx	mov eax, msg_Sleep	xor ecx, ecx	xor edx, edx	int i_SendMessageW	ret;;;;BigError:	mov ax, 0xFAC0	mov ds, ax%include "console_library.inc"%include "debug.inc";;;;msg		dd 0		dd 0msg_of		dd 0		db "ORZKERNL", 0msg_of_len	equ $-msg_offat12_ID	dd 0fat12_name	db "fat12.handler"fat12_len	equ $-fat12_namestrx		db "="strx_len	equ $-strx;---------------------------------------------------------------;;;; DATA;---------------------------------------------------------------_DATA_START	equ $buf		equ _DATA_STARTbuf_len		equ 1024_end_buf	equ buf + buf_len_DATA_LEN	equ _end_buf - _DATA_START

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -