Neden SES yüksek bayt içeren bir kayıt yok mu?
%AX = (%AH %AL)
Neden bazı kaydetmek için êX = (%SOME_RESTIER %AX)
%SOME_REGISTER
deÄŸil mi?
CEVAP
Sadece bazı açıklama için. 1970, CPU erken mikroişlemci günlerde kaydeder sadece az sayıda ve çok kısıtlı bir komut kümesi. Tipik olarak, aritmetik birimi sadece tek bir CPU kayıt olarak sık sık başvurulan bir faaliyet olabilir "". akümülatör 8 bit 8080 & Z80 işlemci akümülatör denir"". Orada 6 diğer genel amaçlı 8 bit kaydeder: B, C, D, E, H & L. Bu altı kaydeder olabilir eşleştirilmiş form 3 16 bit kaydeder: BC, DE VE HL. DAHİLİ olarak, akümülatör Bayrakları 16 bit AF kayıt formu kayıt ile birlikte.
Intel 16 bit 8086 ailesi gelişmiş zaman aynı temel kayıt yapısı devam etmişler port 8080 kodu, olmak istediler:
8080/Z80 8086
A AX
BC BX
DE CX
HL DX
IX SI
IY DI
8 bit port koduna gerek çünkü her 8 bit için AX, BX, CX VE DX parçaları sevk edebilmek için gerekli. Bunlar, AL, BL AX düşük & yüksek bayt için/AH BH, CL/CH & DL/DH denir. Bu Z80 hakkında IX VE IY SI & Dİ iki yarısı erişmek için ihtiyaç vardı hayır yani 16 bit işaretçi kayıtları olarak sadece kullanılmıştır.
The 80386 1980'lerin ortalarından serbest bırakıldı "" tüm kayıtları. sürümleri genişletilmiş yarattılar Yani, AX SES oldu, BX EBX vb oldu. EAXH sahte bir kayıt oluşturmak etmediler yani bu yeni genişletilmiş kayıtları 16 bit üst erişim için ihtiyaç vardı.
AMD ilk 64 bit işlemcileri ürettiler zaman aynı taktiği uyguladı. AX kayıt 64 bit sürümü RAX denir. Yani, şimdi bu gibi görünen bir şey var:
|63..32|31..16|15-8|7-0|
|AH.|AL.|
|AX.....|
|EAX............|
|RAX...................|
Neden belirli Unicode karakterler içer...
bayt = int... neden?...
Neden Google 1 Benim fare hareketleri ...
Neden'içeren t C# arabirimleri al...
Neden Java API yerine veya bayt int kı...