![]() |
Ответ: DLL на Microsoft Visual C++ 6.0
Цитата:
Цитата:
|
Ответ: DLL на Microsoft Visual C++ 6.0
был-бы признателен еслиб ты показал как с помощью 101001 написать hello world, или хотяб на ассемблере, но без сторонних программ
|
Ответ: DLL на Microsoft Visual C++ 6.0
Легко. Start->Run...->cmd->debug
Хэлп прилагается (-?). За соответствием асм команд мнемоникам процессора идти на intel и качать доки соответствующие. Ах да, 16 битный режим (возможно и в 32 бита переводится). Написать можно хоть что, ну разве что это смахивает на какое-то извращение =) |
Ответ: DLL на Microsoft Visual C++ 6.0
а что насчет 101001 ?
|
Ответ: DLL на Microsoft Visual C++ 6.0
Что? Все просто. Как извстно ассемблер является приближением к машинному языку (тем не менее команды машинного языка транслируются процессором в специфичный микрокод, т.е. одна команда на асме нем не менее может разложится на нескольо реальных машинных, но нам это не инетерсно, это область деятельности инженеров интела и им подобных). Все было бы шоколодно если не одна проблема - одной команде асма может соотвествовать десяток машинных (все завист от ее аргументов и т.п., т.е. с регистрами она имет один номер, в памятью другой и т.п.). Для того чтобы писать на машинных кодах (а типично писать свои ЯП в целом и ассемблеры в частности), необходимо знать эти соответствия. Узнать их можно из доков интела, кроме того можно и так найти их, отдельными файликами, где указываются все инструкции асма и соответствующие им мнемоники (а также кол-во тактов которые они кушают). Т.е. все сводится к чему:
1) Берем команду асма 2) Ищем мнемонику (в зависимости от семантики) 3) Вписываем байт нужный на место, потом дописываем аргументы (если надо) 4) Переходим к слдедующей На выходе мы получаем машинный код, готовый к выполнению. Тем не менее просто так его не запустить. Для этого нужен загрузчик. В Windows юзается PE (portable executable). Т.е. следуя формату формируем файл, который и является нашим привычным ехешником. Подробнее писать некогда - кофе стынет =) Да и не место. |
Ответ: DLL на Microsoft Visual C++ 6.0
эх, развели тут срань.....лан, разберусь
|
Часовой пояс GMT +4, время: 19:00. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot