Konuyu görüntüle
IUCODERS FORUM > Duyurular > Okul ile ilgili > Mikroişlemciler
Yazar
gultekinm


avatar

Kayıt: 02.02.2006
12.01.2008-22:54 #34377
aslanera yazdi
 
DS:0100 MOV AX,12F3H
DS:0103 MOV BX,9
DS:0106 PUSH AX
DS:0107 PUSH BX
DS:0108 CALL 010EH
DS:010B XOR AX,AX
DS:010D PUSH AX
DS:010E POP BX
DS:010F POP AX

yıgın bellegindeki degişimi yazabilecek varmı.
işlem sonunda AX ve BX içeriği ne olur
(CS=ES=DS=SS=13BA)
geçen seneki final sorusu.call kısmında stack değişimini beceremedim. call da birsonraki offset adresini kaydediyormuydu.işlem bittikten sonra kendisi onu otomatik pop ediyormu.
kolay gelsin.


SP belli olmadığı için sadece stackı göstermeliyiz sanırım,

(near CALL oldugu için sonraki adımın IPsini atacaz)

PUSH AX, PUSH BX , PUSH sornaki adımın IPsi , POP AX, POP BX

RET görene kadar işlemlere devam etmesi gerekir bence son halinda sadece IP adresi kalır stackte geri dönmez yani.

kesin çözümü olan warsa paylaşsın lütfen her sene kesin geliyo bu tip bi soru






just so tired of being me
Yazar
aslanera


avatar
istanbul
Kayıt: 01.06.2006
12.01.2008-23:16 #34383
bandit yazdi
 
aslanera yazdi
 
DS:0100 MOV AX,12F3H
DS:0103 MOV BX,9
DS:0106 PUSH AX
DS:0107 PUSH BX
DS:0108 CALL 010EH
DS:010B XOR AX,AX
DS:010D PUSH AX
DS:010E POP BX
DS:010F POP AX

yıgın bellegindeki degişimi yazabilecek varmı.
işlem sonunda AX ve BX içeriği ne olur
(CS=ES=DS=SS=13BA)
geçen seneki final sorusu.call kısmında stack değişimini beceremedim. call da birsonraki offset adresini kaydediyormuydu.işlem bittikten sonra kendisi onu otomatik pop ediyormu.
kolay gelsin.


SP belli olmadığı için sadece stackı göstermeliyiz sanırım,

(near CALL oldugu için sonraki adımın IPsini atacaz)

PUSH AX, PUSH BX , PUSH sornaki adımın IPsi , POP AX, POP BX

RET görene kadar işlemlere devam etmesi gerekir bence son halinda sadece IP adresi kalır stackte geri dönmez yani.

kesin çözümü olan warsa paylaşsın lütfen her sene kesin geliyo bu tip bi soru


biz de sonradan o şekilde düşündük. orda ilk olarak push ax, push bx, push ıp adresi, pop bx, pop ax..... bundan sonrasını bilemeyiz diye yorumladık çünkü call ile cagrılan ip den başlayacak işlemeye ret gürene kadar. sadece verilen program parçesı üzerinde bukadarını yapabiliriz. birde call un near mı far mı oldugunu nasıl anladınız. belki hoca sınavda acıklamıstır hatırlamıyorum ben. son olarak stack içinde ilk olarak push edilen ax kalır die düşündük. varmı farklı düşünen
kolay gelsinthinking





Yazar
alpersara


avatar

Kayıt: 12.01.2006
12.01.2008-23:18 #34385
Söyledığın gıbı. en son yığında ax kalır, derleyıcıde yaparsak ip adresi ni yığından cekmediği için(ret yok zaten) call ın altından değil popların sonundan yoluna devam edıyor.
ben sınava gırmedım ama call eger aynı segment içinden biryer cağırırsa near olur. yani cağırdığı adres kodun devamında olmasaydı far olacaktı. zaten far olduğunda belırtmesı gerekır bence.





Yazar
tuuba


avatar
Bursa
Kayıt: 22.01.2007
12.01.2008-23:28 #34391
antirunje yazdi
 
