Professional Documents
Culture Documents
Sunu3 TR
Sunu3 TR
Sunu3 TR
• $t0:
• Maske işlemi
VEYA İşlem
• Bit bit VEYA İşlemi
• $t2:
• $t1:
• $t0:
Çalışmıyor
• Bir işlenen alır
• 0'ları 1'lere, 1'leri 0'lara dönüştürür
• MIPS tasarımcıları, tüm komutların üç işlenen aldığından emin olmak için NOT yerine
NOR kullanır.
• A NE 0 = DEĞIL (A VEYA 0) = DEĞIL (A)
• $t1:
• $t3: 0
• $t0:
andi & ori
• AND ve OR mantıksal işlemlerinde sabitleri kullanmayı etkinleştirin:
• andi: ve hemen
• ori: veya acil
• Soru 16 bitlik bir sabiti addi kullanarak 32 bitlik bir yazmaca nasıl
yerleştirebiliriz? Aynı yerleştirmeyi andi kullanarak nasıl
yapabiliriz?
• addi - işaret uzantısı ile
• andi - 0'ları ilk 16 bit ile değiştirir.
Kontrol Talimatları
• Bir sonraki PC değerini yürütmezseniz kullanılır.
• Kontrolü komut alanının başka bir bölümüne aktarın.
• İki grup talimat:
• Şubeler
• Kontrolün şartlı devri
• Hedef adres mevcut bilgisayar konumuna yakındır
• artırılmış PC değerinden dal mesafesi anlık alana sığar
• örneğin: döngüler, eğer ifadeleri
• Jumpes
• kontrolün koşulsuz devri
• hedef adresin mevcut bilgisayar konumundan uzakta olması
• örneğin: alt rutin çağrıları
MIPS Dallanma Talimatları
• Dallanma talimatları: koşullu kontrol transferi
• Karşılaştırın:
• iki kaydın eşitliği veya eşitsizliği
• Opcode rs, rt, hedef
• rs, rt: karşılaştırılacak kayıtlar
• hedef: şube hedefi
• <,>,≤, ≥ bir kaydın & 0
• Opcode rs, hedef
• rs: örtük bir 0 ile karşılaştırılacak kayıt
• hedef: şube hedefi
• Dallanmayı izleyen komuttan işaretli bir yer değiştirme (komut sayısı olarak ifade edilir) olan bir hedefe dallanma
• Bazı örnekler:
beq $t0, $t1, Hedef # $t0 == $t1 ise Hedefe dallanma
bgez $t0, Hedef # $t0 ≥ 0 ise Hedefe dallanma
MIPS Dallanma Talimatları
• beq, bne, bgtz, bltz, bgez, blez
• tek koşullu dallanma işlem kodlarıdır
• İki kayıt arasındaki >, <, ≤, ≥ karşılaştırmaları için slt (set on less
then) kullanın
• Slt rd, rs, rt # rs <rt ise, rd = 1; aksi takdirde rd = 0
• Bir örnek:
• ilk yazmaç operandı ikinciden küçükse dallanma slt $t0,
$t1, $t2 # $t1 < $t2 ise $t0 = 1; aksi halde $t0 = 0 bne
$t0, $0, L1 # $t0 = 1 ise L1'e dallanma
• Pseudoinstruction:
• assembler tarafından sağlanan ancak donanımda uygulanmayan bir
komut
• assembly dili programcıları tarafından bir kısayol olarak kullanılır
• blt $t1, $t2, L1 # $t1 < $t2 ise L1'e dallanma için sözde komut
assembler şu şekilde genişler:
slt $at, $t1, $t2
bne $at, $0, L1
(assembler tarafından $at ($1) kullanımına
dikkat edin) ayrıca bgt, bge, ble
MIPS Dallanma Talimatları
• Dallanma talimatları için hangi talimat biçimi kullanılır?
MIPS Brach Talimatları
• Şube Mesafesi
• Bir şube hedef adresinin yer değiştirmesini genişletme
• Ofset, işaretli 16 bitlik bir ofsettir
• Baytları değil, talimat sayısını temsil eder
• Artırılmış PC'ye eklendi
• Hedef adres bir bayt adresi değil, bir sözcük adresidir
• Alt 2 bit sıfırdır
• Assembly dilinde, sembolik bir hedef adres kullanın
MIPS Dallanma Talimatları
• Şube Mesafesi
• Şube ofseti iyi bir boyuttadır
• 16 bit ofset
• Artırılmış PC'ye eklendi
• Bir sözcük adresini temsil eder
• Örn: Aşağıdaki kod ifadesinde f, g, h, i ve j değişkenlerdir. Eğer f ile j arasındaki beş değişken
$s0 ile $s4 arasındaki beş yazmaca karşılık geliyorsa, bu ifade için derlenmiş MIPS kodu
nedir?
j: koşulsuz şube
• Eski:
• $s0:
• $s1:
• Karşılaştırmalardan sonra kayıtlardaki değerler nedir?
$t0:1
$t1:0
Kasa / Anahtar
• If-then-else ifadeleri şeklinde olabilir
• atlama adresi tablosu: alternatif talimat sırasını gösteren tablo.
• Tablo etiketlerin adreslerini tutar.