के साथ गलत क्या है, इसलिए मैं एमएस-डॉस के लिए सी ++ में एक गेम लिख रहा हूं और मैं गति के लिए कुछ इनलाइन असेंबली भी शामिल कर रहा हूं। कोड का यह विशेष ब्लॉक वीडियो मेमोरी (0 ए000 एच) में एक स्टार खींच जाएगा। मेरे कोड के साथ समस्या यह है कि यह केवल एक पिक्सेल खींचता है जो भी रंग डीएच पर सेट होता है। जहां तक मुझे mov dx पता है, 00007h dh से 0 और dl को 7 सेट करने के बराबर है। क्या गलत है?मेरे असेंबली कोड
बराबर सी/सी ++ कोड (या कम से कम मेरा इरादा) प्रत्येक पंक्ति के बगल में टिप्पणी की जाती है। मेरा कंपाइलर टर्बो सी ++ 3.0 है। मैं केवल 8086/8088 निर्देशों का उपयोग करने की कोशिश कर रहा हूं।
यह भी मुझे पता है कि एमएस-डॉस कितना पुराना है मुझे एक नए कंपाइलर/ऑपरेटिंग सिस्टम के लिए कोड लिखने के लिए नहीं बताता है। डॉस के लिए कोड लिखना मेरा शौक है।
pixelOffset = x + (y << 6) + (y << 8);
_asm {
mov ax, WORD PTR pixelOffset
mov di, ax
mov ax, 0A000h ;pointer to the video memory
mov es, ax
mov dx, 00007h ;indexed color 00 and 07
mov cx, 0000Fh ;indexed color white 0F
add ax, 2 ;pixelOffset += 2;
mov es:[di], dh ;videomem[pixelOffset] = BLACK;
add ax, 319 ;pixelOffset += 319;
mov es:[di], dh ;videomem[pixelOffset] = BLACK;
add ax, 1 ;pixelOffset += 1;
mov es:[di], dl ;videomem[pixelOffset] = LIGHT_GRAY;
add ax, 1 ;pixelOffset += 1;
mov es:[di], dh ;videomem[pixelOffset] = BLACK;
add ax, 317 ;pixelOffset += 317;
mov es:[di], dh ;videomem[pixelOffset] = BLACK;
add ax, 1 ;pixelOffset += 1;
mov es:[di], dl ;videomem[pixelOffset] = LIGHT_GRAY;
add ax, 1 ;pixelOffset += 1;
mov es:[di], cx ;videomem[pixelOffset] = WHITE;
add ax, 1 ;pixelOffset += 1;
mov es:[di], dl ;videomem[pixelOffset] = LIGHT_GRAY;
add ax, 1 ;pixelOffset += 1;
mov es:[di], dh ;videomem[pixelOffset] = BLACK;
add ax, 317 ;pixelOffset += 317;
mov es:[di], dh ;videomem[pixelOffset] = BLACK;
add ax, 1 ;pixelOffset += 1;
mov es:[di], dl ;videomem[pixelOffset] = LIGHT_GRAY;
add ax, 1 ;pixelOffset += 1;
mov es:[di], dh ;videomem[pixelOffset] = BLACK;
add ax, 319 ;pixelOffset += 319;
mov es:[di], dh ;videomem[pixelOffset] = BLACK;
}
* लिखने * एक ** डॉस ** गेम का उपयोग करने का सुझाव दूंगा? यह बहुत बढ़िया है। एमएस-डॉस गेम नॉस्टल्जीया के लिए –
+1! –
@ जॉन डिबलिंग: हाँ और मैं इसे स्रोत फोर्ज पर रखूंगा जब मैं – PgrAm