Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Условный переход после сравнения двох чисел в FPU

31K
29 марта 2008 года
Yarosl@w
18 / / 23.01.2008
Написал програму что работает с FPU, но она видает ошыбки. Не знаю в чем проблема, вроде бы все правильно... Вобщем привожу листинг, если не лень, подскажыте пожалуйста в чем проблема :confused:
Код:
Turbo Assembler  Version 2.0        03/28/08 23:37:36       Page 1
kv_riv.asm
kv_riv


      1                   IDEAL
      2 0000                  MODEL SMALL
      3 0000                  STACK 256
      4 0100                 DATASEG
      5 0000  40800000            four dd 4.
      6 0004  40E00000            a dd 7.
      7 0008  40C00000            b dd 6.
      8 000C  C0800000            c dd -4.
      9 0010  ????????            d dd ?
     10                  ;
     11 0014  40000000            t1 dd 2.
     12 0018  00000000            t2 dd 0.
     13 001C  C0400000            t3 dd -3.
     14                  ;
     15 0020  00              EC db 0
     16 0021                 CODESEG
     17 0000                  start:
     18 0000  B8 0000s               mov ax,@DATA
     19 0003  8E D8              mov ds,ax
     20
     21 0005  9B DB E3               FINIT
     22 0008  DB E3              FNINIT
     23 000A  9B D9 EE               FLDZ
     24 000D  9B D9 EE               FLDZ
     25 0010  9B D9 EE               FLDZ
     26
     27 0013  9B D9 06 0008r             fld
     28 0018  9B D8 C8               fmul st,st(0)
     29 001B  9B D9 06 0000r             fld [four]
     30 0020  9B D8 0E 0004r             fmul [a]
     31 0025  9B D8 0E 000Cr             fmul [c]
     32 002A  9B DE E9               fsub
     33                  ;
     34 002D  9B D9 06 0014r             fld [t1]
     35 0032  9B D9 E4               ftst
     36 0035  9B DD              fstsw ax
**Error** kv_riv.asm(37) Illegal immediate
     37 0037  9E                 sahf
     38
     39 0038  9B D9 06 0018r             fld [t2]
     40 003D  9B D9 E4               ftst
     41 0040  9B DD              fstsw ax
**Error** kv_riv.asm(42) Illegal immediate
     42 0042  9E                 sahf
     43
     44 0043  9B D9 06 001Cr             fld [t3]
     45 0048  9B D9 E4               ftst
     46 004B  9B DD              fstsw ax
**Error** kv_riv.asm(47) Illegal immediate
     47 004D  9E                 sahf
     48                  ;
     49 004E  9B D9 FA               fsqrt
     50 0051                  exit:
     51 0051  B4 4C              mov ah,04ch
     52 0053  A0 0020r               mov al,[EC]
     53 0056  CD 21              int 21h
     54                  end start
Turbo Assembler  Version 2.0        03/28/08 23:37:36       Page 2
Symbol Table
kv_riv



Symbol Name           Type   Value

??DATE                Text   "03/28/08"
??FILENAME            Text   "kv_riv  "
??TIME                Text   "23:37:36"
??VERSION             Number 0200
@CODE                 Text   _TEXT
@CODESIZE             Text   0
@CPU                  Text   0101H
@CURSEG               Text   _TEXT
@DATA                 Text   DGROUP
@DATASIZE             Text   0
@FILENAME             Text   KV_RIV
@MODEL                Text   2
@WORDSIZE             Text   2
A                 Dword  DGROUP:0004
B                 Dword  DGROUP:0008
C                 Dword  DGROUP:000C
D                 Dword  DGROUP:0010
EC                Byte   DGROUP:0020
EXIT                  Near   _TEXT:0051
FOUR                  Dword  DGROUP:0000
START                 Near   _TEXT:0000
T1                Dword  DGROUP:0014
T2                Dword  DGROUP:0018
T3                Dword  DGROUP:001C

Groups & Segments         Bit Size Align  Combine Class

DGROUP                Group
  STACK               16  0100 Para   Stack   STACK
  _DATA               16  0021 Word   Public  DATA
_TEXT                 16  0058 Word   Public  CODE
Turbo Assembler  Version 2.0        03/28/08 23:37:36       Page 3
Error Summary
kv_riv


**Error** kv_riv.asm(37) Illegal immediate
**Error** kv_riv.asm(42) Illegal immediate
**Error** kv_riv.asm(47) Illegal immediate
5.3K
29 марта 2008 года
Somebody
185 / / 24.12.2006
Фраза "Illegal immediate" наводит на мысль, что TASM'у надо просто "fstsw", без "ax".
31K
29 марта 2008 года
Yarosl@w
18 / / 23.01.2008
нет, не работает, вот что выдает:
 
Код:
36  0035  9B DD 3E 0000          fstsw
**Error** kv_riv.asm(37) Too few operands to instruction
261
30 марта 2008 года
ahilles
1.5K / / 03.11.2005
по-моему, тебе надо компилировать в более новой версии TASM'a
1.6K
30 марта 2008 года
Vov4ick
476 / / 01.02.2007
Версия здесь ни при чём.Не стоит ли включить ассемблирование инструкций сопроцессора? Нигде не вижу директивы. И если бы ты перевёл то, что написал тебе транслятор, ты бы понял причину.
31K
31 марта 2008 года
Yarosl@w
18 / / 23.01.2008
Цитата:
Не стоит ли включить ассемблирование инструкций сопроцессора

- подскажы плз как ето сделать. з.ы. Illegal immediate - запрещённый ближайший(немедленный)????

5.3K
01 апреля 2008 года
Somebody
185 / / 24.12.2006
Цитата: Yarosl@w
Illegal immediate - запрещённый ближайший(немедленный)????


Illegal immediate - запрещённый непосредственный.

31K
02 апреля 2008 года
Yarosl@w
18 / / 23.01.2008
разобрался))) нужно было опредилить тип процессора:
 
Код:
.486
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог