19.09.2019, 17:14 [+3 UTC]
в нашей команде: 3 831 чел. | участники онлайн: 7 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.77 (31.05.2019)
JS-v.1.34 | CSS-v.3.35

Общие новости:
28.04.2019, 09:13

Форум:
12.09.2019, 08:17

Последний вопрос:
19.09.2019, 14:47
Всего: 150343

Последний ответ:
19.09.2019, 15:43
Всего: 259029

Последняя рассылка:
19.09.2019, 16:45

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
27.08.2010, 14:18 »
Лысенков Антон Анатольевич
Похоже что WebSMS то что надо. [вопрос № 179787, ответ № 262890]
20.06.2010, 20:14 »
Васильев Александр Геннадьевич
Спасибо за ответ. Будем смотреть конфигурации. [вопрос № 179165, ответ № 262195]

РАЗДЕЛ • Assembler

Создание программ на языке Assembler.

[администратор рассылки: Лысков Игорь Витальевич (Старший модератор)]

Лучшие эксперты в этом разделе

Лысков Игорь Витальевич
Статус: Старший модератор
Рейтинг: 104
Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 92
Коцюрбенко Алексей Владимирович
Статус: Модератор
Рейтинг: 68

Перейти к консультации №:
 

Консультация онлайн # 143688
Раздел: • Assembler
Автор вопроса: Alexkharkov
Отправлена: 12.09.2008, 00:00
Поступило ответов: 2

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

Приложение:

Состояние: Консультация закрыта

Ответ # 229068 от 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
Дата отправки: 12.09.2008, 04:50

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Ответ # 229088 от Boriss

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

Приложение:


Консультировал: Boriss
Дата отправки: 12.09.2008, 11:44

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 143688
неизвестный

# 1

= общий = | 12.09.2008, 19:44

мы ещё макросы не проходили. Это всего 2 лабораторная работа. Если можете, допишите пожалуйста мою программу в приложении. Спасибо.

Boriss

# 2

= общий = | 12.09.2008, 23:12

Таки Trulala Вам и написал все. Но только там результат целочисленный, а дал вариант, чтобы показать, как легко, используя макросы, работать с вещественными числами в masm32
В его процедуре Get_Result и есть решение задачи. Или не понятно что в его решении?

неизвестный

# 3

= общий = | 13.09.2008, 11:37

Не понятно как получить дробную часть результата.

Boriss

# 4

= общий = | 13.09.2008, 13:25

Поверьте, проще всего действовать именно так, как я написал - через макросы.
Или искусственно:
Чтобы получить десятые и сотые доли, исходное число умножайте на 100 и работайте как с целыми числами (как в примере Trulala), но перед выводом двух последних цифр, выведите десятичную точку smile

 

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.19685 сек.

© 2001-2019, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.77 от 31.05.2019
Версия JS: 1.34 | Версия CSS: 3.35