मेरे जानकारी here से आ रही है। काम एक प्रोग्राम है जो कोई 20 से अधिक वर्ण में पढ़ता है, अपर केस को उन अक्षरों को बदल देता है, और उसके बाद राजधानियों के रूप में इनपुट प्रिंट लिए पूछता है।मुझे समझ नहीं आता इंटरप्ट 21 उपयोग करने के लिए कैसे, एएच = 0ah
मैं कैसे int21/एएच = 0ah से इनपुट का उपयोग करने की कोई अंदाज़ा नहीं है। मैं वास्तव में एक और सटीक सवाल नहीं पूछ सकता जब तक कि मैं समझता हूं कि ऊपर क्या जोड़ा गया है। क्या कोई समझा सकता है? इसके अलावा, अगर मैं कोई फर्क पड़ता हूं तो मैं टीएएसएम का उपयोग कर रहा हूं। इसके अलावा, मैं इसे स्वतंत्रता पर परीक्षण कर रहा हूं।
Update1:
ठीक है, आपकी मदद के लिए धन्यवाद, मेरा मानना है कि मैं समझता हूँ कि कैसे बाधा की स्थापना की जरूरत है और व्यवहार करता है।
सेटअप: मैं एक डी एस नामित करने के लिए है: dx जहां मैं इस बफर का अस्तित्व
मैं डी एस सेट करने के लिए करना चाहते हैं: 20 dx (जो पात्रों बफर पकड़ सकता है की अधिकतम संख्या निर्धारित करता है)
मैं डी एस सेट करने के लिए: dx + 1 0
असल int21 फोन/एएच = 0ah, जो डी एस के लिए जाना जाएगा (जो मैं किसी भी तरह में पढ़ने के लिए वर्णों की एक न्यूनतम संख्या निर्धारित लगता है) करने के लिए: dx और प्रीसेट बाइट्स की व्याख्या करें। यह कार्यक्रम को रोकती है, जबकि यह इनपुट के लिए इंतजार कर रहा है
int21/एएच = 0ah डी एस से भर जाएगा: dx + 2 + मेरा इनपुट
(जहां n सहित वर्ण डालने की संख्या '\ आर' है) के साथ nमेरा सवाल अब है, मैं यह कैसे कर सकता हूं। मैंने अभी x86 असेंबली भाषा संदर्भ को फिर से देखा है, लेकिन अभी तक कुछ भी उपयोगी नहीं मिला है।
कोड मैं अब तक
assume cs:code,ds:code
code segment
start:
mov ax,code ;moves code segment into reg AX
mov ds,ax ;makes ds point to code segment
mov ah,0ah
int 21h
mov ax,1234h ;breakpoint
mov ah,9
mov dx,offset message
int 21h
endNow:
;;;;;;;;;;ends program;;;;;;;;;;
mov ah,0 ;terminate program
int 21h ;program ends
message db 'Hello world!!!',13,10,'$'
code ends
end start
फिर यह int21/AH = 1h जैसा व्यवहार करता है जो एक वर्ण में पढ़ता है। मुझे पता है कि उस बाधा ने चरित्र को AL में डाल दिया है। मैं कैसे पता लगाऊंगा कि पात्रों का बफर कहाँ होगा? –
इसके अलावा, मुझे अभी एहसास हुआ। ऑफ़सेट तालिका का अर्थ है कि वास्तविक वर्ण डेटा दो बिट्स या बाइट्स (संभवतः बाइट्स) से शुरू होता है जहां से रिटर्न डेटा स्मृति में मौजूद होता है। विचार? –
हां, वास्तविक इनपुट डीएस: डीएक्स + 2 से शुरू होता है। हालांकि, यह फ़ाइल उस इनपुट को अनदेखा करती है और निष्पादन को रोकने के लिए केवल उस फ़ंक्शन का उपयोग करती है। –