SPnin mevcut değerini FFFBkabul ederek .AX ve BX registerlarını kullanarak stack üzerine sırasıyla 2345(hex) ve 1234(hex)değerlerini aktarınız.stack pointerın aldıgı değerleri stack üzerine yazma işlemlerini 4 şekil üzerinde gösteriniz .stack üzerine aktarma işlemlerinden sonra tekrar stack üzerinden bu dğerleri registerın değerlerini karşılklı takas ederek alınız okuma işlemlerini ve okuma işlemleri sırasında stack pointerın aldıgı degerleri şekil üzerinde gösteriniz yazma ve okuma işlemleri sırasında kullanılan assembly komutlarını da sekillerin altına yazınız . (lütfen bu sorunun nasıl oldugunu biri bana anlatsın)
assembly soruları (acilll)
OP Taze Üye
Teşekkür Sayısı: 0
1 mesaj
Kayıt Tarihi:Kayıt: Kas 2008
Son Düzenleme: Serkan Karadaş ~ 20 Mayıs 2009 22:34
Yeni Üye
Teşekkür Sayısı: 0
34 mesaj
Kayıt Tarihi:Kayıt: Mar 2009
şekilleri çizebilirsin sanırım. cevap şu:
başlangıçta
ax = 2345
bx = 1234
sp = FFFB
stack, aksi belirtilmediği sürece Last In First Out (LIFO) yöntemiyle çalışır.
stack'a kaydetme komutu PUSH'tur. komut stack pointer'i iki (2) azaltır ve içeriğine kaynak verileri yazar. stack'tan veri alma komutu POP'tur. komut hedefe stack içeriğini yazar ve stack pointer (SP) değerini iki artırır.
şimdi adım adım çözüme geçelim
; burada sp = FFFB
push ax ; sp = sp - 2 = FFF9, ve [ sp ] = ax (2345)
push bx ; sp = sp - 2 = FFF7, ve [ sp ] = bx(1234)
; burada sp = FFF7
pop ax ; ax = [ sp ] (1234) ve sp = sp + 2 : FFF9
pop bx ; bx = [ sp ] (2345) ve sp = sp + 2 : FFFB
işlem sonunda
sp = FFFB
ax = 1234
bx = 2345
kolay gelsin