Re: З чого почати вчити assembler
ігри пишуться на плюсах + скриптові имови
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → Системне програмування → З чого почати вчити assembler
навіщо взагалі вивчати асемблер?
Я певен, що ви цілком спроможні самостійно наґуґлити, як саме використовується асемблер.
підкажіть, які є безкоштовні середовища розробки для насм та для компілятора арм, на віндовс?
Послуговуйтеся FAR`ом та пакетними файлами.
скачав поки що тільки насм. скопіпастив код хело ворлд у блокнот і зберігши перейменував тхт на асм. потім у консолі насма прописав шлях до цього файла, жмакаю ентер і далі щось йде не так, пише з повторами: ... is not recognized as an internal or external command, operable program or batch file.
що не правильно?
Ви неправильно вказали шлях до nasm
потім у консолі насма
У насма немає консолі, наскільки я знаю.
Ви неправильно вказали шлях до nasm
у системих змінних, у PATH додав ще одну, шлях правильний вказав.
htoznasho написав:потім у консолі насма
У насма немає консолі, наскільки я знаю.
не впевнений, але окрім того, що схоже на консоль, нічого немає більше. а як має бути?
Спробуйте повний шлях вказувати замість застосування PATH змінної. Не забувайте, що шляхи з пробілом пишуться у подвійних лапках.
Спробуйте повний шлях вказувати замість застосування PATH змінної. Не забувайте, що шляхи з пробілом пишуться у подвійних лапках.
Ви маєте на увазі повний шлях- це шлях до .ехе? бо я вказав тільки до папки, де він знаходиться.
# будуть помилки то видалити коментарі
@set path=E:\dir\nasmpath;%path% # замініть на свій шлях до папки
@%comspec%
Збережіть в бат і буде вам консоль
Я б на вашому місці б створив пакетний файл compile.cmd, та звідтіля б запускав компілер nasm.
compile.cmd- у мене не працює, пише, що ця програма не може виконуватися на мому пк. Там з насмом скачався мануал. Як я зрозумів з нього, то воно не так працює як я думав, а як саме ще не догнав. У тій "консолі" потрібно прописати команди, щоб почався якійсь рух. Наприклад,
D:\programs\nasm>nasm -f win64 hello.asm
, жмакаю на ентер і знову зявляється
D:\programs\nasm>
Але, у папці тепер зявився файл hello.obj
Я вибрав формат він64, не знаю чи вірно. Хоча б тепер відомо, що шлях вірно прописаний. Але, далі робити з тим obj?
# будуть помилки то видалити коментарі @set path=E:\dir\nasmpath;%path% # замініть на свій шлях до папки @%comspec%
Збережіть в бат і буде вам консоль
не зрозумів. "консоль" здається і так працює?
Я вибрав формат він64, не знаю чи вірно. Хоча б тепер відомо, що шлях вірно прописаний. Але, далі робити з тим obj?
Лінкувати лінкером в EXE
htoznasho написав:Я вибрав формат він64, не знаю чи вірно. Хоча б тепер відомо, що шлях вірно прописаний. Але, далі робити з тим obj?
Лінкувати лінкером
Вперше чую про таке, але хіба не можна запустити хело ворлд силами одного асемблера, що необхідно звертатися за допомогою до іншої програми?
Значить ви в перший раз чуєте про компіляцію взагалі.
Вперше чую про таке, але хіба не можна запустити хело ворлд силами одного асемблера, що необхідно звертатися за допомогою до іншої програми?
Хто ж вам лікар, що ви обрали асемблер чи обрали файловий формат, який потребує для перетворення на виконуваний файл ще стадію лінкування?
Беріть FASM - він може, за потреби(йому треба прямо про те сказати), компілювати джерельний код одразу в EXE.
обрали асемблер чи обрали файловий формат, який потребує для перетворення на виконуваний файл ще стадію лінкування?
чи є серед цих форматів такий, який не потребує лінкування?
-f format select output file format
bin Flat raw binary (MS-DOS, embedded, ...) [default]
ith Intel Hex encoded flat binary
srec Motorola S-records encoded flat binary
aout Linux a.out
aoutb NetBSD/FreeBSD a.out
coff COFF (i386) (DJGPP, some Unix variants)
elf32 ELF32 (i386) (Linux, most Unix variants)
elf64 ELF64 (x86-64) (Linux, most Unix variants)
elfx32 ELFx32 (ELF32 for x86-64) (Linux)
as86 as86 (bin86/dev86 toolchain)
obj Intel/Microsoft OMF (MS-DOS, OS/2, Win16)
win32 Microsoft extended COFF for Win32 (i386)
win64 Microsoft extended COFF for Win64 (x86-64)
ieee IEEE-695 (LADsoft variant) object file format
macho32 Mach-O i386 (Mach, including MacOS X and variants)
macho64 Mach-O x86-64 (Mach, including MacOS X and variants)
dbg Trace of all info passed to output stage
elf Legacy alias for "elf32"
macho Legacy alias for "macho32"
win Legacy alias for "win32"
Є
За допомогою формата bin ви можете створювати com файли, які запускатимуться на MS DOS. Щоправда це для 16-бітного коду.
aout, aoutb теж створюють виконувані файли, але для Linux, NetBSD, FreeBSD
Є
За допомогою формата bin ви можете створювати com файли, які запускатимуться на MS DOS. Щоправда це для 16-бітного коду.
aout, aoutb теж створюють виконувані файли, але для Linux, NetBSD, FreeBSD
у мене віндовс, x86-64. Вже перепробував ті формати, тільки він64 працює. по іншим- помилки, наприклад:
hello.asm:5: error: instruction not supported in 16-bit mode.
Який лінкер підійде для насма?
у мене віндовс, x86-64. Вже перепробував ті формати, тільки він64 працює. по іншим- помилки, наприклад:
Звісно, джерельний код (якого ви тут не показали) розрахований на x86-64.
Який лінкер підійде для насма?
Не для насма, а для Microsoft extended COFF for Win64 (x86-64)
GoLink polink