Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Ассемблер? Это просто! Учимся программировать


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler (Ассемблер)

Выпуск № 1063
от 17.09.2008, 19:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 303, Экспертов: 18
В номере:Вопросов: 2, Ответов: 4

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 143688: Доброго времени суток,уважаемые эксперты! Только приступил к изучению Ассемблера (MASM32) и нуждаюсь в Вашей помощи. Найти значение выражения: (a – d)/b + d при a=12; b=17; d=2110 Часть программы в приложении. Благодарен Вам за помощь....
Вопрос № 143744: Здравстуйте, уважаемые эксперты! Сегодня меня поздравили с днем программиста. А я не в состоянии написать на Ассемблере программу: сложить два числа и результат вывести на экран. Передо мной лежат две книги по Ассемблеру (Калашникова и Галисеев...

Вопрос № 143.688
Доброго времени суток,уважаемые эксперты! Только приступил к изучению Ассемблера (MASM32) и нуждаюсь в Вашей помощи.
Найти значение выражения: (a – d)/b + d при a=12; b=17; d=2110
Часть программы в приложении.
Благодарен Вам за помощь.

Приложение:

Отправлен: 12.09.2008, 00:00
Вопрос задал: Alexkharkov (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 4)

Отвечает: Trulala
;Найти значение выражения: (a – d)/b + d при a=12; b=17; d=2110
;MASM32

.386
.model flat, stdcall

.data
a DD 12
b DD 17
d DD 2110

res DD ?

.code

;ВОЗВРАТ: eax = (@@a – @@d)/@@b + @@d
Get_Result PROC USES edx @@a:DWORD, @@b:DWORD, @@d:DWORD

mov eax,@@a
sub eax,@@d ;(@@a – @@d)

cdq ;преобразование двойного слова в учетверенное слово, копирует знаковый бит EAX на все биты EDX
idiv @@b ;/@@b

add eax,@@d ;+ @@d

ret
Get_Result ENDP

start:

push d
push b
push a
call Get_Result ;или invoke Get_Result, a,b,d

mov res,eax ;res:= (12 – 2110)/17 + 2110 = 1987

nop

;...
;выход из программы
;...



END start
Ответ отправил: Trulala (статус: 3-ий класс)
Ответ отправлен: 12.09.2008, 04:50

Отвечает: Boriss
Здравствуйте, Alexkharkov!
Вот еще вариант более соответствующий masm32 - используются полезные макросы (отсюда и название masm )
Снабдил кое-какими пояснениями, если не понятно что будет - пишите

Приложение:

---------
Вывод - то место в тексте, где вы устали думать

Ответ отправил: Boriss (статус: Профессор)
Россия, Саранск
Организация: Мордовский госуниверситет, Саранск, Факультет Электронной Техники
WWW: Программирование на Паскале
----
Ответ отправлен: 12.09.2008, 11:44


Вопрос № 143.744
Здравстуйте, уважаемые эксперты!
Сегодня меня поздравили с днем программиста. А я не в состоянии написать на Ассемблере программу: сложить два числа и результат вывести на экран.
Передо мной лежат две книги по Ассемблеру (Калашникова и Галисеева). Там много чего есть, в том числе и примеры на арифметические действия, только вывод на экран результата не дается. А я без этого не могу двинутся дальше. У меня на компьютере MASM611 с сайта Калашникова.
С уважением, Анатолий.
Отправлен: 12.09.2008, 16:11
Вопрос задал: Швецов Анатолий Прокофьевич (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Зенченко Константин Николаевич
Здравствуйте, Швецов Анатолий Прокофьевич!

В приложении программа, которая вводит 3-и числа и считает функцию X*Y+Z, после этого выводится результат.
Думаю она будет Вам полезна. Число выводится из регистра.
Удачи!

Приложение:

---------
Итерация от человека, рекурсия — от Бога (Питер Дойч)

Ответ отправил: Зенченко Константин Николаевич (статус: Профессор)
Украина, Киев
Тел.: +380979536619
Адрес: Украина г.Киев
----
Ответ отправлен: 12.09.2008, 17:19
Оценка за ответ: 5
Комментарий оценки:
Константин Николаевич, рад знакомству. Признаюсь, что программа для меня пока сложновата для разбора. Мне на данном этапе было бы достаточно программы для функции y=a+b. Я воспользуюсь Вашим предложением и вышлю код программы мне вполне понятной, но без вывода результата. Спасибо за участие в моем образовании!

Отвечает: Trulala
Здравствуйте, Швецов Анатолий Прокофьевич!

Пример подпрограммы вывода на экран целого числа.

Приложение:

Ответ отправил: Trulala (статус: 3-ий класс)
Ответ отправлен: 13.09.2008, 23:03
Оценка за ответ: 5


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале

∙ Версия системы: 5.3 RC 2 от 09.09.2008

Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное