Page 1 of 1

Функция 9 - информация о потоке выполнения

Posted: Tue May 31, 2005 9:22 am
by halyavin
На данный момент эта функция действует так: берем лимит x из сегмента кода и возращаем 4096*x+4095. В программе cpu потом к этому числу прибавляется 1. Вопрос: зачем такой изврат? Почему бы не возращать сразу 4096*(x+1) и убрать лишнее прибавление 1 из CPU? Для этого исправления нужно лишь удалить пару символов.

Код из CPU:

Code: Select all

    mov  eax,9
    mov  ebx,I_END
    mov  ecx,edi
    int  0x40
;...
                                ; display memory usage
    mov  ecx,[I_END+26] 
    inc  ecx
    add  edx,10*6*65536
    int  0x40

Posted: Wed Jun 01, 2005 6:51 pm
by Mario79
halyavin
А ты не мог бы подробней разжевать?
По моему ты привёл код только для CPU, а где и что в самом ядре менять?
Подробнее батенька, не все же такие умные как ты. :-)

Posted: Wed Jun 01, 2005 7:30 pm
by halyavin
Это была информация для тех, кто не разбирается в ядре. Информация для ядерщиков:
Код в kernel.asm после метки os_mem:

Code: Select all

os_mem:
    add    edx,4096 - 1 ; include 4 kb selector page size
    mov    [ebx+12],eax
    mov    [ebx+16],edx
Предлагается заменить на код

Code: Select all

os_mem:
    add    edx,4096
    mov    [ebx+12],eax
    mov    [ebx+16],edx

Re: Функция 9, размер памяти используемой приложением.

Posted: Wed Apr 18, 2012 1:20 am
by Mario
SVN r. 2625 теперь функция 9 возвращает 11 символов имени без расширения. Расширение отбрасывалось ранее и отбрасывается сейчас. Ранее возвращалось только 8 символов, хотя место в структуре было зарезервировано под 11 символов (8+3 старый стандарт Менуэт).