PDA

Tam Sürümünü Görmek İçin : assembly ye dair bir kac soru


kolistivra
21/07/2004, 21:22
selamlar,
assembly ögrenmeye yeni basladim ve aklimda birkac soru var(aslinda bir cok :) ), cevaplarsaniz sevinirim..

1) bu register 'lar tam olarak nedir?
2) sayi tipleri tam olarak nedir?
3) offset, segment ler tam olarak nedirler, baglantilari nedir?

(yukarida sordugum sorularin cevaplarini az cok biliyorum fakat bir bilgiyi ogreneceksem mantigini tam ogrenmek en iyisi degil mi?)

4) mov dword ptr ds:[esi],eax
yukaridaki ifadedeki dword ptr ds:[esi] nedir? ptr nedir? oradaki üst üste nokta nedir? parantez icine almak ne manaya gelir?

5)
add eax,1234 ;eax=eax+1234 >> tamam, burada bir sorun yok.
add ecx,edx ; eax=eax+ edx >> simdi burada niye ecx kullanildi ki? onun yerine eax kullanilmasi gerekmiyormuydu?

sorularim devam edecek. hersey icin cok tesekkurler


JJ
21/07/2004, 21:27
merhaba, surayi (http://forum.ceviz.net/showthread.php?t=9607) inceledin mi? belki sorularina orada cevap bulabilirsin. mesela ilk sorunun cevabi surada (http://forum.ceviz.net/showpost.php?p=86459&postcount=12).

Euclides
21/07/2004, 22:28
1)Sadece tam sayı alan kutucuklar. :) :)
2)Sayı tipi sayının hafıza bulunma şekli + büyüklüğü demektir.
3)"Protected Mode Hafıza Sistemi" alt başlığına bak
http://www.ceviz.net/index.php?case=article&id=310&f=34&ff=28
4)
dword=Double Word
ptr=pointer
ds:[esi]=segment'i ds offset'i esi ile gösterilen yer

5)
evt bu benim http://www.ceviz.net/index.php?case=article&id=310&f=34&ff=28 'da yaptığım bir hata
add ecx,edx ;ecx=ecx+edx
olması gerekirdi

kolistivra
21/07/2004, 23:52
yeniden selamlar,

1) 2. ve 4.(özellikle 4.nün) sorunun cevabini biraz daha acarsaniz cok sevinecegim.
2) pointer nedir?
3) yüzen kod parçasi ne demek?
4) " "Mul” komutu eax*parametre işlemini yapar.Sonucun düşük kısmı eax,’e yüksek kısmı ile edx’e aktarılır" sonucun düsük kismi ve yuksek kismi ne demektir?

5)

Assembling: test.asm
Microsoft (R) Incremental Linker Version 5.12.8078
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

LINK : warning LNK4001: no object files specified; libraries used
LINK : warning LNK4068: /MACHINE not specified; defaulting to IX86
LINK : fatal error LNK1159: no output file specified
The filename, directory name, or volume label syntax is incorrect.

Press any key to continue . . .

ilk programi derlerken bu hata cikti. sorun nerde?


tesekkurler

Euclides
22/07/2004, 00:39
2)pointer=bir hafıza noktasının adresi gösteren değer
3)eğer program kodlarını bir deniz olarak düşünürsek,burada yer değiştiren veya yeri değiştirildiğinde de çalışabilen kod parcalarıdır(normal kod parçaları program içnideki yeri değiştirldiğinde çalışamazlar)
4)01A2345CD sayısının 1A23 kısmı high word,45CD kısmı low word
78F5 sayısının 78 kısmı high byte,F5 kısmı low byte
gibi....
Not: Mul ile yapılan çarpımların hepsi tam sayıdır.
5)
söyle derle
ml /c /coff /nologo x.asm
link /SUBSYSTEM:WINDOWS x.obj,
eklere bak

pulsar
23/07/2004, 16:35
weya tasm kullan