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