Меню Рубрики

Ассемблер для mac os

Ассемблер для mac os

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Assembler on a Mac? Yes We Can!

A list of sample Assembly programs that demonstrate how to program using machine code instructions. Each program in this project is well self documented. Use this README.md to get started, then jump to ASSEMBLER.md to go further.

Program Description
hello.s Have a look at this first Hello World assembly code
formatstring.s Display a formatted string on screen
parameters.s It shows usage of parameters when calling a program or function
operations.s Sample program to debug of common instructions
registers.s Assembly program to show addressing of registers

Please note that you need to have the unix as (Assembler) and ld (Linker) utilities to use the sample programs included in this project. These utilities are automatically installed via the command line developers tools included in Xcode. The easiest way to install them is to open terminal and run the ld command, if you don’t have them you should get a prompt to start install.

Use the included shell script utility asm.sh to compile, link and run assembly code. Format is:

This utility will automatically call as to compile an assembly source code into an object code program (.o). It will then call the linker ld to create an executable from the object code. As an example the following command will compile, link and run hello.s assembly code:

This will produce hello.o object code and hello executable. This last one can also be directly started from the command line:

Important Note

You may need to specify which version of Mac OS X you are using in asm.sh script :

Debug assembly code

You can use lldb to debug an executable program. For example the following command will start a debug session:

Debug Command Description
b main Set a breakpoint at the start symbol (main) of a program
run Run code till a breakpoint is found
run par1 par2 Run code using input parameters
b 0x1f8d Set breakpoint at line number 0x1f8d
s Step into instruction (i.e. step into a call statement)
n Step over instruction (i.e. step over a call statement)
c continue execution till a breakpoint is found
q Terminate execution and exit lldb
register read Show content of main registers (abbreviated re r )
re read esp eat Show content of esp and tax register
re write eax 0xF12F Write content to tax register
memory read 0xbffffb8c Read content of memory address
x 0xbffffb8c Same as memory read , abbreviated form
x —count 100 0xbffffb8c Read 100 bytes from memory address 0xbffffb8c
watch set e 0x1f67 watch changes at memory address (breakpoint)
gui When entered after run show debugger in a GUI

TIP: After entering a run command in lldb try using the gui command as well. :

Some handy shell commands

Command Description
hexdump -C FileName Hexadecimal dump of FileName. Tip: pipe using head -n10
gcc -S prg.c -m32 -Os Generate assembly code from a C program
lldb Program Debug an executable program

Dive deeper in Assembler by reading ASSEMBLER.md.

A continuos learning path where passion is the drive.

About

Assembler on your Mac? Yes We Can ! A quick tutorial together with a bunch of sample assembler programs for the Mac.

Источник

Список ресурсов для изучения Ассемблера

Доброго времени суток!
Некоторым программистам иногда приходит в голову мысль «а не изучить ли мне ассемблер?». Ведь на нем пишут самые (с некоторыми оговорками) маленькие и быстрые программы, да и охота ощутить вкус низкоуровневого программирования берет свое. Ну и для общего развития не повредит.
Мысль эта не обошла стороной и меня. Вдохновившись историей одного байта, я ринулся в бой…

… но оказалось, что найти материал по интересующей теме не так просто, как хотелось бы. Посему решено было создать на хабре пополняющийся пост-индекс статей/книг/мануалов/etc. об этом, несомненно, великом языке.
Под катом находится, собственно, список с краткими комментариями, разбитый по категориям.

UPD
В список начали добавляться ресурсы по программингу микроконтроллеров.

Для начала

  • ru.wikipedia.org/wiki/Ассемблер — ассемблер (не тоже самое, что «язык ассемблера», хотя эти понятия почти слились) в википедии
  • ru.wikipedia.org/wiki/Язык_ассемблера — язык ассемблера там же
  • wasm.ru/article.php?article=onebyte — история одного байта
  • bitfry.narod.ru/00.htm — дневники чайника, довольно простые и интересные уроки для начинающих
  • www.scribd.com/doc/267365/A-Beginners-Course-In-Assembly-Language — книга об основах ассемблера на английском языке
  • Programming from the Ground Up — несложная книга на английском языке. Рекомендация megabrain
  • www.osinavi.ru/asm — учебник по Ассемблеру «для квалифицированных чайников»
  • habrahabr.ru/blogs/asm — блог, в котором, надеюсь, будет много статей об ассемблере

Ресурсы

  • wasm.ru — наверное, самый крупный русскоязычный ресурс по Ассемблеру. Огромное количество статей, живой форум, новости
  • cracklab.ru — огромный ресурс по исследованию/крэкингу программ
  • www.insidepro.com/rus/doc.shtml — огромнейшее собрание статей Криса Касперски
  • programmersclub.ru/assembler — курс asm&&win32
  • www.proklondike.com/books/assembler.html — мини-библиотека книг по ассемблеру
  • wiki.conus.info — большое количество заметок о reverse engineering на русском языке для начинающих и тех кто хочет научиться понимать создаваемый C/C++ компиляторами код
  • wasm.ru/publist.php?list=1 — Уроки Iczelion’а переведенные
  • www.nf-team.org/drmad/zf/zf1/zf1_006.htm — пособие начинающей технокрысы или как писать вирусы