İyi akşamlar herkese. Vizenin 4. sorusunun b şıkkını anlayan biri varsa açıklayabilir mi acabathinkingthinking

Program ORG 0000,ORG 0010 ve ORG 0010 adreslerinden başlayarak DQ ile 8 byte ' lık yerler ayırıyor.Ve sonra bunların içine dataları yerleştiriyor.
0000->76
0001->3F
0002->7B
0003->21
dikkat edersen adresler aşağıdan yukarıya doğru artıyor. Dataları yerleştirdikten sonra başta 8 bit ayırdığımızdan, geri kalan 4 biti 00(null) ile dolduruyoruz.Ve bir sonraki ayırdığımız yere kadar segment içinde ne olduğunu bilmediğimizden oraları XX ile göstermişiz.
Yanlışım varsa düzeltin.
Umarım açıklayıcı olmuştur.
Herkese kolay gelsin:)





Yazar
gultekinm


avatar

Kayıt: 02.02.2006
12.01.2008-23:30 #34392


bu da geçen sene bütte çıkan soru biraz da bunu çözmeye çalışsak hiç de fena olmaz sanırım ideadiğerine göre biraz daha karışık





just so tired of being me
Yazar
caner


avatar
republic of FB
Kayıt: 19.01.2006
13.01.2008-00:05 #34399
büt sorularının tamamını koyabilirmisin acaba ?





Atam izindeyiz..
Biz de Fenerbahçeliyiz..
Yazar
watthana


avatar
uzayli
Kayıt: 02.02.2007
13.01.2008-00:12 #34402
herkese selamlar,ya ben bölüm 3.4 konusunda teredutte kaldım hocanın sıtesınde eklenmemıs ama son hafta ve ya haftalarda o kadar ugrastı bu konuyla bcd-ascii arasındakı donusumlerle bunlar yok mu sımdı...prayingprayingd ohd oh
?????????????????????????????????????????????????????????????????????????????????





ASIKSAN YARE,
ALDANMA AGYARE...

Yazar
gultekinm


avatar

Kayıt: 02.02.2006
13.01.2008-00:34 #34408
http://img523.imageshack.us/img523/9792/09012008459iq5.jpg

geriye kalan büt sorularına linkten ulaşabilirsiniz.

Kod sorulmayacak denildi ama 2. soru okunmazsa :

32 bit sayıyı 16 bit sayı ile carpan bir program yazınız. data segmenti aşağıdaki gibi tanımlanacaktır. çarpma işaretsiz sayılar için yapılacaktır.







just so tired of being me
Yazar
aslanera


avatar
istanbul
Kayıt: 01.06.2006
13.01.2008-00:50 #34416
o eklenen telafi soru 1 için, demin çözmeye calıstık ta kitapta altprogramda falan push sayısıyla pop sayısı esit olmalı deniliyor fakat bu soruda push 2 tane pop 1 tane dolayısıyla alt programdan cıkınca programa kaldıgı noktadan baslayamayacak die düşünüyorum çünkü ret görünce yıgından call komutundan birsonraki komutun cs sini ve ip sini okumusı lazım oradan devam etmesi için fakat eksik bir pop var. sorun nerde.varmı fikri olanthinking





Yazar
gultekinm


avatar

Kayıt: 02.02.2006
13.01.2008-01:01 #34422
aslanera yazdi
 
o eklenen telafi soru 1 için, demin çözmeye calıstık ta kitapta altprogramda falan push sayısıyla pop sayısı esit olmalı deniliyor fakat bu soruda push 2 tane pop 1 tane dolayısıyla alt programdan cıkınca programa kaldıgı noktadan baslayamayacak die düşünüyorum çünkü ret görünce yıgından call komutundan birsonraki komutun cs sini ve ip sini okumusı lazım oradan devam etmesi için fakat eksik bir pop var. sorun nerde.varmı fikri olanthinking


o sadece bi kod parçası zaten başka bir kısımda pop edilmiştir bence.
ben POP CX kısmını anlayamadım bi türlü PUSH edilmedi daha önce çünkü stack'ebeat up






