मैं QEMU उपयोग करने के लिए एक 86 अतिथि ऑपरेटिंग सिस्टम के निष्पादन के लिए एक स्मृति निशान उत्पन्न करने के लिए करना चाहते हैं।qemu स्मृति संचालन
टीसीजी विकी पेज के अनुसार, क्यूमु लक्ष्य (अतिथि) मेमोरी में लोड/स्टोर उत्पन्न करने के लिए कुछ हद तक सहायक मदद करता है। निर्देशों की यह सूची tcg_gen_qemu_ld8s/u
, tcg_gen_qemu_ld16s/u
, tcg_gen_qemu_ld32s/u
, tcg_gen_qemu_ld64
है। (हम दुकान निर्देश के लिए एक समान सेट है)। मैं लक्ष्य-i386/translate.c फ़ाइल
हालांकि उपरोक्त कार्यों के लिए सभी कॉल्स को फँसाने कर रहा हूँ, मैं अभी भी तरह
cmp ecx, [r12+0x4]
mov r10b, [r13+0x0]
mov byte [rax+0xf0000], 0x0
mov byte [rax+rdx], 0x0
प्रश्न याद आ रही है कुछ निर्देश के लोड/स्टोर:
- क्या कोई अन्य कृपया लोड/स्टोर पॉइंट (प्रत्यक्ष या अप्रत्यक्ष) को इंगित कर सकता है जो मुझे याद आ रही है ??
- क्या qemu अतिथि स्मृति तक पहुंच के लिए एक एकल प्रविष्टि बिंदु फ़ंक्शन प्रदान करता है (जैसे
guest_read()
) जिसे अतिथि स्मृति से सभी भारों का पता लगाने के लिए उपकरण दिया जा सकता है ??? - किसी कृपया एक अच्छा प्रलेखन मैं कहाँ समझ सकें कि किस qemu अतिथि स्मृति के राज्य को बनाए रखता है को इंगित कर सकते हैं ??
पिछले मेल में भ्रामक निर्देशों के लिए दोस्तों को क्षमा करें।
cmp ecx, [r12+0x4]
mov r10b, [r13+0x0]
mov byte [rax+0xf0000], 0x0
mov byte [rax+rdx], 0x0
ऐसा लगता है कि उपरोक्त सभी निर्देश tcg_gen_ld/st
सहायक के साथ कवर हो रहे हैं।
लेकिन अब मैं एक और समस्या पर ठोकर खाई है
मैं शुरू में सोचा था कि अतिथि स्मृति के सभी क्रियाकलापों को translate.c फ़ाइल में सहायक निर्देश के माध्यम से होता है। हालांकि, मैंने पाया कि cmpxcgh8b
और cmpxchg16b
जैसे कुछ निर्देश के लिए सहायक कार्यों वास्तव में अतिथि स्मृति का उपयोग कर रहे हैं।
तो, इसका मतलब यह है वहाँ अतिथि स्मृति को पढ़ने के लिए एक से अधिक प्रवेश द्वारों हैं। कुछ एक कृपया LDQ और STQ निर्देश अतिथि स्मृति का उपयोग करने के लिए अनुवाद किया जाता है कैसे बता सकते हैं ??