Форум программистов, компьютерный форум, киберфорум
Assembler: Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/29: Рейтинг темы: голосов - 29, средняя оценка - 4.93
0 / 0 / 1
Регистрация: 18.03.2015
Сообщений: 78
GAS/AT&T

Ошибка Floating point exception (core dumped)

05.04.2020, 17:33. Показов 6063. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Необходимо пройтись по массиву и четные элементы сдвинуть логически влево на один регистр, а нечетные элементы сдвинуть арифметически вправо. Но при запуске выводится ошибка Floating point exception (core dumped). Не могу найти где я ошибся
Assembler
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
.data
str_d:
.asciz "%d\n"
array:
.long 1, 2, 1, 3, 2, 4, 1, 2, 1, 2
 
.set count_el, (.-array)/4
 
 
.globl main
.type main, @function
.text
 
 
main:
 
movl $0, %ecx
movl $2, %ebx
movl array, %eax
jmp is_last
 
 
 
shift:
div %ebx
cmp $0, %ah
je arithmetic
shl $1, %eax
jge adding
 
arithmetic:
sar $1, %eax
jge adding
 
adding:
inc %ecx
 
is_last:
cmpl $count_el, %ecx
jl shift
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.04.2020, 17:33
Ответы с готовыми решениями:

Floating point exception (core dumped)
Здравствуйте товарищи. Загорелся я на днях создать программу с процедурной генерацией мира. Но поскольку опыта с С++ у меня мало (раньше...

Ошибка в коде: raised exception class EOverflow with message Floating point overflow
Ошибка: raised exception class EOverflow with message Floating point overflow Выскакивает ошибка на строчке: x1:=x0-(Dx/J); procedure...

Проверка, является ли число достаточным: ошибка "Floating point exception"
#include <stdio.h> #include <conio.h> #include <math.h> int main() {int i;int j;int n;int sum;int sum1; bool flag=true; bool...

6
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8655 / 4490 / 1669
Регистрация: 01.02.2015
Сообщений: 13,898
Записей в блоге: 12
05.04.2020, 17:49
Лучший ответ Сообщение было отмечено Brus Wane как решение

Решение

Возможно при делении на 2 в строке 25 - т.к. деление выполняется над регистровой парой (edx:eax) и результат не умещается в eax.

Проверяйте чётность
Assembler
1
2
test $1, %eax
jz even ;переход для чётных
Добавлено через 1 минуту
И завершение программы отсутствует - передача управления операционной системе.

Добавлено через 3 минуты
Скорее всего для возврата из main в программу на C (её формирует gcc при компоновке)
Assembler
1
2
xor %eax, %eax
ret
1
0 / 0 / 1
Регистрация: 18.03.2015
Сообщений: 78
05.04.2020, 18:00  [ТС]
для передачи управления необходимо ret в конце добавить?

Добавлено через 5 минут
Сработало! Огромное спасибо) учту на будущее
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8655 / 4490 / 1669
Регистрация: 01.02.2015
Сообщений: 13,898
Записей в блоге: 12
05.04.2020, 18:02
Да. Вы же компонуете при помощи gcc и получаете полноценную программу с C runtime, которая начинает с метки start, выполняет инициализацию и передаёт управление на метку main и ожидает возвращения.
По крайней мере я так понял при чтении разных источников. Строка вызова при этом gcc -no-pie -o main.out main.o

И ещё у вас какая-то логическая ошибка - вы не просматриваете массив и не перебираете элементы.
0
0 / 0 / 1
Регистрация: 18.03.2015
Сообщений: 78
05.04.2020, 18:05  [ТС]
Хотите сказать я только рассматриваю один элемент и заканчиваю работу?
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8655 / 4490 / 1669
Регистрация: 01.02.2015
Сообщений: 13,898
Записей в блоге: 12
05.04.2020, 18:10
Должно быть что-то подобное
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
lea array, %esi
mov $count_el, %ecx
 
for:
  movl (%esi), %eax
  test $1, %eax
  jz even
    sar $1, %eax
    jmp next
  even:
    shl $1, %eax
next:
  movl %eax, (%esi)
  addl $4, %esi
loop for
Могу ошибиться в синтаксисе, т.к. с GAS не умею работать, но смысл остаётся - косвенная адресация массива через регистр esi.

Добавлено через 1 минуту
Цитата Сообщение от Brus Wane Посмотреть сообщение
я только рассматриваю один элемент и заканчиваю работу?
Да, т.к. не видно, где изменяется адрес элемента.

Ваша программа count_el раз выполняет обращение к первому элементу массива.
0
0 / 0 / 1
Регистрация: 18.03.2015
Сообщений: 78
05.04.2020, 18:13  [ТС]
Да, точно, теперь вижу что упустил этот момент
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.04.2020, 18:13
Помогаю со студенческими работами здесь

Floating Point Exception
Здравствуйте! Подскажите, пожалуйста, почему при решении методом Рунге-Кутта системы диффуров вида y'=Ay+(yT)By, где А и В - матрицы,...

Exception class EConvertError with messege ''' is not a valid floating point
Прога написана без ошибок, все вроде правильно, но запускаться почему-то не хочет.... вот текст проги: ...

Project raised exception class EInvalidOp with message ‘Invalid floating point operation’
procedure TForm1.Button1Click(Sender: TObject); var x, y, z, fx: extended; e: real; begin x := strtofloat(Edit1.Text); y :=...

ProjectPract6P.exe raised exception class econverterror with message ''' is not a valid floating point value
Здравствуйте. При запуске появляется ошибка "project Pract6P.exe raised class exception econverterror with message ''' is not a valid...

Project5dpr.exe raised exception class econverterror with message ''' is not a valid floating point value
Здравствуйте. При запуске появляется ошибка "project Project5dpr.exe raised class exception econverterror with message ''' is not a valid...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru