Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для начинающих > REAL10 не компилуруется


Автор: Ak47black 19.12.2009, 22:09
Здравствуйте.
Хочу проверить, будет-ли число -43,35 равно C0 04 AD 66 66 66 66 66 66 66
Пробую сделать так
Код

.model small
BSeg SEGMENT
ORG    100h
ASSUME ds:BSeg, cs:BSeg, ss:BSeg
  _start:
    exit_:
    
    mov ah,4Ch
    int 21h

    numb0 db 0    
    numb1 REAL10 -43,35; Получаю тут ошибку - Illegal instruction
        
BSeg ENDS

END _start

Подскажите, как тут правильно скомпилировать?
(юзаю tasm)

Автор: Mikl_ 21.12.2009, 06:48
Ak47black
если указано ORG    100h то это уже не EXE а COM и тогда две ошибки сразу .model tiny и другие ключи для компиляции и завершение COM не mov ah,4Ch/ int 21h а int 20h или просто retn а Illegal instruction у тебя потому, что в ассемблере разделитель между целой и дробной части точка а не привычная запятая  smile 

Автор: Ak47black 22.12.2009, 23:21
Чтото у меня всеровно не выходит
Код

.model small

.stack 100h

.data
    message    db "Hello world", 10, 13, "$"
    numb1 REAL10 -43.35; тут ошибка Illegal instruction
    
.code
code_start:
    MOV    ax, @data
    MOV    ds, ax            
    MOV    ah, 9            
    MOV    dx, OFFSET message    
    INT    21h            
    MOV    ah, 4Ch            
    INT    21h            
    
    
END code_start


компилирую так
Цитата

C:\TASM\BIN\tasm.exe test.asm
C:\TASM\BIN\tlink.exe test.obj

Автор: sgi1981 23.12.2009, 00:18
может нужно
numb1 dt -43.35;

Автор: Mikl_ 23.12.2009, 04:38
Ak47black
что masm из REAL10 -43.35 сделал 0C004AD66666666666666h
то же из dt -43.35 сделал tasm 0C004AD66666666666666h smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)