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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.04.2009, 16:07   #1
mar4elo
Форумчанин
 
Регистрация: 17.04.2008
Сообщений: 146
По умолчанию Определения типа данных

Мне нужно определить целое число или нет в регистре...Подскажите plz как?
mar4elo вне форума Ответить с цитированием
Старый 19.04.2009, 16:35   #2
heart
Пользователь
 
Регистрация: 17.12.2008
Сообщений: 64
По умолчанию

если я не ошибаюсь, то в регистрах хранятся только целые числа, если число дробное, то целая часть в одном регистре, а дробная в другом...
heart вне форума Ответить с цитированием
Старый 19.04.2009, 17:51   #3
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

Цитата:
Мне нужно определить целое число или нет в регистре...Подскажите plz как?
Никак. Содержимое регистра- это набор ноликов и единичек. В зависимости от того как их интерпретирует ваша программа, это может быть как целое, так и дробное. К примеру - содержимое регистра равно
1000010110010000011001100110011, если интерпретировать это число как целое, то оно равно 1120416563 в десятичной системе счисления. Если же рассматривать это число как число с плавающей точкой одинарной точности (32 разряда) - то оно будет равно 100.1.
Но надо при этом понимать, что целочисленные команды процессора потому и называются целочисленными, что обрабатывают содержимое операндов (регистров в том числе) именно как целые числа.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 20.04.2009, 00:04   #4
mar4elo
Форумчанин
 
Регистрация: 17.04.2008
Сообщений: 146
По умолчанию

хорошо, число не врегистре, а в памяти т.е. в переменной, то тогда как?
mar4elo вне форума Ответить с цитированием
Старый 20.04.2009, 05:10   #5
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Забудь о типах, на уровне ассемблера у тебя есть всего лишь набор байт, а как его интерпритировать решай сам
http://ru.wikipedia.org/wiki/Число_одинарной_точности

Код:
Format PE GUI 4.0
include 'Win32axp.inc'

.data
        s100.1  dd 1000010110010000011001100110011b
        s100    dd 1000010110010000000000000000000b

.code
start:
        stdcall IsInteger,[s100]
        .if eax
           invoke MessageBoxA,0,'Integer',0,0
        .else
           invoke MessageBoxA,0,'Non-Integer',0,0
        .endif

         stdcall IsInteger,[s100.1]
        .if eax
           invoke MessageBoxA,0,'Integer',0,0
        .else
           invoke MessageBoxA,0,'Non-Integer',0,0
        .endif

exit:   invoke ExitProcess,0

proc IsInteger,double
local i dd ?
        fld     [double]   ; Push 'v' into st(0) of FPU stack
        fist    [i]        ; Convert and store st(0) to integer
        fild    [i]        ; Push integer to st(0)
        fcompp             ; Compare st(0) and st(1) then pop twice
        fnstsw  ax         ; Moves FPU code flags to AX (AH) register
        test    ah,40h     ; Test if AH is 40h (meaning st(0) == st(1) )
        je      SetF       ; Jump to SetF if test was false
        mov     eax,1      ; Set return value to true
        jmp     Bye        ; Jump to exit
    SetF:  
        xor     eax,eax    ; Set return value to false
    Bye:
        ret
endp

.end start
Стырено отсюда, проверено электроникой, дебаггером то есть
пыщь
JTG вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
передача данных типа Record... Рустам Работа с сетью в Delphi 4 24.01.2010 09:51
Получение типа данных Proof БД в Delphi 2 14.05.2008 20:38
Создание своего типа данных xGroupers Общие вопросы Delphi 4 12.05.2008 13:53
Смена типа данных?? Agrophena Паскаль, Turbo Pascal, PascalABC.NET 4 17.11.2007 16:29