Doğrudan adresleme
Doğrudan talimatın tam işlem adresini belirtin. Örneğin, A Q10.0, komut A için, Q10.0 doğrudan işletilen adresidir.
Bu nedenle, göreceli, dolaylı adresleme, dolaylı olarak talimatın tam işletim adresini belirtmektir. Örneğin, A Q, buradaki adres doğrudan değil, dolaylı olarak MD10'un depolama adresi aracılığıyla verilir.
Dolaylı adresleme türleri
Dolaylı adresleme iki türe ayrılabilir: bellek dolaylı adresleme ve dolaylı adresleme kaydı. Şekil 1'de gösterildiği gibi.
Şekil 1 Adresleme modu
Bellek dolaylı adresleme
Bellek dolaylı adresleme formatı verilen adres: adres tanımlayıcı + işaretçi. Gösterge tarafından gösterilen depolama biriminde bulunan değer, adresin tam değer birimidir.
Bellek dolaylı adresleme iki işaretçi biçimine bölünmüştür:
16 bit işaretçi:
16 bit adres işaretçisi, zamanlayıcıları, sayaçları ve program bloklarını (DB, FC, FB) adreslemek için kullanılır. 16 bitlik işaretçi, zamanlayıcıyı (T), sayacı (T) temsil eden işaretsiz bir tamsayı (0-65535) olarak kabul edilir ( C), veri bloğu (DB, DI) veya program bloğu (FB, FC) sayısı, 16 bitlik işaretçinin formatı aşağıdaki gibidir:
Şekil 216 bitlik işaretçi biçimi
32 bit işaretçi:
32-bit adres işaretçisi, I, Q, M, L, veri blokları, vb. Hafızasındaki bitleri, baytları, kelimeleri ve çift kelimeleri adreslemek için kullanılır. 32-bit adres işaretçisi, 0. bitten ikinciye kadar bir çift kelime ile temsil edilebilir. Bitler, adresleme işlemleri için bit adresleri olarak kullanılır. 3 ila 18 arasındaki bitler, adresleme işlemleri için bayt adresleri olarak kullanılır. 19 ila 31 arası bitler tanımlanmaz. 32 bitlik bir işaretçinin formatı aşağıdaki gibidir:
Şekil 332 bit işaretçi biçimi
Dolaylı adreslemeyi kaydedin
Dolaylı adresleme kaydı, CPU'nun AR1 ve AR2 adres kayıtları aracılığıyladır. AR1 ve AR2'nin her ikisi de 32 bitlik kayıtlardır.Kayıt dolaylı adresleme sadece 32 bitlik işaretçiler kullanır.
Dahili alan dolaylı adresleme ve çapraz alan adreslemeye bölünmüştür.
Dahili alan kayıtlarının dolaylı adreslemesi
İşaretçi biçimi, bellek dolaylı adreslemenin 32-bit işaretçisi ile aynıdır. 0 ~ 2 bit adresleme işlemleri için bit adresleri olarak kullanılır, 3 ~ 18 bitleri adresleme işlemleri için bayt adresleri olarak kullanılır ve 19 ~ 31 bitleri Bit tanımlı değildir, 32 bitlik göstericinin formatı aşağıdaki gibidir:
Şekil 4 Dahili alanın 32 bitlik göstergesi
Kesişme alanı dolaylı adresleme kaydı
Bellek alanı bilgilerini içeren işaretçiye çapraz alan işaretçisi denir. Benzer şekilde, çapraz alan işaretçisi 32 bittir ve dolaylı adresleme yazmacı AR1 veya AR2 adres kaydını kullanmalıdır. 32 bitlik çapraz alan işaretçisi, soldan 0 ~ 18 bit, 32 bit dahili alan işaretçisi, 19 ~ 23 bit, 27 ~ 20 ile aynı formata sahiptir. Bit tanımsızdır ve 31 bit, çapraz alan işaretçisi tanımlama bitidir. 24 ~ 26 bitleri, depolama alanı adres kimliğidir. 8'in kombinasyonu, 8 tip depolama alanı anlamına gelir: 000, adres alanı olmadığı anlamına gelir, örneğin P # 12.0; 001, giriş adresi alanı I anlamına gelir, örneğin P # I12.0; 010, çıkış adresi alanı Q anlamına gelir Örneğin, P # Q12.0; 011, P # M12.0 gibi bayrak adresi alanını M temsil eder; 100, veri bloğundaki (DB) verileri temsil eder, örneğin, P # DB1.DBX12.0101, veri bloğundaki (DI) verileri temsil eder. Veriler, örneğin, P # DI1.DIX12.0110, P # L12.0 gibi alan adres alanını L temsil eder; 111, P # V12.0 gibi çağıran program bloğunun V alan adres alanını temsil eder; çapraz alan işaretçisinin formatı aşağıdaki gibidir:
P # işaretçi ve HERHANGİ bir işaretçi
P # işaretçi POINTER, 6 bayt uzunluğunda, işaretçileri aktarmak için kullanılan resmi bir parametre veri türüdür. Bileşik veri türlerinin gerçek parametrelerini (ARRAY, STRUCT, DT, vb.) Çağrılan işlev FC ve işlev bloğu FB'ye aktarmak için kullanılır. Gerçek parametre belleğine dolaylı olarak çağrılan fonksiyon FC ve fonksiyon bloğu FB'den erişilebilir.
Şekil 6 P # işaretçisi
HERHANGİ bir işaretçi
POINTER, işaretçileri geçirmek için kullanılan resmi bir parametre veri türüdür. POINTER türünün bir uzantısı olarak kabul edilebilir. POINTER türünden daha karmaşıktır. Uzunluk 10 bayt ve ek 2 bayttır. En yüksek bayt (Bayt 0) şu şekilde sabitlenmiştir: B # 16 # 10, ikinci bayt (Bayt 1), HERHANGİ bir işaretçi tarafından gösterilen alanın veri türüdür ve sonraki 2 bayt (BYTE 3, 4), HERHANGİ bir işaretçi tarafından belirtilen alanın uzunluğu olan bir INT'de birleştirilir , Tekrarlama faktörü olarak adlandırılır). Kalan 6 bayt, POINTER türü ile aynı işleve sahiptir. Biçim aşağıdaki gibidir:
Şekil 7 HERHANGİ bir işaretçi