sys_msg_board
sys32.inc中的第3251行和第3252行预定义了:
process_loading db 'Kernel : Process - loading ',13,10,0
process_running db 'Kernel : Process - done',13,10,0
sys32.inc中的第3550行和3551行:
process_terminating db 'Kernel : Process - terminating',13,10,0
process_terminated db 'Kernel : Process - done',13,10,0
在add_app_parameters过程中,最后第3545行调用了sys_msg_board_str,参数放在了esi中。
在kernel.asm中的第8536行则是sys_msg_board_str过程。这个过程循环调用了sys_msg_board过程,这个过程在8554行处。
在8551行和8552行则定义了:
msg_board_data: times 512 db 0
msg_board_count dd 0x0
而在board.asm中,可以看到第63号调用。在sys32.inc中第789行可以查到对应的是sys_msg_board。
mov eax,63
mov ebx,2
int 0x40
在sys_msg_board注释中,可以看到:
; eax=1 : write : bl byte to write
; ebx=2 : read : ebx=0 -> no data, ebx=1 -> data in al
mov ebx,2 意味着是读取数据。
原来debug board中的数据来源于此:

浙公网安备 33010602011771号