, en biz .data altında aşağıdaki kod satırını sahip varsayalım:Sözdizimi, bir dizinin bildirilmesi ve arama işlevleri için anlamı nedir?
"theSINTArray BYTE 256 dup(?)".
Ben bu kod her eleman bir BYTE olması gereken bir dizi oluşturur biliyorum, ama ne 256 ve dup (?) var mı?
Aşağıdaki kodun, SINTArray öğesinin türünü, uzunluğunu ve ofsetini/adresini yığının üstüne bastığını biliyorum, ancak bilmek istediğim, bunları yığıntan almak ve bir alt yordam içinde kullanmak mümkün olup olmadığıdır. .
main PROC push TYPE theSINTArray push LENGTHOF theSINTArray push OFFSET theSINTArray call testParameters exit main ENDP
Bu
sıkıcı soru biraz, o yüzden şimdiden özür dilerim, ama aşağıdaki kod örneğinde hatlarının büyük bölümünün gerekli Basitçe neden anlamıyorum. Satırıma sahip olduğumu varsayarak "TAMAMLAYINIZ" Lütfen .data bölümünde ", 0" değerini girin: Aşağıdaki kodun her satırının amacı nedir? Not: WriteString ve ReadString, kullandığım Irvine kitaplığında tanımlanmış alt yordamlardır.testOutput PROC push edx push ecx mov edx,offset prompt call WriteString pop ecx pop edx call ReadString ret testOutput ENDP
-2
benim ilk soru için
A
cevap
4
orada 256 ve dup (?) Için nelerdir?
assembler's manual'u okuyun. TL; DR: yığınından bunları almak ve bir alt rutin Tabii
mümkündür içinde bunları kullanmak mümkün olup olmadığını eğer argüman geçirme aptalca olurdu 256 başlatılmamış bayt
tutar callee argümanlara erişemedi;) Bunları
esp
(yığın işaretçisi) ile ilgili olarak veya çerçeve işaretçisi olarak ayarladıktan sonra,ebp
. Örnekler:[esp+4]
veya[ebp+8]
.testOutput PROC ; begin testOutput procedure push edx ; save edx on stack push ecx ; save ecx on stack mov edx,offset prompt ; load edx with address of prompt ; presumably argument to WriteString call WriteString ; invoke WriteString procedure pop ecx ; restore ecx saved above ; in case WriteString modified it pop edx ; restore edx saved above (we have modified it) call ReadString ; invoke ReadString procedure ret ; return from subroutine testOutput ENDP ; end of procedure
İlgili konular
- 1. CKEDITOR.replaceAll özel onaylama işlevleri için sözdizimi nedir?
- 2. ByKey için anlamı nedir (_ ++ _)
- 3. "self" anlamı için arama içinde
- 4. geri arama işlevi anlamı
- 5. PostgreSQL saklı yordamları (işlevleri) için uygun sözdizimi nedir?
- 6. anlamı! Java sözdizimi
- 7. bildirilmesi ++?
- 8. Bir günlük kütüphanesinin anlamı ve amacı nedir?
- 9. Python'da '_' anlamı nedir?
- 10. $ # dizisini önceden artırmanın anlamı nedir?
- 11. qw bildiriminde kolon anlamı nedir?
- 12. Bir işlev prototipinin anlamı nedir?
- 13. Bir yöntem bildiriminde üç noktanın anlamı nedir?
- 14. Ansible bir oynatma kitabında arama ve değiştirme için doğru sözdizimi nedir?
- 15. os.error'un anlamı nedir?
- 16. PHP'de bunun anlamı nedir?
- 17. NfDump Obyt'in anlamı nedir?
- 18. svg anlamı nedir? Svg?
- 19. CV_INSTRUMENT_REGION anlamı nedir()?
- 20. “$ {x %% *}” ifadesinin sh anlamı nedir?
- 21. MySQL'de eq_ref ve ref türlerinin anlamı nedir
- 22. _branch_match_id ifadesinin anlamı nedir?
- 23. OpenSSL'nin EVP anlamı nedir?
- 24. Bu sözdiziminin anlamı nedir?
- 25. Anlamı nedir? #: 3?
- 26. Rspec'in anlamı nedir?
- 27. OpenNLP'deki eğitimler için 'cut-off' ve 'iteration' anlamı nedir?
- 28. sınıfında otomatik arama üye işlevleri
- 29. TypeScript'te geri arama işlevleri için bir tür var mı?
- 30. VarIsEmpty ve VarIsEmptyParam işlevleri arasındaki fark nedir
Jester altında kodunun her satırında amacı nedir, yanıtınız kesinlikle kod örnekleri benim anlayış geliştirilmiş ama 2 Kalan soruları var. İlk kod örneği için, "yedek" dediğinizde, dizideki dizin sayısını belirlemeyi mi kastediyorsunuz? Yani "256 dup (?)", SINTArray'ın 256 dizinine sahip olmasını sağlıyor? Ayrıca, dup'in yanındaki soru işareti, sayı gibi farklı bir karakterle değiştirilirse ne olur? – Proto
Başka bir deyişle, önem verdiğiniz belirli bir değere göre başlatılmamış 256 baytlık bir dizi ayırır. Eğer ilgilenirseniz, elbette bu değeri "?" Yerine verebilirsiniz. – Jester
Oh, şimdi, her bir baytta depolanan değeri başlatmak için parantez içindeki değerin kullanıldığını anlıyorum. Yardımın için teşekkürler Jester. – Proto