Delphi Can

Orjinalini görmek için tıklayınız: LSB 0 / MSB 0
Şu anda (Arşiv) modunu görüntülemektesiniz. Orjinal Sürümü Görüntüle internal link
Sayfalar: 1 2
Bir işlemcinin LSB 0 veya MSB 0 kullanıp kullanmadığını nasıl tespit edersiniz?

En kısa cevaba 10 puan.
+10 puan konusunda Uğur bey'i destekliyorum.
+4 de benden gelsin Smile

Geçenlerde Tuğrul beyin sorduğu little endian, big endian sorusunun aynısı/benzeri değilmi?
Doğru, benzer bir soru şablonu ama aynı soru değil.
var a:Word;
b:Byte;
pb:^Byte;
begin
  a := $0101;
  pb := @a;
   b := pb^;

  if b = 1 then
  showmessage('CPU LSB0')
  else
  showmessage('CPU MSB0')

end;
(09-11-2017, Saat: 14:48)frmman Adlı Kullanıcıdan Alıntı: [ -> ]
var a:Word;
b:Byte;
pb:^Byte;
begin
  a := $0101;
  pb := @a;
   b := pb^;

  if b = 1 then
  showmessage('CPU LSB0')
  else
  showmessage('CPU MSB0')

end;


Maalesef, bu kod doğru sonucu vermez.
var
b:Byte;
begin
 b := $01;
 b := b shr 1;

if b = 0 then
showmessage('CPU LSB0')
else
showmessage('CPU MSB0')

end;
(09-11-2017, Saat: 15:23)frmman Adlı Kullanıcıdan Alıntı: [ -> ]
var
b:Byte;
begin
 b := $01;
 b := b shr 1;

if b = 0 then
showmessage('CPU LSB0')
else
showmessage('CPU MSB0')

end;

Teşekkür ederim fakat bu kod da doğru sonucu vermez. 1980'lerden kalma LSB 0 / MSB 0 mevzusu bayt gruplarının sıralanması veya bitlerin sağa veya sola kaydırılması ile ilgili bir konu değil, eminim ufak bir araştırmayla keşfedilebilir.

Cevaplarda çeşitlilik olması adına bitwise operatörler veya pointerler de kullanılabilir, yani bu noktada herhangi bir kısıtlama yok Smile
b := (b and $7E) or (b shr 7) or (b shl 7); 
  • 1. Koşul: (b değişkeni hariç) MSB LSB olup olmadığı bilgisi.
  • 2. Koşul: MSB'yi LSB yapar.
  • 3. Koşul: LSB'yi MSB yapar.
  • Sonuç: MSB-LSB takası gerçekleştirir.
1) B'nin ilk değeri nedir?
2) Neden $7E ?
Sayfalar: 1 2