обработка команды mov ax,0x1234

Тема в разделе "WASM.BEGINNERS", создана пользователем zx123, 31 июл 2009.

  1. zx123

    zx123 New Member

    Публикаций:
    0
    Регистрация:
    31 июл 2009
    Сообщения:
    2
    обьясните пожалуйста на примере процессора х86 как происходит обработка команды mov ax,0x1234
    в какую шину что попадает (отдельно mov отдельно 12 и 34) куда выводится .
     
  2. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    на ixbt.com есть неплохой цикл статей.
     
  3. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    zx123
    Такое объяснение не имеет особого смысла по той причине, что действия _аппаратуры_ процессора зависят от того, что это за процессор. 8086 выполнял команды одним образом, 80286 -- другим, 80386 -- третьим и т.д. И если логику работы ранних процессоров (вроде того же 8086) расписать можно очень точно, то с современными будут большие проблемы: слишком они внутри наворочены, плюс информация об их внутреннем устройстве засекречена фирмами-разработчиками.

    Кстати, а зачем понадобилось такое "железное" объяснение? Ведь для программирования глубоко понимать, как всё это работает в аппаратуре, не требуется.
     
  4. zx123

    zx123 New Member

    Публикаций:
    0
    Регистрация:
    31 июл 2009
    Сообщения:
    2
    ну я знаю что у процессора есть шины данных ,адресов и управления
    это пины в процессоре
    допустим 8086
    мне нужно знать по какой шине что в процессор приходит когда дается команда
    допустим mov ax,0x1234
    ...
    самое главное вот эта команда mov которая представлена каким-то числом
    поступает по какой-то шине и что происходит

    вообще это такты процессора его (процессор) двигают..?
    что происходит именно с командой mov
    она считывается процессором с шины за счет синхронизации или импульсы сами идут на какие то тригеры и что то двигают?
    потому-что я учил в политехе этот курс и некоторые вещи не уловил
     
  5. o14189

    o14189 New Member

    Публикаций:
    0
    Регистрация:
    19 июл 2009
    Сообщения:
    320
    на 8086 есть даташит с диаграммами синхронизации
    поищи в сети
    там в принципе есть все что нужно чтобы понять
    все объяснить скорее всего много времени уйдет, лучше самому либо даташит разобрать на старый 8086,
    либо лекции какие то искать по микропроцессорным системам и средствам
     
  6. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    zx123
    ну прежде всего надо понять, что между командыми и данными не различия для процессора
    команда mov ax, 0x1234 в 16-битном режиме представляется следующей последовательностью байтов 0xB8 0x34 0x12
    при этом 0xB8 - код команды mov ax, imm16, а 0x34 и 0x12 (или слово 0x1234) это и есть imm16
    все данные приходят по шине данный, на шину адреса выставляется адрес требуемых процессору данных, по шине управления обеспечивается синхронизация и управление передачей данных.
    т.е. в процессор последовательно из памяти идет последовательность байт (не сама конечно, по запросу со стороны процессора) ... 0xB8 0x34 0x12 ... далее первый бай начинает декодироваться как команда, а следующие 2 уходят как данные к команде, когда процессор дешифрует код команды.

    это все очень приблизительно (в двух-трех словах)