Всем привет, вот начал изучать Ассемблер, и наткнулся на одну статью, "Введение в машинный код", вней есть описание 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
просто для разделения побайтно, тире тут смысловой нагрузки не несет com это и есть bin насчет остального - приаттачивай свой com-файл.
ну нормально. то что сохраняется в файл - это дамп кода, который будет выполняться. com файл это файл без форматированного заголовка внутри, в котором только дамп, то есть то, что тебе нужно это то, что ты сохраняешь, как его не обзови: хоть com, хоть bin. залей куда-нибудь файл, и тут оставь ссылку.
yngwie19, советую не тратить зря время, сам на похожую ерунду время убивал. Пишите лучше не в байт-коде, а по обычному в Fasme например, оно и понятнее, и толку больше.
zukalo ну ладно, просто мне кажется что ассемблер это очень сложно и поэтому думаю что рас изучать, то с самого начала
если не получается через строку параметров, то можно загрузить уже после запуска debug'а: -N полное имя файла -L 100 Можно бинарный код вбить прямо в debug'е: -E 100 и далее через пробелы побайтово код Ну и самое главное - последний данный тебе совет вполне правильный. А хочешь изучать и двоичный код, делай наоборот, т.е. бери откомпилированную программу и просматривай ее в отладчике или в hex-редакторе.
yngwie19 Ты статью совсем не понял, т.ч. все сложно... Хекс - это код, т.е. условное обозначение, а ты вбил в файл ТЕКСТ!!! Ассемблер это тоже "кодировщик" только более удобный. Все-таки на английском команды в нем имеют какой-то смысл. Раз ты не смог Workshop освоить, то либо все сложно, либо лучше все-таки ассемблером заняться. Ну и советую подумать - не всем дано быть программистами, некоторые полезнее в другом будут.
yngwie19 Ассемблер -- это, конечно, весьма сложно, но работа прямо в машинном коде -- ещё сложнее, причём намного. Особенно на ПК (а точнее, на микропроцессорах от Интел) из-за громоздкой, запутанной и попросту дурацкой системы кодирования команд. В общем, если есть желание научиться программированию на низком уровне -- то надо осваивать именно ассемблер, а уже потом, понимая, как пишутся программы на ассемблере и как вообще работает компутер, можно пытаться разобраться с машинным кодом.
yngwie19 Привет, начинающий ! Тебя ругают, над тобой смеются - но ты не здавайся. Рано или поздно, но результат будет. Главное - побольше настойчивости и не сдавайся. А посему - запусти Hiew (или любой другой Hex-редактор), создай файл и вбей ему Hex-коды из твоего примера - B8 23 01... Никаких черточек, пробелов не надо, только сами коды. Эти коды (осмысленные, конечно) означают машинные команды/данные - по сути таким путем ты создал код (прогу), готовую к исполенению. Если проделаешь это в Hiew, он позволит этот код дизассемблировать - ты увидишь, как байты кода транслирются в мнемоники команд - mov ax,123h add ax,25h