ccs de kayan noktalı sayı register a nasıl alınır?

Başlatan remzi, 16 Aralık 2005, 15:23:22

remzi

arkadaşlar hitech ten ccs ye gectim ama bir sorunum var kayan noktalı sayıyı registera atamadım. sayı 4.285685 gibi birşey programda ben bu sayıyı bir registerla çarpıp başka bir registera atacam ama kabul etmedi.
float sayi=4.28565;
şeklinde tanımladım ccs de bunu nasıl tanımlamam gerekiyor.

Bir sorum daha olcak float bir register ı nasıl int a çevirebilirim. örnekle gösterebilirmisiniz herşey için teşekkür ederim.

Petek

Alıntı yapılan: "remzi"arkadaşlar hitech ten ccs ye gectim ama bir sorunum var kayan noktalı sayıyı registera atamadım. sayı 4.285685 gibi birşey programda ben bu sayıyı bir registerla çarpıp başka bir registera atacam ama kabul etmedi.
float sayi=4.28565;
şeklinde tanımladım ccs de bunu nasıl tanımlamam gerekiyor.

Bir sorum daha olcak float bir register ı nasıl int a çevirebilirim. örnekle gösterebilirmisiniz herşey için teşekkür ederim.
float tanımlı bir sayı işlemcide 4 adet registerde tutulur. Bunu bir registerle çarpıp başka bir registere aktarabilirsiniz ama ortaya çıkan garabete ne ad verilir bilmiyorum.

int32 tanımlı değişkeniniz a olsun.

a = (int32) sayi;

floating point sayi ram bellekte şöyle saklanır:
  sayi_2 = *(&sayi)
  sayi_1 = *(&sayi+1)
  sayi_0 = *(&sayi+2)
  sayi_e = *(&sayi+3)   // exponent kısmı
“Önyargıları yıkmak atomu parçalamaktan zordur” A.Einstein

remzi

ilk önce noktalı sayıyı nasıl saklayıcıya atıcam bilmiyorum hitech te float=4.52445;
deyince oluyordu ama ccs de olmuyor bunu nasıl yapıcam

Petek

Alıntı yapılan: "remzi"ilk önce noktalı sayıyı nasıl saklayıcıya atıcam bilmiyorum hitech te float=4.52445;
deyince oluyordu ama ccs de olmuyor bunu nasıl yapıcam

Değişkenini float tanımlayacaksın.

float sayı, olcum, deneme, sonuc;  // her biri 4 bayt yer tutar

gibi. sonra

sayi = 4.52445; yapacaksın.

sonuc = sayi; //bu komut için 8 assembler komutu kullanılır. yani 8 ic gerekir
“Önyargıları yıkmak atomu parçalamaktan zordur” A.Einstein