Форум программистов, компьютерный форум, киберфорум
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
2 / 2 / 0
Регистрация: 24.04.2011
Сообщений: 70

Что означает строка?

25.11.2011, 18:06. Показов 2183. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
add esp, 16
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.11.2011, 18:06
Ответы с готовыми решениями:

Что означает строка?
Что означает строка ? I DB 10,?,11 Dup('$'), '$' Весь код: lea dx, I+2 mov ah, 9 int 21h ret I DB 10,?,11 Dup('$'), '$'

Что эта строка означает в .bat файле
C:\masm32\bin\link.exe > C:\masm32\bin\text.txt

Что означает "Знание архитектуры х86", какие книги почитать, что нужно знать и уметь
Нашёл вакансию junior программиста С++, но нужно знание архитектруы х86. Что означает "Знание архитектуры х86", какие книги...

12
 Аватар для Goodwin98
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
25.11.2011, 20:07
esp = esp + 16
1
 Аватар для semiono
161 / 18 / 0
Регистрация: 14.09.2010
Сообщений: 472
Записей в блоге: 6
25.11.2011, 20:56
это же (stack pointer), вот бы научиться этим управлять, это как раз хитрые манипуляции со стеком, к которым я не знаю как подступиться.. наверное есть известные алгоритмы блин.
1
2 / 2 / 0
Регистрация: 24.04.2011
Сообщений: 70
25.11.2011, 21:45  [ТС]
а как число 16 высчитывается?или любое можно натуральное поставить?
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16372 / 7684 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
28.11.2011, 03:42
victory19933, это принудительное выравнивание стека, после того как туда отправили 4 переменные величиной в двойное слово (4 байта) 4х4=16 байт
1
Прощай, Мир!
 Аватар для proc3nt
1673 / 831 / 253
Регистрация: 26.05.2012
Сообщений: 3,056
17.08.2015, 15:35
добавлю только, что используется это обычно в эпилоге процедуры.
0
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
17.08.2015, 17:48
Цитата Сообщение от proc3nt Посмотреть сообщение
добавлю только, что используется это обычно в эпилоге процедуры.
Елси Вы о add esp, 16, то этим занимается вызывающая программа в С/С++. Пролог с эпилогом выглядят так:
Assembler
1
2
3
4
5
6
7
8
;пролог
push   ebp
mov    ebp, esp
sub     esp, 16
. . .
;эпилог
mov     esp, ebp
pop     ebp
Цитата Сообщение от semiono Посмотреть сообщение
это же (stack pointer), вот бы научиться этим управлять, это как раз хитрые манипуляции со стеком, к которым я не знаю как подступиться
Ничего сложного:
1) Вам нужно знать под какой язык заточен код(Basic, С, Fortran, Pascal, StdCall или Syscall) - от этого зависит как параметры попадают в стек и кто читсит стек после завершения работы;
2) Внимательно следить за регистрами ESP и EBP.
0
Прощай, Мир!
 Аватар для proc3nt
1673 / 831 / 253
Регистрация: 26.05.2012
Сообщений: 3,056
18.08.2015, 01:15
Constantin Cat, ты скорее прав, чем нет. но возможен и следующий вариант
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    call myproc
    ...
 
    myproc proc
        push ebp
        mov ebp,esp
        
        push eax
        push ebx
        push ecx
        push edx
        
        ;тело процедуры
        
        add esp,16
        pop ebp
        
        ret
    myproc endp
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16372 / 7684 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
18.08.2015, 03:18
Constantin Cat,
обычно две команды add esp,N/pop ebp (add rsp,N/pop rbp) заменяют на однобайтовую команду leave
0
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
18.08.2015, 06:48
Цитата Сообщение от proc3nt Посмотреть сообщение
но возможен и следующий вариант
Такое тоже возможно, но одна оченй уважаемая АПИ, работая с заявленой структурой длиной не кратной 4, из-за таких фокусов не работает, ей подавай кратную структуру.


Цитата Сообщение от Mikl___ Посмотреть сообщение
заменяют на однобайтовую команду leave
Тогда Вы забыли о команде ENTER, они как бы в паре работают. О них я не сказал, только потому, что для ТС и semiono так будет наглядней.
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16372 / 7684 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
18.08.2015, 09:04
Constantin Cat,
а вы на дату создания топика не посмотрели? Для ТС и semiono это уже 4 года не актуально
0
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
19.08.2015, 09:22
0
 Аватар для Ethereal
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
20.08.2015, 08:49
Цитата Сообщение от Constantin Cat Посмотреть сообщение
Тогда Вы забыли о команде ENTER, они как бы в паре работают.
Им совершенно необязательно работать в паре. LEAVE это просто заменитель
MOV SP,BP
POP BP
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.08.2015, 08:49
Помогаю со студенческими работами здесь

Что означает MessageBoxA?
Вот кусок кода: invoke OpenClipboard,0 invoke GetClipboardData,CF_TEXT invoke MessageBoxA,0,eax,0,MB_OK...

Что означает 500 dup(<>)
1. Что означает 500 dup(&lt;&gt;)? массив каждым элементов которого будет элемент структуры, всего их 500, они все одинаковы,но что значит...

Что означает '0' в приведенной строке кода
подскажите пожалуйста что значит '0'. например вот здесь add al,'0'

Что означает SS:[Local.1] в дизассемблированном коде OllyDbg
OllyDbg представляет локальные переменные в виде Local.x (см.скрин). Как найти значение переменной в дампе и в стеке?

Что означает символ $ и почему такая конструкция будет работать только в COM программе
mas1 db 1,2,3 len = $ - mas1 Пожалуйста, подскажите, что означает символ $ и почему такая конструкция будет работать только в COM...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru