Консультация № 201465
09.10.2021, 11:43
0.00 руб.
09.10.2021, 12:55
1 7 1
Здравствуйте! Прошу помощи в следующем вопросе
Помогите написать программу на языке ассемблер, для решения уравнения
Прикрепленные файлы:

Обсуждение

давно
Старший Модератор
31795
6196
09.10.2021, 13:29
общий
Адресаты:
Общение только в мини-форуме. Личная почта не для этого предназначена.


Арифметика - цельночисельная или вещественная?
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Старший Модератор
31795
6196
10.10.2021, 16:25
общий
Адресаты:
Хотите получить ответ - общайтесь.
Иначе будет, как на другом ресурсе:
Цитата: тут
термин "базовый" сам придумал или подсказал кто?
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
405384
4
13.10.2021, 16:38
общий
Адресаты:
Целочисленная
давно
Старший Модератор
31795
6196
13.10.2021, 19:27
общий
Кто тут?
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
405384
4
14.10.2021, 10:49
общий
Адресаты:
Ну пожалуйста, помогите с решением, нам это задали а теории вообще нет.
Мы уже полтора года изучаем мобильную разработку и тут неожиданно появился assembler...
давно
Старший Модератор
31795
6196
14.10.2021, 19:33
общий
это ответ
Доброе время суток!

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


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


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

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


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

Сам код:
[code lang=asm]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[/code]

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


Удачи!
5
Большое спасибо, это мне действительно очень поможет
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Старший Модератор
31795
6196
14.10.2021, 19:38
общий
Адресаты:
Цитата: Anita
Ну пожалуйста, помогите с решением

Хотите получать ответы = не притворяйтесь "Страусом".
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Форма ответа