Board.KolibriOS.org
https://board.kolibrios.org/

UpTime - Аптайм или время непрерывной работы системы
https://board.kolibrios.org/viewtopic.php?f=35&t=2278
Page 2 of 2

Author:  Mario_r4 [ Mon Apr 01, 2013 1:42 pm ]
Post subject:  Re: UpTime - Аптайм или время непрерывной работы системы

CleverMouse wrote:
то после вычитания получится корректная разница ecx = 2 тика таймера, с которой можно поступать как обычно.

А мне почему-то кажется, что будет разница в -2. (минус 2)

З.Ы. Хотя в предложенном варианте можно ввести проверку флага переполнения процессора и вероятно так решить проблему.

Author:  CleverMouse [ Mon Apr 01, 2013 1:50 pm ]
Post subject:  Re: UpTime - Аптайм или время непрерывной работы системы

Проверь.
Code:
mov ecx,1
sub ecx,0xFFFFFFFF

Author:  Mario_r4 [ Mon Apr 01, 2013 2:54 pm ]
Post subject:  Re: UpTime - Аптайм или время непрерывной работы системы

Да, все так и есть. Специально накидал пример:
Spoiler: Show
Code:
; Сохранить в стеке регистр EFLAGS
   pushfd
; Получить из стека регистр EFLAGS
   mov   eax,[esp]
   mov   [cpu_flags_1],eax
; Эмитация переполнения
   mov   ecx,1
   sub   ecx,0xFFFFFFFF
   mov   [ecx_value],ecx
; Сохранить в стеке регистр EFLAGS
   pushfd
; Получить из стека регистр EFLAGS
   mov   eax,[esp]
   mov   [cpu_flags_2],eax
; Восстановить из стека регистр EFLAGS
   popfd
; Восстановить из стека регистр EFLAGS
   popfd

Получил результат 2 и установку в 1 флага CF (флаг переноса).
Attachment:
timer_emul.7z [5.13 KiB]
Downloaded 184 times


З.Ы. Мне нужно обдумать свою собственную логику, найти, понять и скорректировать противоречие в моих размышлениях.

Author:  Serge [ Mon Apr 01, 2013 3:54 pm ]
Post subject:  Re: UpTime - Аптайм или время непрерывной работы системы

0xFFFFFFFF это -1 в дополнительном коде.
Получается 1 - (-1) = 2.

Author:  Aeol [ Sun Apr 07, 2013 9:09 am ]
Post subject:  Re: UpTime - Аптайм или время непрерывной работы системы

Не вижу никакой сложности в том, чтобы расширить возвращаемое функцией значение до пары eax+ebx.

Author:  SoUrcerer [ Sun Apr 07, 2013 9:33 am ]
Post subject:  Re: UpTime - Аптайм или время непрерывной работы системы

Ага, но это при условии, что эту функцию никто не использует в своем коде. А если используют, и уверены, что функция портит только eax, а ebx не затирается?

Author:  Aeol [ Sun Apr 07, 2013 2:20 pm ]
Post subject:  Re: UpTime - Аптайм или время непрерывной работы системы

SoUrcerer wrote:
Ага, но это при условии, что эту функцию никто не использует в своем коде. А если используют, и уверены, что функция портит только eax, а ebx не затирается?

Насколько я знаю, в шелле есть команда uptime, которая использует эту функцию, может ещё она где-то используется, но переделывать много, таки думаю, не придётся.

Author:  Mario_r4 [ Sun Apr 07, 2013 2:34 pm ]
Post subject:  Re: UpTime - Аптайм или время непрерывной работы системы

Aeol wrote:
SoUrcerer wrote:
Ага, но это при условии, что эту функцию никто не использует в своем коде. А если используют, и уверены, что функция портит только eax, а ebx не затирается?

Насколько я знаю, в шелле есть команда uptime, которая использует эту функцию, может ещё она где-то используется, но переделывать много, таки думаю, не придётся.

Вот тут ошибочка - функция используется многими программами.

Page 2 of 2 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/