Форум программистов, компьютерный форум, киберфорум
Assembler: математика, вычисления
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 1
Регистрация: 22.01.2020
Сообщений: 38

Ругается на вычисление корня

26.01.2020, 23:37. Показов 1200. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишет lllegal immediate на 23 и 25 строки. Что не так, подскажите, пожалуйста.

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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
.model small
.stack 20h ; 6 bytes needed
.data
.code
 
      entrypoint: 
      mov ax,@data 
      mov ds,ax 
      mov cx,13
 
mov ax, 80
mov bx, 5
div bx
mov bx, ax
 
mov cx,64
;fwait
;fild cx
;fsqrt
;fist cx
 
fwait
fild word ptr cx
fsqrt
fist word ptr cx
 
mov ax,3
mul cx
add bx,ax
mov ax,6
mov cx,7
mul cx
mov dx,40
sub ax,dx
mov dx,ax
mov ax,bx
div dx
mov bx,1
add bx,ax
 
mov ax,50
mov cx,10
div cx
mov cx,11
mov dx,12
add cx,dx
sub ax,cx
add ax,bx
  
      
      xor si, si
      xor dx, dx
      mov cx, 10
 
      end entrypoint
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.01.2020, 23:37
Ответы с готовыми решениями:

вычисление квадратного корня из 16разрядного числа
Доброго времени суток! нужна помощь в создании программы на TASM. Цель: вычислить корень числа введенного с клавиатуры. Ограничение по...

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

Вычисление корня
вот сама задача // 423.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include...

17
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8655 / 4490 / 1669
Регистрация: 01.02.2015
Сообщений: 13,898
Записей в блоге: 12
26.01.2020, 23:51
FPU сейчас является частью CPU.
Но когда-то это была отдельная микросхема на материнской плате. Эту отдельную м/с можно было использовать и с другим процессором. Поэтому обращение к регистру CPU некорректно.

Помещайте cx во временную переменную и из неё в FPU.
0
0 / 0 / 1
Регистрация: 22.01.2020
Сообщений: 38
27.01.2020, 00:04  [ТС]
ФедосеевПавел, спасибо большое за ответ. Вы могли бы это написать кодом, пожалуйста? Я был бы очень благодарен. Заранее спасибо.
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8655 / 4490 / 1669
Регистрация: 01.02.2015
Сообщений: 13,898
Записей в блоге: 12
27.01.2020, 00:12
Assembler
1
2
mov [temp], cx
fild word ptr [temp]
1
0 / 0 / 1
Регистрация: 22.01.2020
Сообщений: 38
27.01.2020, 11:26  [ТС]
ФедосеевПавел, Спасибо. Все сделал, ошибок нет, но программа не завершается. Что не так сейчас?
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
.model small
.stack 20h ; 6 bytes needed
.data
.code
 
      entrypoint: 
      mov ax,@data 
      mov ds,ax 
      mov cx,13
 
LOCAL   temp:WORD
 
mov ax, 80
mov bx, 5
div bx
mov bx, ax
 
mov cx,64
 
mov [temp], cx
fild word ptr [temp]
fsqrt
fist word ptr [temp]
mov cx, [temp]
 
mov ax,3
mul cx
add bx,ax
mov ax,6
mov cx,7
mul cx
mov dx,40
sub ax,dx
mov dx,ax
mov ax,bx
div dx
mov bx,1
add bx,ax
 
mov ax,50
mov cx,10
div cx
mov cx,11
mov dx,12
add cx,dx
sub ax,cx
add ax,bx
  
      
      xor si, si
      xor dx, dx
      mov cx, 10
 
end entrypoint
0
Прощай, Мир!
 Аватар для proc3nt
1673 / 831 / 253
Регистрация: 26.05.2012
Сообщений: 3,056
27.01.2020, 16:53
нужна функция завершения программы..
Assembler
1
2
3
4
mov ah,4Ch
mov al,0
int 21h
end entrypoint
0
0 / 0 / 1
Регистрация: 22.01.2020
Сообщений: 38
27.01.2020, 19:01  [ТС]
proc3nt, хм, не помогло..
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
.model small
.stack 20h ; 6 bytes needed
.data
.code
 
      entrypoint: 
      mov ax,@data 
      mov ds,ax 
      mov cx,13
 
LOCAL   temp:WORD
 
mov ax, 80
mov bx, 5
div bx
mov bx, ax
 
mov cx,64
 
mov temp, cx
fild word ptr temp
fsqrt
fist word ptr temp
mov cx, temp
 
mov ax,3
mul cx
add bx,ax
mov ax,6
mov cx,7
mul cx
mov dx,40
sub ax,dx
mov dx,ax
mov ax,bx
div dx
mov bx,1
add bx,ax
 
mov ax,50
mov cx,10
div cx
mov cx,11
mov dx,12
add cx,dx
sub ax,cx
add ax,bx
  
      
      xor si, si
      xor dx, dx
      mov cx, 10
 
mov ah,4Ch
mov al,0
int 21h
end entrypoint
0
Прощай, Мир!
 Аватар для proc3nt
1673 / 831 / 253
Регистрация: 26.05.2012
Сообщений: 3,056
27.01.2020, 19:08
Pavel-Sobolev, у тебя корявый код, скорее всего где-то деление на ноль присутствует..
0
0 / 0 / 1
Регистрация: 22.01.2020
Сообщений: 38
27.01.2020, 19:13  [ТС]
proc3nt, я, вроде, несколько раз проверил код. Вроде, все правильно.
Изначальный пример: (a+(sqrt(b)*c+d/e)/(f*g-i))+(j/k-(l+m))
И вот с числами: (1+(sqrt(64)*3+80/5)/(6*7-40))+(50/10-(11+12))=3
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8655 / 4490 / 1669
Регистрация: 01.02.2015
Сообщений: 13,898
Записей в блоге: 12
27.01.2020, 20:50
.stack 200h - на стеке паразитируют и аппаратные прерывания
Переменную temp определите в сегменте данных
0
0 / 0 / 1
Регистрация: 22.01.2020
Сообщений: 38
27.01.2020, 21:07  [ТС]
ФедосеевПавел, Так (ниже код)? (не работает..)
Мне завтра нужно это сдать, но почему-то код не работает. Вы можете немного конкретнее сказать как это все сделать, я был бы очень признательным.

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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
.model small
.stack 20h ; 6 bytes needed
.data
LOCAL   temp:WORD
.code
 
      entrypoint: 
      mov ax,@data 
      mov ds,ax 
      mov cx,13
 
mov ax, 80
mov bx, 5
div bx
mov bx, ax
 
mov cx,64
 
mov temp, cx
fild word ptr temp
fsqrt
fist word ptr temp
mov cx, temp
 
mov ax,3
mul cx
add bx,ax
mov ax,6
mov cx,7
mul cx
mov dx,40
sub ax,dx
mov dx,ax
mov ax,bx
div dx
mov bx,1
add bx,ax
 
mov ax,50
mov cx,10
div cx
mov cx,11
mov dx,12
add cx,dx
sub ax,cx
add ax,bx
  
      
      xor si, si
      xor dx, dx
      mov cx, 10
 
mov ah,4Ch
mov al,0
int 21h
end entrypoint
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8655 / 4490 / 1669
Регистрация: 01.02.2015
Сообщений: 13,898
Записей в блоге: 12
27.01.2020, 21:19
Assembler
1
2
.data
temp dw 0
0
0 / 0 / 1
Регистрация: 22.01.2020
Сообщений: 38
27.01.2020, 21:22  [ТС]
ФедосеевПавел, безуспешно, не завершается. Что еще может быть не так?
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8655 / 4490 / 1669
Регистрация: 01.02.2015
Сообщений: 13,898
Записей в блоге: 12
27.01.2020, 21:28
Попробуйте выполнить отладчиком td по шагам.
0
0 / 0 / 1
Регистрация: 22.01.2020
Сообщений: 38
27.01.2020, 21:44  [ТС]
ФедосеевПавел, Посмотрел, не особо понял, что не так. После деления код обращается к стеку, а дальше начинается ересь, в итоге снова возвращается к коду проходить прерывание и идет дальше по однотипным командам.
Вы можете посмотреть код? Я правда не понимаю что не так..
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8655 / 4490 / 1669
Регистрация: 01.02.2015
Сообщений: 13,898
Записей в блоге: 12
27.01.2020, 21:45
в строке 35 вы делите dx:ax на dx. Результат не умещается в ax и вызывается прерывание деления на 0.
Неудачно выбран делитель.
1
0 / 0 / 1
Регистрация: 22.01.2020
Сообщений: 38
27.01.2020, 21:56  [ТС]
ФедосеевПавел, Я уже было обрадовался, но нет.. не работает :С

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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
.model small
.data
temp dw 0
.code
 
      entrypoint: 
      mov ax,@data 
      mov ds,ax 
      mov cx,13
 
mov ax, 80
mov bx, 5
div bx
mov bx, ax
 
mov cx,64
 
mov temp, cx
fild word ptr temp
fsqrt
fist word ptr temp
mov cx, temp
 
mov ax,3
mul cx
add bx,ax
mov ax,6
mov cx,7
mul cx
mov dx,40
sub ax,dx
mov cx,ax
mov ax,bx
div cx
mov bx,1
add bx,ax
 
mov ax,50
mov cx,10
div cx
mov cx,11
mov dx,12
add cx,dx
sub ax,cx
add ax,bx
  
      
      xor si, si
      xor dx, dx
      mov cx, 10
 
mov ah,4Ch
mov al,0
int 21h
end entrypoint
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8655 / 4490 / 1669
Регистрация: 01.02.2015
Сообщений: 13,898
Записей в блоге: 12
27.01.2020, 23:04
Пробуйте выполнять в отладчике.
в строках 11-13 делится dx:ax на bx, но значение dx не определено.

Где-то ещё такое-же.

Добавлено через 9 минут
Проверяйте везде деление - делимое это не ax, а регистровая пара dx:ax и если это не предусмотреть, то частное не уместится в ax и возникнет ошибка.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.01.2020, 23:04
Помогаю со студенческими работами здесь

Вычисление корня
Уважаемые математики как вычислить квадратный корень числа не прибигая к функции корня, то есть постыми математическими операциями +,-,/,*

Вычисление корня
Написать программу: y= корень 4 степени (x+10) y= x в степени1/3 +50x y= sin2x + cos x + корень (x+3)

Вычисление корня
Как мне вычислить корень, допустим пятой степени x-а?

Вычисление корня
Блин, такая вот ситуевина... Надо создать функцию, вычисляющую Степень... А с циклом не дружу... :wall: подскажите как быть, ведь не буду...

Вычисление квадратного корня
Нужен алгоритм быстрого вычисления квадратного корня. Прошу поделиться примерами, ссылками. Сам ни разу не математик. Для AVR. Си....


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru