Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Ассемблер

1057  
taksos постоялец01.12.08 18:25
taksos
NEW 01.12.08 18:25 
Товарищи, подскажите какую-н литературу, желательно на русском языке, для самостоятельного изучения языка ассемблера под Windows.
#1 
AlexOtt постоялец01.12.08 18:29
AlexOtt
NEW 01.12.08 18:29 
в ответ taksos 01.12.08 18:25
а вы точно уверены, что вы сможете руками писать более эффективный код чем компилятор С/С++, например?
#2 
taksos постоялец01.12.08 18:38
taksos
NEW 01.12.08 18:38 
в ответ AlexOtt 01.12.08 18:29
У меня вопрос не стоит об этом, просто сейчас в вузе начали изучать. Посоветовали Зубкова С.В., может есть что еще?
#3 
voxel3d коренной житель01.12.08 20:17
voxel3d
NEW 01.12.08 20:17 
в ответ taksos 01.12.08 18:25
http://wasm.ru/
Dropbox - средство синхронизации и бэкапа файлов.
#4 
AlexOtt постоялец01.12.08 21:37
AlexOtt
NEW 01.12.08 21:37 
в ответ taksos 01.12.08 18:38
а что за вуз и специальность? мне просто интересно
#5 
taksos постоялец02.12.08 02:34
taksos
NEW 02.12.08 02:34 
в ответ AlexOtt 01.12.08 21:37, Последний раз изменено 02.12.08 02:45 (taksos)
ЮУрГУ, спец-ть ЭВМ
#6 
  }{отт@бь)ч прохожий07.12.08 20:24
NEW 07.12.08 20:24 
в ответ taksos 01.12.08 18:25
на какой тебе Ассемблер под виндоооооф и Visual Basic версии 6 хватит... да и в изучение проще... примиров исходного кода в рунете массы...
#7 
Elwiss прохожий16.12.08 20:23
Elwiss
NEW 16.12.08 20:23 
в ответ taksos 01.12.08 18:25, Последний раз изменено 16.12.08 20:40 (Elwiss)
привет , я знаю точно что ты можеш ето скачать в инете бесплатно , толко скажи у тебя ассемблер от microsoft (масм) или просто (насм), хотя разнитзы почти нет там только linkers надо другие прописать, я тебе впринзипе могу показать некоторые книги на немезком очен толковые , а так же могу показать как ето делаетца в linux (unter GNU)
вот например нашол сразу две ссылки, качай наздорове, только осторожно если вирусы я неотвечаю :0)
http://www.proklondike.com/contentview.php?content=6
http://yandex.ru/yandsearch?text=%D0%B0%D1%81%D1%81%D0%B5%D0%BC%D0%B1%D0%BB%D0%B5%D1%80+%D0%BA%D0%BD%D0%B8%D0%B3%D0%B0+%D1%81%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C+%D0%B1%D0%B5%D1%81%D0%BF%D0%BB%D0%B0%D1%82%D0%BD%D0%BE+&stpar2=%2Fh0%2Ftm69%2Fs2&stpar4=%2Fs2
#8 
taksos постоялец18.12.08 02:59
taksos
NEW 18.12.08 02:59 
в ответ Elwiss 16.12.08 20:23
Под Windows masm. Под Linux можно gcc, можно as - это не принципиально. Сейчас дело сдвинулось, интересует, каким отладчиком для linux стоит пользоваться, хотелось бы что-н типа afd или td под Windows.
#9 
AlexOtt постоялец18.12.08 09:23
AlexOtt
NEW 18.12.08 09:23 
в ответ taksos 18.12.08 02:59
дебаггер под линукс один - gdb ;-)
а вот морд к нему много - emacs, ddd, kdevelop, и т.д.
#10 
Elwiss прохожий18.12.08 11:56
Elwiss
NEW 18.12.08 11:56 
в ответ taksos 18.12.08 02:59, Последний раз изменено 18.12.08 12:54 (Elwiss)
debbuger он довольнотаки универсальный установи его себе на linux ( ubuntu: apt-get install kdbg под другие linuxs: gdb) при компиляции в linux ubuntu (k(x)buntu) -> ddd <filename> или kdbg <filename> , еще надо научитца пользоваться Linker
Вообшем:
0. открываешь терминал
1. входиш как суперюзер (команда: su)
2. пароль
3. инсталируешь ассемблер: apt-get install nasm потом debugger: (ubuntu: apt-get install kdbg под другие linuxs: gdb)
4. пишишь в терминале vim <filename.nasm> ето конешно пишетца везде без скобок (<>)
5. там описиваеш программу
(vim редактор работает очень просто если нет литератури тогда попробуй просто следуюшее:
1. когда зашол нашми на кнопки shift+A , послее етого ти сможишь там вводить данные.
2. после того как ввел все, нажимаем esc и тепер надо сохранить и выдти , пишим внизу в левом углу (курсор туда автоматически прыгает) следующее: :wq
и нажимаем интер, (w-write, q-quit) )
пример как описиваетца программа здесь:
;<filename>.nasm
section .data
; описываешь переменные константи и т.п.
...
section .bss
;еще пока точно незнаю :0)
....
;например: filename resb 0x20
........
section .text
;здесь собственно тело программы (главная программа) , но только после метки старта (_start:)
global _start
;стартуем ничего описивать больше ненадо все уже показали (метку)
_start: ; метка старта
;тело программы
......
; в конзе ненадо ставить end или еще что похожее
#11 
Elwiss прохожий18.12.08 12:12
Elwiss
NEW 18.12.08 12:12 
в ответ taksos 18.12.08 02:59, Последний раз изменено 18.12.08 12:53 (Elwiss)
далее:
6. Linker описываю:
сначало надо проверить на наличее ошибок (но ето не компиляция), для етого пишим в терминале после того как создали через vim редактор фаил ето:
nasm -g -f elf -o <filename.o> <filename.nasm>
поеснение: -g ето для Debugger , которий будет проверят точнеее компилировать нашу прогу
-f elf проверка на наличия ошибок , -o что-бы фаил наш подогнать для linker (ld)
тепер запускаем linker
ld -g -o <filename> <filename.o>
теперь сам Debugger запускаем и компилируем (предворительно его установив конешно :0) )
ddd &
в ubuntu -> kdbg <filename>
если хочеш посмотрет как программка роботает , тогда после всех етих шагов в терминале напиши ето:
./<filename>
вот и все, ну а там дело за ручками что хочешь, то и программируй
#12 
Elwiss прохожий18.12.08 13:09
Elwiss
NEW 18.12.08 13:09 
в ответ taksos 18.12.08 02:59
пример, как ето выглядит в vim-redaktor:
;u1.nasm
section .data
msg db "Hallo chajnik :0)", 0xa
len equ $ - msg
section .text
global _start
_start:
mov eax, 4
mov ebx, 1
mov ecx, msg
mov edx, len
int 0x80
; beenden
mov eax, 1
mov ebx, 0
int 0x80
#13 
Elwiss прохожий18.12.08 13:14
Elwiss
NEW 18.12.08 13:14 
в ответ taksos 18.12.08 02:59, Последний раз изменено 18.12.08 13:17 (Elwiss)
после линкер(1. и 2. шага) можно посмотреть с помоши команды: ls -a , сколко у нас в наличие файлов собралось потом просто запустить файл в терминале командой ./u1 и посмотреть работает ли у нас програмка
#14 
  otto diesel коренной житель31.12.08 17:45
