помогите с 16-ым кодом

Тема в разделе "WASM.BEGINNERS", создана пользователем yngwie19, 25 окт 2008.

  1. yngwie19

    yngwie19 New Member

    Публикаций:
    0
    Регистрация:
    25 окт 2008
    Сообщения:
    17
    Всем привет, вот начал изучать Ассемблер, и наткнулся на одну статью, "Введение в машинный код", вней есть описание 16-ных команд, которые выполняют различные денйствия, например:

    B82301 - внести значение 0123h в AX;
    052500 - прибавить значение 0025h к AX;
    8BD8 - переслать содержимое AX в BX;
    03D8 - прибавить содержимое AX к BX;
    8BCB - переслать содержимое BX в CX;
    31C0 - очистка AX;
    CD20 - конец программы. Передача управления операционной системе.

    В статье предлагают создать файл используя HexWorkshop, и набрать следующее:

    B8-23-01-05-25-00-8B-D8-03-D8-8B-CB-31-C0-CD-20

    Кстати непонятно почему через тире? далее предлагают сохранить в виде myprg_1.com (кстати правильно ли Я делаю, что сохраняю просто: file->Save As: myprg_1.com
    , или надо как-то в bin переводить?), затем через пуск выполнить debug [путь к файлу] и в открывшемся окне ввести -u на что должна выскочить такая табличка:


    11B7:0100 B82301 MOV AX,0123 ; Внести значение 0123h в AX
    11B7:0103 052500 ADD AX,0025 ; Прибавить значение 0025h к AX
    11B7:0106 8BD8 MOV BX,AX ; Переслать содержимое AX в BX
    11B7:0108 03D8 ADD BX,AX ; Прибавить содержимое AX к BX
    11B7:010A 8BCB MOV CX,BX ; Переслать содержимое BX в CX
    11B7:010C 31C0 XOR AX,AX ; Очистка AX
    11B7:010E CD20 INT 20 ; Конец программы

    Ну понятно, что здесь описыватся команды asm, и что они делают.
    Но у меня появляется таблица с другими командами, попробуйте сами создайте такой файл, может Я что-то делаю не так???

    Большая просьба ответьте на этот вопрос. Спасибо
    P:S: А вот эта статья http://wasm.ru/article.php?article=1022001
     
  2. only

    only New Member

    Публикаций:
    0
    Регистрация:
    21 окт 2008
    Сообщения:
    147
    просто для разделения побайтно, тире тут смысловой нагрузки не несет
    com это и есть bin

    насчет остального - приаттачивай свой com-файл.
     
  3. yngwie19

    yngwie19 New Member

    Публикаций:
    0
    Регистрация:
    25 окт 2008
    Сообщения:
    17
    а в редакторе это hex. Дак как мне в bin сохранить?
    И что значит приаттачивать?
     
  4. only

    only New Member

    Публикаций:
    0
    Регистрация:
    21 окт 2008
    Сообщения:
    147
    ну нормально.
    то что сохраняется в файл - это дамп кода, который будет выполняться.
    com файл это файл без форматированного заголовка внутри, в котором только дамп, то есть то, что тебе нужно это то, что ты сохраняешь, как его не обзови: хоть com, хоть bin.
    залей куда-нибудь файл, и тут оставь ссылку.
     
  5. yngwie19

    yngwie19 New Member

    Публикаций:
    0
    Регистрация:
    25 окт 2008
    Сообщения:
    17
  6. xROM

    xROM New Member

    Публикаций:
    0
    Регистрация:
    30 сен 2008
    Сообщения:
    21
    Мда... Это точно стеб
     
  7. yngwie19

    yngwie19 New Member

    Публикаций:
    0
    Регистрация:
    25 окт 2008
    Сообщения:
    17
    xROMпочему
     
  8. zukalo

    zukalo New Member

    Публикаций:
    0
    Регистрация:
    22 окт 2008
    Сообщения:
    20
    yngwie19, советую не тратить зря время, сам на похожую ерунду время убивал. Пишите лучше не в байт-коде, а по обычному в Fasme например, оно и понятнее, и толку больше.
     
  9. yngwie19

    yngwie19 New Member

    Публикаций:
    0
    Регистрация:
    25 окт 2008
    Сообщения:
    17
    zukalo
    ну ладно, просто мне кажется что ассемблер это очень сложно и поэтому думаю что рас изучать, то с самого начала
     
  10. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    если не получается через строку параметров, то можно загрузить уже после запуска debug'а:

    -N полное имя файла
    -L 100

    Можно бинарный код вбить прямо в debug'е:

    -E 100 и далее через пробелы побайтово код

    Ну и самое главное - последний данный тебе совет вполне правильный. А хочешь изучать и двоичный код, делай наоборот, т.е. бери откомпилированную программу и просматривай ее в отладчике или в hex-редакторе.
     
  11. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.787
  12. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    yngwie19
    Ты статью совсем не понял, т.ч. все сложно... Хекс - это код, т.е. условное обозначение, а ты вбил в файл ТЕКСТ!!! Ассемблер это тоже "кодировщик" только более удобный. Все-таки на английском команды в нем имеют какой-то смысл. Раз ты не смог Workshop освоить, то либо все сложно, либо лучше все-таки ассемблером заняться.
    Ну и советую подумать - не всем дано быть программистами, некоторые полезнее в другом будут.
     
  13. SII

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

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    yngwie19
    Ассемблер -- это, конечно, весьма сложно, но работа прямо в машинном коде -- ещё сложнее, причём намного. Особенно на ПК (а точнее, на микропроцессорах от Интел) из-за громоздкой, запутанной и попросту дурацкой системы кодирования команд. В общем, если есть желание научиться программированию на низком уровне -- то надо осваивать именно ассемблер, а уже потом, понимая, как пишутся программы на ассемблере и как вообще работает компутер, можно пытаться разобраться с машинным кодом.
     
  14. Memphis

    Memphis New Member

    Публикаций:
    0
    Регистрация:
    23 окт 2008
    Сообщения:
    104
    yngwie19
    Привет, начинающий ! Тебя ругают, над тобой смеются - но ты не здавайся. Рано или поздно, но результат будет. Главное - побольше настойчивости и не сдавайся. А посему - запусти Hiew (или любой другой Hex-редактор), создай файл и вбей ему Hex-коды из твоего примера - B8 23 01... Никаких черточек, пробелов не надо, только сами коды. Эти коды (осмысленные, конечно) означают машинные команды/данные - по сути таким путем ты создал код (прогу), готовую к исполенению. Если проделаешь это в Hiew, он позволит этот код дизассемблировать - ты увидишь, как байты кода транслирются в мнемоники команд -
    mov ax,123h
    add ax,25h