विन्यास:3Dh कारणों का प्रयोग केवल वापसी के लिए बीच में "अस्वीकृत acces"
MS-DOS 16 बिट (एक .asm फ़ाइल लेखन में, फिर उन्हें TASM और TLINK साथ संकलन)
विंडोज 7 x64
मैंने असेंबली में एक साधारण कार्यक्रम बनाया है जिसे केवल एक फ़ाइल खोलनी चाहिए और उसे एक टेक्स्ट लिखना चाहिए।
assume cs:code, ds:data
data segment
fileName db "input.txt", 0 ; We assure it is an ASCIIZ(ero) file.
toWrite db "Hello World!", "$"
data ends
code segment
writeToFile:
; pentru functia 3Dh
mov AH, 3Dh
mov AL, 0h
mov dx, offset fileName
int 21h
ret
start_program:
mov ax, data
mov ds, ax
CALL writeToFile
mov ax, 4c00h
int 21h
code ends
end start_program
मैं TurboDebugger इस्तेमाल किया देखने के लिए कि क्या होता है:
यहाँ यह करने के लिए कोड है। अजीब है, यह हमेशा AX
मूल्य 0005
अर्थ Access Denied
सब कुछ मैं ASSEMBLY access denied open file
खोज के लिए इंटरनेट पर मिल सकता है DLL
के बारे में की थी और उस मदद नहीं की में डालता है।
मैंने कुछ भी करने की कोशिश की है, मेरे प्रोग्राम को "व्यवस्थापक के रूप में" डॉसबॉक्स खोलने के लिए पुनरारंभ करने से। अफसोस की बात है, कुछ भी काम नहीं किया और मैं विचारों से बाहर हूं।
यह भी अजीब बात यह है कि मेरे एक दोस्त ने कहा कि अपनी खिड़कियां 10 सक्रिय करने के बाद, सबकुछ ठीक काम करता है।
केवल "पहुंच से वंचित" होने का कारण क्या है? मैं उल्लेख करता हूं कि मैं फ़ाइलों को बनाने, हटाने और बंद करने में सक्षम था, लेकिन मैं उन्हें नहीं खोल सकता।
'एएक्स'' 5' होने का मतलब यह नहीं है कि पहुंच स्वयं ही अस्वीकार कर दी गई है, केवल तभी जब 'सीएफ' त्रुटि को इंगित करने के लिए सेट किया गया हो। अन्यथा यह सिर्फ आपकी फाइल हैंडल है। तो, क्या आपने 'सीएफ' के मूल्य की जांच की है? – Jester
नहीं, क्योंकि अब तक मैंने उन कार्यों के साथ काम किया जिनके लिए 'सीएफ' की आवश्यकता नहीं थी और इसके बारे में भूल गए। हां आप सही हैं! 'सीएफ' 0 है। धन्यवाद। मैं इस पोस्ट को हटा दूंगा। – SnuKies
हालांकि यह एक अच्छी तरह से पूछा गया प्रश्न था (हम बहुत से नहीं देखते हैं), बहुत बुरा यह एक छोटा जवाब है :) – Jester