CM3 işlemcilerde bazı komutların hex daha doğrusu bit karşılıklarını arıyorum.
Branch komutlarının bit bazında detayları lazım oldu.
Polymorph kod mu yazıyorsunuz hocam hayırdır. Opcode karşılıkları, hafıza bölgeleri v.s. :)
işinize yarar umarım
[IMG]http://i.imgur.com/U3UjGRH.jpg[/img]
Sagol Gerbay işime yarayacak.
@ByteMaster evet derleyicinin işine karışacağım. Flash alanına bazı 16..32 bit veriler koyup bunların işlenmesini sağlayacağım.
Gerçi derleyici komut arasındaki verilere kızıyor ama ikna etmeye çalışacağım.
-------------------------------
Çok gıcık bir encoding işlemi var.
0x08002000 B Label1 (0x08002008 adresini uçalım)
Derleyicinin ürettiği kod: 0xF000B802
Gerbay'ın verdiği dokümanın A6-40. sayfasından
H15..H10 zaten 0xF
H11=0
S=0
J1=1
J2=1
I1=Not(J1 XOR S)=0
I2=Not(J2 XOR S)=0
Imm10=0
Imm11=2
S:I1:I2:Imm10:Imm11:0 ---> 0000 0000 0000 0000 0000 0100 = 0x000004
Sıradaki adresden 4 byte ileri git. 0x08002008 adresine ulaştık.
evet çoğu opcode lar kodlar fazla yer yaplamasın diye pc ye göre görecelidir.
CM3 için absolute jump komutu yok. Zaten max 32 (2x16) bit komut uzunluğundan dolayı olması da imkansız.
absolute jump olmayan işlemcimi olur.
ama m3 te direct absoulute jump yok ama indirect absolute jump var
BX
BLX