otto diesel
NEW 31.12.08 17:45 
в ответ taksos 01.12.08 18:25
http://tams-www.informatik.uni-hamburg.de/publications/onlineDoc/index.php?content=01-lehre#prakRech
здесь есть программа для windows
WinT3asm Assembler für Windows (neue Version 01.06.2007)
Не стоит принимать доброту за слабость, грубость за силу, а подлость за умение жить.
#15 
rahimov80 завсегдатай14.01.09 12:18
14.01.09 12:18 
в ответ Elwiss 18.12.08 12:12
Извините меня, но я надеюсь, вы не придете работать в нашу компанию с такими знаниями
В ответ на:
сначало надо проверить на наличее ошибок (но ето не компиляция), для етого пишим в терминале после того как создали через vim редактор фаил ето:
nasm -g -f elf -o <filename.o> <filename.nasm>
Это как раз таки компиляция
В ответ на:
поеснение: -g ето для Debugger , которий будет проверят точнеее компилировать нашу прогу
-f elf проверка на наличия ошибок , -o что-бы фаил наш подогнать для linker (ld)

-g деиствительно, генерирoвать дебаг инфромацию
-f elf формат обжект/выходного файла -f bin для COMa MS-DOSa; -f obj для ms; -f win32 для ms linker в windows; ваш -f elf для создания ELF для Linuxa
-o как всегда, имя выходного файла (хотя у вас и совпадает (.asm в .o)
В ответ на:

тепер запускаем linker
ld -g -o <filename> <filename.o>
теперь сам Debugger запускаем и компилируем (предворительно его установив конешно :0) )

дебаггер вы запускаете, но уже все скомпилированно и слинкованно
1) Будьте точнее в терминах
2) Если не хотите, чтоб вас заваливали на всех рабочих интервью, то читайте больше дополнительной документации (например погуглите "nasm command line options" , etc)
В остальном, удачи!
#16