Родились сегодня:
ivan_papus


Лидеры

ID: 259041

Алексеев Владимир Николаевич

Мастер-Эксперт

1166

Россия, пос. Теплоозёрск, ЕАО


ID: 405587

Magic2hand

5-й класс

700


ID: 226425

Konstantin Shvetski

Модератор

317

Россия, Северодвинск


ID: 137394

Megaloman

Мастер-Эксперт

180

Беларусь, Гомель


ID: 405604

Ника

Посетитель

138


ID: 400669

epimkin

Профессионал

118


ID: 405537

hipunova1512

Посетитель

88


8.10.4

05.12.2021

JS: 2.10.3
CSS: 4.6.0
jQuery: 3.6.0
DataForLocalStorage: 2021-12-08 21:46:03-standard


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

Администратор раздела: Зенченко Константин Николаевич (Старший модератор)

Консультация онлайн # 201465

Раздел:  Assembler
Автор вопроса: Anita (Посетитель)
Дата: 09.10.2021, 11:43 Консультация закрыта
Поступило ответов: 1

Здравствуйте! Прошу помощи в следующем вопросе
Помогите написать программу на языке ассемблер, для решения уравнения

Последнее редактирование 09.10.2021, 12:55 Зенченко Константин Николаевич (Старший модератор)

-----
Прикрепленные файлы:

Доброе время суток!

Для цельночисельной арифметики нужно преобразовать формулу к одному делению:


Определяем общие фрагменты:


Считается в уме 17 и 8, но это нужно в коде.

Формула превращается в:


Нужно определится с используемыми регистрами, для хранения промежуточных данных(это больше к оптимизации кода, т.к. длина кода существенно уменьшается), а также последовальности операций(к примеру *2 = равносильно сдвигу влево на один бит) и учитывая, что mul и div меняют регистры AX : DX, т.е. их использовать для хранения временных данных нельзя:
Сразу говорю, сейчас регистры использованы - навскидку.

Сам код:
Код [Assembler]
model	tiny
.code
org     100h
.186
begin:	mov     di,47
        xor     dx,dx
        mov     ax,5
        shl     ax,1
        mov     bx,3
        mul     bx
        sub     di,ax;А=47-5*2*3
        mov     ax,5
        sub     ax,3
        shl     ax,2
        mov     si,ax;В=4*(5-3)
        mov     ax,24
        mul     di
        mov     cx,ax;24*А
        mov     ax,14
        mov     bx,3
        mul     bx
        mov     bx,5
        mul     bx
        mul     si;14*3*5*a
        sub     ax,cx;14*3*5*В-24*А
        mov     cx,ax
        mov     ax,si
        mul     di;А*В
        xor     dx,dx;
        mov	di,ax
	mov	ax,cx
        div     di
        push    dx
        mov     bx,10
        xor     cx,cx
@@01:   xor     dx,dx
        div     bx
        push    dx
        inc     cx
        or      ax,ax
        jnz     @@01
@@02:   pop     ax
        or      al,'0'
        int     29h
        loop    @@02
        pop     ax
@@03:   or      ax,ax
        jz      @@05
        push    ax
        mov     al,'.'
        int     29h
        mov     cx,20
@@04:	pop     ax
	xor     dx,dx
        mul     bx
        div     di
        push    dx
        or      al,'0'
        int     29h
        loop    @@04
	pop	ax
@@05:   ret
end	begin


и его работа + контроль на ЯВУ


Удачи!

Зенченко Константин Николаевич

Старший модератор
14.10.2021, 19:33
5


Большое спасибо, это мне действительно очень поможет

Мини-форум консультации # 201465

q_id

Зенченко Константин Николаевич

Старший модератор

ID: 31795

1

= общий =    09.10.2021, 13:29
Anita:

Общение только в мини-форуме. Личная почта не для этого предназначена.
smile

Арифметика - цельночисельная или вещественная?

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

q_id

Зенченко Константин Николаевич

Старший модератор

ID: 31795

2

= общий =    10.10.2021, 16:25
Anita:

Хотите получить ответ - общайтесь.
Иначе будет, как на другом ресурсе:

термин "базовый" сам придумал или подсказал кто?

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

q_id

Anita

Посетитель

ID: 405384

3

= общий =    13.10.2021, 16:38
Зенченко Константин Николаевич:

Целочисленная

q_id

Зенченко Константин Николаевич

Старший модератор

ID: 31795

4

= общий =    13.10.2021, 19:27

Кто тут?

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

q_id

Anita

Посетитель

ID: 405384

5

= общий =    14.10.2021, 10:49
Зенченко Константин Николаевич:

Ну пожалуйста, помогите с решением, нам это задали а теории вообще нет.
Мы уже полтора года изучаем мобильную разработку и тут неожиданно появился assembler...

q_id

Зенченко Константин Николаевич

Старший модератор

ID: 31795

6

= общий =    14.10.2021, 19:38
Anita:

Ну пожалуйста, помогите с решением


Хотите получать ответы = не притворяйтесь "Страусом".
smile

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

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

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

Зенченко Константин Николаевич

Старший модератор

Рейтинг: 227

Коцюрбенко Алексей Владимирович

Старший модератор

Рейтинг: 200

Лысков Игорь Витальевич

Мастер-Эксперт

Рейтинг: 42

Nastya

1-й класс

Рейтинг: 2

Evgen aka Chuma

6-й класс

Рейтинг: 0

cain52

3-й класс

Рейтинг: 0