• Как задать регистры стека ss, sp на x86 (загрузчик 16бит)?

    @XCemaXX Автор вопроса
    jcmvbkbc, Спасибо большое за ответ. Я дополнительно задал вопрос на stackoverflow. Теперь все встало на свои места, и я понял как работает код.
  • Как задать регистры стека ss, sp на x86 (загрузчик 16бит)?

    @XCemaXX Автор вопроса
    Вероятно возможно написать код так. Но чтобы не путаться, то лучше, как написал jcmvbkbc , регистры ds и ss заполнять одинаковыми значениями.
    [bits 16]
    [org 0x7c00]
    mov ax, 0x0000
    mov ds, ax
    add ax, 32 ;512/16=32 указатель базы адреса стека после кода загрузчика
    mov ss, ax ;установка адреса сегмента стека
    mov sp, 0x7c00+1024 ;установка смещения адреса указателя стека после кода в конец выделенного места для стека


    [bits 16]
    [org 0x0000]
    mov ax, 0x07C0
    mov ds, ax
    add ax, 32
    mov ss, ax
    mov sp, 1024 ;
  • Как задать регистры стека ss, sp на x86 (загрузчик 16бит)?

    @XCemaXX Автор вопроса
    Насколько я понял из твоего описания, верным будет код:
    [bits 16]
    [org 0x7c00]
    start:  ;смещение равно 0x7c00
    mov ax, 0 
    mov ds, ax ; указатель сегмента данных. База будет равна 0, благодаря org 0x7c00 все адреса будут на своих местах
    mov ss, ax ; указатель сегмента стека
    mov sp, start+1024+512 ;вершина стека


    и такой вариант
    [bits 16]
    [org 0x0000]
    start:  ;смещение равно 0x0000
    mov ax, 0x07c0 
    mov ds, ax ; указатель сегмента данных. База будет равна 0x7c00, смещения начнутся от 0го байта
    mov ss, ax ; указатель сегмента стека
    mov sp, start+1024+512 ;вершина стека


    В обоих случаях мы в регистр sp запишем одно и тоже значение?
    Теоретически нет, так как итоговый адрес вершины стека должен вычисляться, как ss:sp=0x7c00+1024+512. В первом случае, ss равно 0, поэтому sp должен быть равен 0x7c00+1024+512. Во втором случае ss=0x7c0, поэтому sp должен быть равен 0+1024+512. Из этого получается, что у метки start в первом случае смещение 0x7c00, во втором 0x0000. Но разве при вызове команды mov не должен возвращаться полный адрес метки (смещение+база), а не просто смещение? Ведь физически метка start будет всегда находится по адресу 0x7c00. И чтобы на нее перейти, например, командой jmp start значение адреса должно всегда быть равно 0x7c00. Другой пример, если после метки data1 стоит команда db 0xFF, а мы извлекаем данные mov ax, data1, то процессор всегда будет обращаться по полному адресу метки (смещение+база).
    Дополнительный вопрос: в этот момент значение регистра cs чему будет равно? BIOS автоматически его устанавливает в 0x7c0? Что должно быть логично, так как после копирования кода в ОП, процессор должен начать его выполнять.
  • Как вычислительная система выбирает какой набор инструкций использовать для исполнения кода?

    @XCemaXX Автор вопроса
    Спасибо, особенно за дополнение. Теперь мне ясно, что, например, в пакете AIDA64 есть разные реализации алгоритма теста AES (с инструкциями AES-NI и без), потому что, где есть инструкции в ядре AES, там производительность в десятке раз выше. Точно так же и для расчета других тестов, как фракталов, FMA4.
  • Как апгрейднуть компьютеры(Socket 1155,Socket AM3+), чтобы было заметно ускорение при рендере видео в sony vegas?

    @XCemaXX Автор вопроса
    АртемЪ, спасибо за развернутое объяснение и ваше время. Да, действительно смотрел в диспетчере задач загрузку ОП. Теперь займусь этим вопросом более тщательно.
  • Как апгрейднуть компьютеры(Socket 1155,Socket AM3+), чтобы было заметно ускорение при рендере видео в sony vegas?

    @XCemaXX Автор вопроса
    Хорошо, проведу тесты на загрузку жесткого диска. На счет объема оперативной памяти встречал в нескольких источниках, что, например, для fx6100 больше 8гб смысла ставить нет, нет прироста производительности.

    Не совсем понятен смысл Вашего утверждения про видеокарту. При кодировании видео она может использоваться или нет? Просчета 3д объектов же нет по ходу этого процесса. В то же время, кодирование само по себе должно отлично распараллеливаться и считаться на карте. Посмотрю еще настройки вегаса, определяет ли он её. Спасибо.