just so tired of being me
Yazar
arda


avatar

Kayıt: 20.01.2006
13.01.2008-01:09 #34424
aslanera yazdi
 
o eklenen telafi soru 1 için, demin çözmeye calıstık ta kitapta altprogramda falan push sayısıyla pop sayısı esit olmalı deniliyor fakat bu soruda push 2 tane pop 1 tane dolayısıyla alt programdan cıkınca programa kaldıgı noktadan baslayamayacak die düşünüyorum çünkü ret görünce yıgından call komutundan birsonraki komutun cs sini ve ip sini okumusı lazım oradan devam etmesi için fakat eksik bir pop var. sorun nerde.varmı fikri olanthinking


Aydın , o yüzden zaten hoca c) de alt programın dönüş lojik adresini istiyo,, dediğin gibi program kaldığı noktadan başlamayacak ;) stack te ne varsa ordan başlıcak..





http://www.software-turk.com






Yazar
aslanera


avatar
istanbul
Kayıt: 01.06.2006
13.01.2008-01:17 #34426
bandit yazdi
 
aslanera yazdi
 
o eklenen telafi soru 1 için, demin çözmeye calıstık ta kitapta altprogramda falan push sayısıyla pop sayısı esit olmalı deniliyor fakat bu soruda push 2 tane pop 1 tane dolayısıyla alt programdan cıkınca programa kaldıgı noktadan baslayamayacak die düşünüyorum çünkü ret görünce yıgından call komutundan birsonraki komutun cs sini ve ip sini okumusı lazım oradan devam etmesi için fakat eksik bir pop var. sorun nerde.varmı fikri olanthinking


o sadece bi kod parçası zaten başka bir kısımda pop edilmiştir bence.
ben POP CX kısmını anlayamadım bi türlü PUSH edilmedi daha önce çünkü stack'ebeat up


yukarda 2tane push var yaw.

anladım arda ozaman call dan sonraki dec cx calısmayacak deilmi.





Yazar
gultekinm


avatar

Kayıt: 02.02.2006
13.01.2008-01:37 #34429
ben burdan sunu anladım CX daha önce PUSH edilmiş ve alt programın içinde kullanılmış.
sonra PUSH edildiği zamanki değeri üst programdaki değerine göre azaltmak için POP edilmiş.

ve b şıkkında diyorki alt program yürütüldükten sonra CX ve SP saklayıcılarının içeriği ne olur.
CX içeriğini bilebilmemiz için PUSH edildiği zamanki değerini bilmemiz gerekmez mi?

yanlışım varsa düzeltin lütfen





just so tired of being me
Yazar
aslanera


avatar
istanbul
Kayıt: 01.06.2006
13.01.2008-02:51 #34430
orda cx in önceden push edilip edilmemesi önemlimi. o anda pop cx yapılınca stack in en üst degerini cx e yerleştiriyor.

300B ->3E
300A ->45
3009 ->18
3008 ->2A
3007 ->1F
3006 ->00
3005 ->BC
3004 ->1F
SP3003 ->-----

pop cx olduktan sonra
3009 ->18
3008 ->2A
3007 ->1F
3006 ->00
3005 ->BC
3004 ->1F
SP3003 ->----- şeklinde olacagını ve CX=453E olacagını daha sonra

lojik adresin de yıgının en üstünde kalan 16 bit in oldugunu yani 001F:2A18 oldugunu düşündük thinking






Yazar
alpersara


avatar

Kayıt: 12.01.2006
13.01.2008-03:35 #34432
arkadaslar kıtapta push sayısı pop sayısına esıt olacak dıyor fakat o , ret ın eskı ıp degerını alıp call dan sonrakı komuttan devam edebılmesı ıcın.yanı push larla pop lar esit değilse en son kalan deger adres olarak dondurulur. cx daha once push edılmek zorundada değil bu arada ,yığının en ustunde o anda ne varsa o deger alınıp cx e atanır.





1 2 3 4 5 6 7 8 9
Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb