Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2015, 19:05   #1
No_obas
Заблокирован
 
Регистрация: 26.04.2015
Сообщений: 2
По умолчанию На счёт ассемблера в общем.

Здравствуйте дорогие форумчане,я начал учить ассемблер где-то месяц назад,я выучил какие и для чего регистры есть,флаги и тд и тп. Но я до сих пор не смог понять как работает программа на ассемблере,точнее как из к примеру *push eax* строится программа.Я не могу понять сам принцип,поясните пожалуйста на примере,киньте ссылку на книгу или статью.Просто сильное желание понять ассемблер а не могу.Заранее cпасибо.
No_obas вне форума Ответить с цитированием
Старый 26.04.2015, 19:14   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну не знаю... Если книги Питера Нортона и Питера Абеля тебе не помогут то...
Даже не знаю.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.04.2015, 19:15   #3
No_obas
Заблокирован
 
Регистрация: 26.04.2015
Сообщений: 2
По умолчанию

Спасибо,посмотрю.
No_obas вне форума Ответить с цитированием
Старый 26.04.2015, 22:28   #4
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Халявные книги на любой вкус: http://www.proklondike.com/books.html
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 27.04.2015, 09:19   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Цитата:
Но я до сих пор не смог понять как работает программа на ассемблере,точнее как из к примеру *push eax* строится программа.Я не могу понять сам принцип
Какая-то фиговая отмазка. Вы хотите сказать, что не понимаете как из "взять число 1", "умножить его на 5", "вызвать функцию" строится программа в общем?
Вы шнурки завязываете? Процесс понимаете? А ведь там тоже "взять один конец", "подеть", "затянуть"...
p51x вне форума Ответить с цитированием
Старый 27.04.2015, 10:29   #6
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

ну вот не может человек уловить картину целиком. Я бы привел листинг не слишком замудреного кода, но не Hello World'а, с комментарием к каждой строке, а чуть ниже диаграмму показывающую как работает код. ТС бы быстро все понял Увы я асм не знаю.
Человек_Борща вне форума Ответить с цитированием
Старый 27.04.2015, 15:23   #7
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Как я понял, ТС пишет под винду и с API, где параметры передаются пушами через стек. Так что-ли?
Тогда нужно скачать справочник по API-функциям, где они и прописаны.

А если на пальцах, то это всё-равно, что передавать параметры через регистры.
Например:

Код:
;--------через стек-------------------------------|
 x  db  8
 y  db  2

   push  y         ; заносим параметр(2) в стек
   push  x         ; заносим параметр(1) в стек
   call  myfunc    ; зовём функцию
   add   sp,4      ; освобождаем стек

 myfunc:           ; сама функция 
   mov ax,[sp+2]   ; снимаем со-стека параметр(2)
   mov dx,[sp+4]   ; снимаем со-стека параметр(1)
   add ax,dx       ; результат в AX
   ret
 

;--------это же, через регистры-------------------|
 x  db  8
 y  db  2

   mov  ax,x       
   mov  dx,y
   call myfunc
  
 myfunc:         
   add ax,dx       ; результат в AX
   ret
Афтар хоть-бы показал свои попытки, тогда можно о чём-то судить.
А так, приходиться гадать..
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 27.04.2015, 16:10   #8
V_D_O
Заблокирован
 
Регистрация: 27.04.2015
Сообщений: 1
По умолчанию

(Это я)
Нет нет,это я понимаю,я имею ввиду что я не понимаю как из такого создаётся программа,понимаю,звучит глупо,я понимаю что нужно дофига читать,но может есть раздел в книге какой то где объясняют как строится программа,точнее...я понимаю как работать со стеком и с регистрами,я не понимаю как из этого построить программу.Как вообще работает программа на ассемблере?
V_D_O вне форума Ответить с цитированием
Старый 27.04.2015, 16:27   #9
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Цитата:
Как вообще работает программа на ассемблере?
Абсолютно также, как и на С/С++/Паскале/Делфи/Перле/... Читается процессором опкод "загрузить 1" - он грузит, читается опкод "прибавить 2" - он прибавляет,...

Непонятно с чем у вас проблемы. Начнем с простого - вы какой-нибудь язык программирования знаете? Хотя бы школьный алгоритмический?
p51x вне форума Ответить с цитированием
Старый 27.04.2015, 20:21   #10
S-Df
Новичок
Джуниор
 
Регистрация: 27.04.2015
Сообщений: 2
По умолчанию

Чуть-чуть Бэйсик и С++
S-Df вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В общем , нужна прога ! kosmos-kosmos Помощь студентам 4 16.11.2013 20:45
[?]Cport 3.1 и COM порты в общем Zadovatel Компоненты Delphi 26 29.08.2013 12:32
почему здесь выкидуется ошибка на счёт c_str и ToInt на счёт ostream elf01 C++ Builder 5 19.12.2011 23:07
Автосохранение книги в общем доступе Chelentano Microsoft Office Excel 0 25.08.2009 13:10