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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.09.2018, 17:07   #1
Дмитрийййй
Пользователь
 
Регистрация: 07.09.2018
Сообщений: 26
По умолчанию ассемблер

правильно ли написана прога? Вычислить арифметическое выражение a2 /5+b∗c−a/b . Переменные
a , b, c в начале выполнения программы должны быть расположены в
регистрах EAX, EDX и EDI соответственно. Численные значения можно
взять произвольными.
format PE GUI
entry start ; указание с какой метки начинать выполнение программы
start: ; точка входа в программу

; начальные значения переменных
mov eax,18 ; a
mov edx,-3 ; b
mov edi,5 ; c

mov ebx,eax
imul ebx,eax ; edx = a^2
imul edi,edx ; edi = b*c
mov ecx,edx ; сохранение b
cdq
idiv ecx ; eax = a/b
sub edi,eax ; edi = b*c-a/b
mov eax,ebx
cdq
mov ebx,5
idiv ebx ; eax = a^2/5
add eax,edi ; получение ответа в eax

mov eax, 1 ; код программы
ret ; заве
Дмитрийййй вне форума Ответить с цитированием
Старый 07.09.2018, 17:13   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Компилируется? Выполняется? Ответ совпадает с проверочными данными? - Тогда все правильно.
p51x вне форума Ответить с цитированием
Старый 07.09.2018, 17:20   #3
Дмитрийййй
Пользователь
 
Регистрация: 07.09.2018
Сообщений: 26
По умолчанию

а вот я не знаю, просто для меня это новый язык, я не знаю где смотреть конечный ответ
Дмитрийййй вне форума Ответить с цитированием
Старый 07.09.2018, 17:22   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
Сообщение от Дмитрийййй Посмотреть сообщение
add eax,edi ; получение ответа в eax
Вы просто код скопировали или сами хотя бы читали?
p51x вне форума Ответить с цитированием
Старый 07.09.2018, 17:39   #5
Дмитрийййй
Пользователь
 
Регистрация: 07.09.2018
Сообщений: 26
По умолчанию

да читал, просто недопер, по методичке же делал,
Дмитрийййй вне форума Ответить с цитированием
Старый 07.09.2018, 17:55   #6
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Дмитрийййй, загрузи свою программу в отладчик OllyDbg, он тебе покажет состояние регистров на каждом шаге
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 07.09.2018, 18:03   #7
Дмитрийййй
Пользователь
 
Регистрация: 07.09.2018
Сообщений: 26
По умолчанию

так я ее в отладчике и проверял, еще бы понимать что там написано
Дмитрийййй вне форума Ответить с цитированием
Старый 07.09.2018, 19:46   #8
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Цитата:
Сообщение от Дмитрийййй Посмотреть сообщение
еще бы понимать что там написано
так ты сам-же указываешь MOV (move, переслать в регистр),
а в отладчике смотришь на соответствующий регистр.
вот твоя программа.. каждый шаг по F8, я прошёл только первые 4 инструкции:
Изображения
Тип файла: png olly.png (10.5 Кб, 41 просмотров)
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ассемблер Deusic Помощь студентам 0 05.11.2012 08:11
Ассемблер Дэнис Помощь студентам 3 24.02.2012 20:08
Ассемблер в С EugenK Общие вопросы C/C++ 12 05.08.2011 17:35
Ассемблер... UAC Фриланс 7 30.12.2010 18:31
Ассемблер) oblachko Помощь студентам 6 10.12.2009 08:15