Книги

Для книг я выкладываю только названия, без ссылок (или с ссылкой на интернет-магазин), так как я не знаю отношения некоторых людей к скачиванию чьей-то интеллектуальной собственности. Кому надо — тот найдет, где скачать.

  • kpnc.opennet.ru — архив книг Криса Касперски
  • Галисеев Г. В. Ассемблер для Win 32. Самоучитель
  • Зубков С. В. Ассемблер для DOS, Windows и UNIX
  • Кип Ирвин. Язык ассемблера для процессоров Intel = Assembly Language for Intel-Based Computers
  • Калашников О. А. Ассемблер? Это просто! Учимся программировать
  • Крис Касперски. Искусство дизассемблирования
  • Владислав Пирогов. Ассемблер для Windows
  • Владислав Пирогов. Ассемблер и дизассемблирование
  • Ричард Саймон. Microsoft Windows API Справочник системного программиста
  • Фрунзе А. В. Микроконтроллеры? Это же просто!
  • Юров В., Хорошенко С. Assembler: учебный курс
  • Абель — Ассемблер. Язык и программирование для IBM PC
  • Эндрю Таненбаум — «Архитектура компьютера» — рекомендация lefty
  • Чарльз Петцольд — «Код» — рекомендация lefty
  • Assembly Language Step-by-step: Programming with DOS and Linux
  • Юрий Ревич «Практическое программирование микроконтроллеров Atmel AVR на языке ассемблера» — рекомендация Ryav
  • Нортон П., Соухе Д. «Язык ассемблера для IBM PC» — рекомендация maotm
  • Григорьев В. Л. «Микропроцессор i486. Архитектура и программирование.» — рекомендация Ghost_nsk
  • Нортон П., Уилтон Р. «IBM PC и PS/2.руководство по программированию» — описана работа с прерываниями и простыми железками, рекомендация Ghost_nsk

Англоязычные ресурсы

  • asm.sourceforge.net — Ассемблер под Linux
  • orangejuiceliberationfront.com/intel-assembler-on-mac-os-x — Ассемблер под Mac
  • blogs.conus.info — Различные заметки о reverse engineering, security research, Oracle RDBMS internals, и т.д.
  • msdn.microsoft.com — огромная база знаний по технологиям Windows от Microsoft
  • www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html — мануалы по Intel’овским инструкциям
  • developer.amd.com/documentation/guides/Pages/default.aspx#manuals — аналогичные доки для AMD
  • win32assembly.online.fr — Уроки Iczelion’а, домашняя страница
  • www.gnu.org/s/gdb/documentation — GDB Manual
  • www.securitytube.net/groups?operation=view&groupId=6 — видеокурс Windows Assembly Language Megaprimer
  • www.securitytube.net/groups?operation=view&groupId=5 — видеокурс Assembly Language Megaprimer for Linux
  • alexfru.narod.ru/emiscdocs.html — подборка доков из теплых ламповых времен
  • www.agner.org/optimize — Software optimization resources
  • x86asm.net — x86-x64 manuals
  • www.ctyme.com/rbrown.htm — Ralf Brown Interrupt List with over 9000 linked pages and 350 indexes making the process of searching much easier

Инструменты

  • www.masm32.com — MASM32 SDK
  • flatassembler.net — flat assembler (FASM)
  • www.nasm.us — The Netwide Assembler (NASM)
  • www.ollydbg.de — OllyDbg, отладчик для Windows
  • www.hex-rays.com/products/ida/index.shtml — IDA — интерактивный дизассемблер и отладчик
  • www.idapro.ru — русская страница IDA
  • research.microsoft.com/en-us/projects/detours — Библиотека от Microsoft Research для инъекции Dll и перехвата управления на себя
  • conus.info/gt — отладчик командной строки для выполнения простых отладочных задач

Программинг микроконтроллеров

  • habrahabr.ru/blogs/controllers — тематический блог на хабре, с количеством постов несколько большим, чем в блоге по ассемблеру
  • programmators.ru — сайт по контроллерам семейства PIC
  • myrobot.ru/stepbystep — сайт роботостроения, по ссылке статьи о микроконтроллерах AVR
  • www.123avr.com/07.htm — МК AVR
  • easyelectronics.ru/category/avr-uchebnyj-kurs — AVR

Прочее

  • zx.pk.ru — форум ZX Spectrum
  • bbs.pediy.com — форум по reverse engineering на китайском языке (спасибо KollinZ). Чтобы можно было понять о чем речь, можно воспользоваться кнопкой «перевести» в хроме (спасибо за совет mexanism)
  • old-dos.ru — крупнейший в Рунете архив старых программ

Заключение

Надеюсь эта статья будет полезна как новичкам, так и тем, кто ищет новых знаний. Если вы знаете какие-либо интересные ресурсы по теме, смело пишите в комментарии, пост создавался, чтобы пополняться.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Архитектурные программы для mac os
  • Архитектура mac os x наиболее близка к архитектуре sun os 4
  • Архикад для mac os
  • Архиваторы для mac os
  • Архиватор под mac os