Nepredsazuemiy
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Всем привет, это мой первй пост. Собственно в свободное время сижу и читаю форум, как следствие разбираю азы программирования. Вот и возникли вопросы, которые я пока еще не решил, поэтому прошу помощи у Вас. В этой теме нашел ссылку на http://www.wasm.ru/article.php?article=1022001 (Низкоуровневое программирование). Начал изучать по ней. Собственно проблемы. Пункт из этой статьи 2 "2# А теперь потренируем наши пальчики дампировать память - пройдемся по некоторым "историческим местам" нашей оперативной памяти... Для этого мы будем вводить команду D с параметром. Например, команда (параметр L8 означает "вывести 8 байтов"): - D FFFF:5 L8 [Enter] покажет вам системную дату в правом столбце дампа. " Собственно все так сделал, увидел 8 байт и все хорошо. Но только не упомянулось что такое FFFF и на сколько я понял - это показывает, то что это 16 система счисления. Далее написанны список адресов, но как их правильно вводить, я так и не понял. Адреса такие 0:417 0:41A 0:43E 0:44E 0:460 0:449 А я их ввел следующим образом: d 0:417 L2 2 байта вывеЛ, хотя можно и 4 и 5 и т.д. не суть. Посмотрел что там написанно и как бы все понятно и как бы не совсем. Я корректно ввожу команду??? Далее пункт 1.4, а именно создание простейшей программы, программы с корректным выходом. Как написанно в инструкии создание файла можно осуществить с помощью программы (шеснадцатиричный редактор) HexWorkshop, но я не имею возможности установить эту программу, т.к. ограничен доступ работы с компьютером(комп на работе). Я думал как решить эту проблему и нашел программу, не требующую установки, а именно WinHex. Создал файл размером два байта, где один байт это CD, а другой 20. Т.е. конец программы. Запутил его не из под нортона, а просто из под винды. Итог появилось окошко на пол секунды и счезло, т.е. следовательно можно предположить, что прорамма с главнной задачей "корректного выхода" работает. Далее идет пункт 2#. Как вводить эти команды? У меня всегда пишет ошибку, наверно я ввожу не правильно, но как вводить правильно я не понял(((. Кто не желает пройти по сслыке указзанной на верху напишу их здесь B82301 - внести значение 0123h в AX; 052500 - прибавить значение 0025h к AX; 8BD8 - переслать содержимое AX в BX; 03D8 - прибавить содержимое AX к BX; 8BCB - переслать содержимое BX в CX; 31C0 - очистка AX; CD20 - конец программы. Передача управления операционной системе. Далее проблема с пунктом 6# " Посмотрите на машинные коды, и "что они делают" в #2. Немножко дополним эту "простыню". Например, командой "внести значение" 1234 последовательно в каждый из "регистров общего пользования": B83412 - AX=1234 BB3412 - BX=1234 B93412 - CX=1234 BA3412 - DX=1234 Наиболее наблюдательные должны для себя отметить, что первый байт - это команда "переместить в регистр", а второй и третий - само число, только байты почему-то "наоборот"." Опять же не получается ввести эту команду. Проблема описанно мной свыше. Суть та же. И крайний вопрос, я создал еще одну программку по примеру (B8-23-01-05-25-00-8B-D8-03-D8-8B-CB-31-C0-CD-20). Но есть большое НО , загрузить рограмму в debug командной строкой не получается, пишет что файл не найдет. Как такое возможно?((((((((((( |