Консультация № 189126
08.04.2016, 13:10
0.00 руб.
1 3 1
Здравствуйте! У меня возникли сложности с таким вопросом:
Помогите написать программу на языке ассемблер, для решения уравнения

Прикрепленные файлы:
337f9b23f8c76a195edbb258603a3b8f257801a4.PNG

Обсуждение

давно
Старший Модератор
31795
6196
08.04.2016, 14:36
общий
Адресаты:
Решать целочисельной математикой или вещественной?
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
400168
4
11.04.2016, 10:08
общий
Цитата: Зенченко Константин Николаевич
Решать целочисельной математикой или вещественной?
без разницы
давно
Старший Модератор
31795
6196
11.04.2016, 12:37
общий
это ответ
Здравствуйте, vitya-titya!

Смотрите приложение:
[code lang=asm h=200]model small
.data
a dw 123
b dw 4
c dw 6
d dw 3
e dw 5
f dw 36
g dw 34
dbRes db 10,13,'Result:$'
.stack 100h
.code
start: mov ax,@data
mov ds,ax;настраиваем сегмент
;считаем числитель дроби числителя
mov ax,a;
sub ax,b;
xor dx,dx
mul b;(123-4)*4
push ax
mov ax,c;
sub ax,d;
xor dx,dx;
mul e;(6-3)*5
pop bx
add bx,ax;
;считаем знаменатель дроби числителя
mov ax,b
xor dx,dx
mul e;5*4
xchg ax,bx
xor dx,dx
div bx;((123-4)*4+(6-3)*5)/(5*4)
mov bx,ax
;считаем знаменатель
mov ax,b;
xor dx,dx;
mul d;4*3
add ax,f;36+4*3
xchg bx,ax;
div bx;((123-4)*4+(6-3)*5)/(5*4))/(36+4*3)
sub ax,g;((123-4)*4+(6-3)*5)/(5*4))/(36+4*3)-34
;
xor di,di
test ax,8000h
jz @@00
mov di,1
not ax
inc ax
@@00: mov si,10;система счисления
xor cx,cx;счетчик в стеке
@@01: xor dx,dx
div si;получаем младшую цифру
push dx;запоминаем в стеке
inc cx;считаем
or ax,ax;повторяем пока не ноль в ах
jnz @@01
mov ah,9
lea dx,dbRes
int 21h;выводим сообщение
or di,di
jz @@02
mov al,'-'
int 29h
@@02: pop ax;извлекаем цифру
add al,'0';переводим в символ
int 29h;выводим на экран
loop @@02
xor ax,ax;ожидаем любую клавишу
int 16h
mov ah,4Ch;выход
int 21h
end start[/code]
Удачи!
5
Большое спасибо, очень сильно помогли!
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Форма ответа