Всем привет, это мой первй пост. Собственно в свободное время сижу и читаю форум, как следствие разбираю азы программирования. Вот и возникли вопросы, которые я пока еще не решил, поэтому прошу помощи у Вас.
В этой теме нашел ссылку на
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 командной строкой не получается, пишет что файл не найдет. Как такое возможно?(((((((((((