Форум программистов, компьютерный форум, киберфорум
Assembler: DOS/Real Mode/16-bits
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 13.06.2012
Сообщений: 6
1

Организовать прерывание деления на ноль

19.06.2012, 10:29. Показов 2793. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно организовать прерывание деления на ноль на ассемблере. никак не получается.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.06.2012, 10:29
Ответы с готовыми решениями:

Отследить прерывание при делении на ноль
как реализовать деление чисел без сравнения делителя с нулем, а с отслеживанием прерывания при...

Организовать аппаратное прерывание DOS
Вопрос заключается в следующем: как организовать аппаратное прерывание? Конкретно нужно вот что: на...

Ошибка деления на ноль
Паскаль подключает модуль ассемблера где асм должен посчитать пример (2*с+d-52)/(a/4+1), для...

Арифметические операции и ошибка деления на ноль
програма вычисляет выражение Х = (((a-b)*(c-d))/k)+10 текст програми в паскале Program eee;...

8
650 / 337 / 37
Регистрация: 04.04.2012
Сообщений: 886
19.06.2012, 11:00 2
Покажите то, что уже есть.
1
0 / 0 / 0
Регистрация: 13.06.2012
Сообщений: 6
19.06.2012, 11:27  [ТС] 3
прерывание вот case a of
1:ShowMessage('деление на ноль');
2:ShowMessage('деление на ноль');
3:ShowMessage(FloatToStr(v));
end;, нужна программа

Добавлено через 18 минут
AFP, помогите...
0
650 / 337 / 37
Регистрация: 04.04.2012
Сообщений: 886
19.06.2012, 11:30 4
Вы язык программирования не перепутали? Здесь ассемблер.
1
0 / 0 / 0
Регистрация: 13.06.2012
Сообщений: 6
19.06.2012, 11:36  [ТС] 5
не перепутала. это прерывание на делфи! а сам код должен быть на ассемблере.

Добавлено через 3 минуты
AFP,
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
function myf(a,b,c,d,g,x,e,q:double):extended;stdcall;
asm
 
  //fcos
  fld c
  fdiv q
  fst c
  fadd a
  fld d
  fmul x
  fsub a
 
  fld a
  fmul b
  fsub e
  fdivp
end;
procedure TForm1.Button1Click(Sender: TObject);
   var a,b,c,d,g,x,e,q:double; z:extended;
begin
g:=4;
x:=12;
e:=1;
q:=4;
a:=StrToFloat(Edit1.Text);
b:=StrToFloat(Edit2.Text);
c:=StrToFloat(Edit3.Text);
d:=StrToFloat(Edit4.Text);
z:=myf(a,b,c,d,g,x,e,q);
edit1.Text:=floattostr(z);
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var v,r:integer;
begin
   case r of
1:ShowMessage('деление на ноль');
2:ShowMessage('переполнение');
3:ShowMessage(FloatToStr(v));
end;
0
650 / 337 / 37
Регистрация: 04.04.2012
Сообщений: 886
19.06.2012, 11:45 6
Не умею я.
0
Ушел с форума
Автор FAQ
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
19.06.2012, 11:56 7
yuliaspo, может быть проверять делитель на равенство нулю до команд fdiv q и fdivp и выдавать соответствующее предупреждение? Потому что при делении на ноль программа сама "схлопнется" и уже система выдаст сообщение "Деление на ноль, ваша программа будет закрыта"
1
0 / 0 / 0
Регистрация: 13.06.2012
Сообщений: 6
19.06.2012, 12:53  [ТС] 8
не можете написать код, как это будет выглядеть?

Добавлено через 44 минуты
Mikl___, ну помогите..
0
1779 / 757 / 153
Регистрация: 03.06.2009
Сообщений: 5,927
19.06.2012, 14:00 9
самое примитивное:
Assembler
1
2
3
4
asm
xor eax,eax
div eax
end;
вызовет системный обработчик деления на 0
Если нужно в делфи перехватывать такое деление, копайте в сторону SEH (Structured Exception Handling)
0
19.06.2012, 14:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.06.2012, 14:00
Помогаю со студенческими работами здесь

Ошибка деления на ноль при запуске программы
program ase; uses crt; var a,b,c,d,x,y: integer; procedure vivod; begin writeln...

Ошибка деления на ноль
HElP!!!!!! не работает прога, по логике все правильно но не зработает, выдает ошибку. В чем...

Проверка деления на ноль в сопроцессоре
Добрый день, коллеги! Как проверить деление на ноль в сопроцессоре и вывести сообщение об ошибке?...

Сделать, чтобы при попытке деления на ноль, выводилось сообщение: «Деление на ноль»
Создайте консольное приложение. В нем реализуйте нахождение значения выражения 1/(x+n), где n –...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru