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
Условный переход после сравнения двох чисел в FPU
Написал програму что работает с FPU, но она видает ошыбки. Не знаю в чем проблема, вроде бы все правильно... Вобщем привожу листинг, если не лень, подскажыте пожалуйста в чем проблема :confused:
Фраза "Illegal immediate" наводит на мысль, что TASM'у надо просто "fstsw", без "ax".
Код:
36 0035 9B DD 3E 0000 fstsw
**Error** kv_riv.asm(37) Too few operands to instruction
**Error** kv_riv.asm(37) Too few operands to instruction
по-моему, тебе надо компилировать в более новой версии TASM'a
Версия здесь ни при чём.Не стоит ли включить ассемблирование инструкций сопроцессора? Нигде не вижу директивы. И если бы ты перевёл то, что написал тебе транслятор, ты бы понял причину.
Цитата:
Не стоит ли включить ассемблирование инструкций сопроцессора
- подскажы плз как ето сделать. з.ы. Illegal immediate - запрещённый ближайший(немедленный)????
Цитата: Yarosl@w
Illegal immediate - запрещённый ближайший(немедленный)????
Illegal immediate - запрещённый непосредственный.
Код:
.486