Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2009, 13:33   #1
Aneli
Пользователь
 
Регистрация: 23.11.2009
Сообщений: 16
По умолчанию пробл с использованием сопроцессора

Подскажите, пожалуйста, в чем ошибка. суть: переменные вводятся с клавиатуры, надо их сложить с помощью сопроцессора. но я не понимаю, как это сделать, ведь сопроцесор работает с вещественными данными, а наши в-ASCII формате. пробовала переводить с ASCII в 10-чный, а потом заталкивать переменные в сопроцессор и работать с ними уже с помощью Fild , fadd, но слаживает только последний разряд числа( числа 3-х розрядные).... заранее благодарна за помощь.
Aneli вне форума Ответить с цитированием
Старый 23.11.2009, 13:51   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
пробовала переводить с ASCII в 10-чный, а потом заталкивать переменные в сопроцессор и работать с ними
Для начала попробуй работать с константами, а уж потом как отладишь работу с сопроцессором вводи чисел прикручивай.
Я лично так всегда делал в контрольных.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.11.2009, 14:10   #3
Aneli
Пользователь
 
Регистрация: 23.11.2009
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Для начала попробуй работать с константами, а уж потом как отладишь работу с сопроцессором вводи чисел прикручивай.
Я лично так всегда делал в контрольных.
с константами тоже использовать Fild или FBild, или Fld?
Aneli вне форума Ответить с цитированием
Старый 23.11.2009, 14:39   #4
airyashov
Форумчанин
 
Регистрация: 02.04.2008
Сообщений: 358
По умолчанию

убедитесь в том что правильно переводите в 10 вид
неплохо пишу на ассемблере для 80х86
icq: 3(один)7748666
mail: airyashov(а)inbox.ru
airyashov вне форума Ответить с цитированием
Старый 23.11.2009, 14:56   #5
Aneli
Пользователь
 
Регистрация: 23.11.2009
Сообщений: 16
По умолчанию

убеждалась- не знаю правда ли правильным способом. переводила введенные цифры с ASCII в 10, а потом заносила это в другую переменную, делала преобразование обратно, и делала вывод этого числа наэкран- то совпадал результат.
Aneli вне форума Ответить с цитированием
Старый 23.11.2009, 15:13   #6
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Нет ну гадать можно долго.
Может просто код покажете ? (Незабудте выделить его тегом code)
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4

Последний раз редактировалось Goodwin98; 23.11.2009 в 15:17.
Goodwin98 вне форума Ответить с цитированием
Старый 23.11.2009, 15:25   #7
Aneli
Пользователь
 
Регистрация: 23.11.2009
Сообщений: 16
По умолчанию

покажу, завтра))))) или вечером- с работы пишу, все мои " старания" -дома.
Aneli вне форума Ответить с цитированием
Старый 23.11.2009, 18:03   #8
Aneli
Пользователь
 
Регистрация: 23.11.2009
Сообщений: 16
По умолчанию

а может кто то напишет как правильно это должно быть, просто последовательность действий... не готовую программу
Aneli вне форума Ответить с цитированием
Старый 23.11.2009, 21:24   #9
airyashov
Форумчанин
 
Регистрация: 02.04.2008
Сообщений: 358
По умолчанию

очень коротко
Код:
.data 
...
 a dd 1
 b dd 2
 c dd 0
...

.code
...
 fild a
 fiadd b
 fistp c ; результат
..
неплохо пишу на ассемблере для 80х86
icq: 3(один)7748666
mail: airyashov(а)inbox.ru

Последний раз редактировалось airyashov; 24.11.2009 в 14:47.
airyashov вне форума Ответить с цитированием
Старый 24.11.2009, 09:33   #10
Aneli
Пользователь
 
Регистрация: 23.11.2009
Сообщений: 16
По умолчанию Где ошибка?

;ПрограмА ПЕРЕВОДУ В ДВІЙКОВУ ФОРМУ 2 числа

.8087
.MODEL small
.STACK 100h
.DATA

CR_LF db 13,10,'$'
AC db 15 dup("$")
BC db 15 dup("$")
K db 15 dup("$")
N db 15 dup("$")
Result dw ?
Result1 dw 4(' '), '$'
BINK dw 0
g db 4 dup (' '), '$'
BINN dw 0
q db 4 dup (' '), '$'

.CODE
Start:
mov ax, @Data
mov ds, ax


;виведення одного символа
mov ah, 0ah ;функція введеня рядка
mov dx, offset AC
int 21h

mov ah, 09h ;функція виведення на екран
mov dx, offset CR_LF
int 21h

mov ah, 0ah ;функція введеня рядка
mov dx, offset BC
int 21h

mov ah, 09h ;функція виведення на екран
mov dx, offset CR_LF
int 21h




lea bx, K
lea di, AC+2
mov cx, 03 ;

a08:
mov ax, 0000h
mov al, [di]
mov [bx], al
inc di
inc bx
loop a08


lea bx, N
lea di, BC+2
mov cx, 03

a09:
mov ax, 0000h
mov al, [di]
mov [bx], al
inc di
inc bx
loop a09
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;
mov cx, AST
lea si, K+2

a67:
mov al, [si]
and al, 0FH

mul multfact
add binK, ax

mov ax, multfact
imul ax, 10
mov multfact, ax
dec si
loop a67

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;
mov ah, 00h
mov cx, AST
lea si, N+2

j67:
mov al, [si]
and al, 0FH

mul multfact1
add binN, ax

mov ax, multfact1
imul ax, 10
mov multfact1, ax
dec si
loop j67



finit
fild BINK
fild BINN
fadd
fistp Result


mov cx, 0010
lea si, g+2
mov ax, binK

a87:
cmp ax, cx
jb a89
xor dx, dx
div cx
or dl, 30h
mov [si], dl
dec si
jmp a87

a89:
or al, 30h
mov [si], al
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

mov cx, 0010
lea si, q+2
mov ax, binN
j87:
cmp ax, cx
jb j89
xor dx, dx
div cx
or dl, 30h
mov [si], dl
dec si
jmp j87

j89:
or al, 30h
mov [si], al
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;


mov cx, 00010
lea si, Result1+3
mov ax, Result
Q87:
cmp ax, cx
jb Q89
xor dx, dx
div cx
or dl, 30h
mov [si], dl
dec si
jmp Q87

Q89:
or al, 30h
mov [si], al






mov ah, 09h ;функція виведення на екран
mov dx, offset CR_LF
int 21h
mov ah, 09h
mov dx, offset Result1
int 21h






;завершеня программи
mov ax, 4c00h
int 21h
END start
Aneli вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с использованием переменных DarkMaks93 Общие вопросы Delphi 6 26.07.2009 16:43
Фильтрация в Adoquery с использованием or and ArtInt БД в Delphi 20 13.05.2009 21:24
программа с использованием БД Paradox hinku Общие вопросы Delphi 0 07.10.2008 11:27
Задача с использованием Graph GrabNik Паскаль, Turbo Pascal, PascalABC.NET 1 07.05.2008 22:47
Программа с использованием функции Cartman18 Помощь студентам 1 10.12.2007 16:29