|
¤³¤ó¤Ð¤ó¤Ï¡£
>¥Ï¥ó¥Ç¥£¥¿¡¼¥ß¥Ê¥ë¤Çºî¤é¤ì¤¿MS-DOS¤ÎC¤òWin98¤ä2000¤Çư¤«¤·¤¿¤¤¤Î¤Ç¤¹¤¬¡¢
>MS-DOS¤ÎC¤ÈWindows¤ÎC¤È¤Ç¤Ï½ñ¤Êý¤¬°ã¤¦¤Èʹ¤¤Þ¤·¤¿¡£
>¸½ºßVC++¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤¤¤ë¤Î¤Ç¤¹¤¬¡¢
>MS-DOS¤ÎC¤òVC++¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤ÆWindows¤Çư¤«¤¹¤³¤È¤Ï
>²Äǽ¤Ê¤ó¤Ç¤·¤ç¤¦¤«¡©
>ÀèÆüC¤ò»Ï¤á¤¿¤Ð¤«¤ê¤Ç±¦¤âº¸¤âʬ¤«¤é¤Ê¤¤½é¿´¼Ô¤Ç¤¹¡£
²Äǽ¤Ç¤¹¤¬¡¢Visual C++¤ò»ÈÍѤ¹¤ëÊýË¡¤Ï½é¿´¼Ô¤ÎÊý¤Ë¤Ï¤ª´«¤á¤Ç¤¤Þ¤»¤ó¡£°ì±þ¡¢»²¹ÍÄøÅÙ¤ËÃí°ÕÅÀÅù¤ò´Êñ¤ËÀâÌÀ¤·¤Æ¤ª¤¤Þ¤¹¡£
MS-DOS¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤òWindows¤Ë°Ü¿¢¤¹¤ë¾ì¹ç¡¢¤¢¤ëÄøÅÙ´·¤ì¤¬É¬ÍפǤ¹¡£¼ê´Ö¤ò³Ý¤±¤¿¤¯¤Ê¤¤¤Î¤Ç¤¢¤ì¤Ð¡¢¤Þ¤º¤Ï16bit¥³¥ó¥Ñ¥¤¥é¤òÆþ¼ê¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¡¢ÌäÂ꤬¤¢¤ë¤è¤¦¤Ê¤é¤Ð16bit¢ª32bit¤Î°Ü¿¢¤ò¹Ô¤¦¡¢¤È¤¤¤¦¼ê½ç¤Ë¤·¤¿Êý¤¬Îɤ¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£
¡ÊMicrosoft¤Î¥³¥ó¥Ñ¥¤¥é¤Ï¡¢¥Ð¡¼¥¸¥ç¥ó¤Î°ã¤¤¤Ç16bit¡¢32bit¤ò¶èÊ̽ÐÍè¤Þ¤¹¡£No.1981¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡Ë
MS-DOS¤Î¥×¥í¥°¥é¥à¤Ï¡¢16bit¤Î¥³¥ó¥Ñ¥¤¥é¤Ç¤½¤Î¤Þ¤Þ¥³¥ó¥Ñ¥¤¥ë¤¹¤ì¤Ð¡¢´ðËÜŪ¤Ë¤ÏWindows¾å¤Ç¤âưºî¤·¤Þ¤¹¡£Windows¤Ç¤Ï¡¢16bit¥³¥ó¥Ñ¥¤¥é¤ÇÀ¸À®¤µ¤ì¤¿¼Â¹Ô¥Õ¥¡¥¤¥ë¤Ï¡¢¥×¥í¥Æ¥¯¥È¥â¡¼¥É¤ÎÇÛ²¼¤Ë¤¢¤ë²¾ÁÛ8086¥â¡¼¥É¤Çưºî¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
Visual C++Åù¤Î32bit¥³¥ó¥Ñ¥¤¥é¤Î¾ì¹ç¤Ï¡¢À¸À®¤µ¤ì¤ë¥³¡¼¥É¤Ï¥×¥í¥Æ¥¯¥È¥â¡¼¥É¤Çưºî¤µ¤»¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢É¸½àÆþ½ÐÎϤä½ã¿è¤Ê¥¢¥ë¥´¥ê¥º¥à°Ê³°¤ÎÉôʬ¡Ê¥Ï¡¼¥É¥¦¥¨¥¢¤òľÀÜÀ©¸æ¤·¤Æ¤¤¤ëÉôʬ¡Ë¤ÎÊѹ¹¤¬É¬Íפˤʤê¤Þ¤¹¡£¤Á¤Ê¤ß¤Ë¥°¥é¥Õ¥£¥Ã¥¯¤â¥Ï¡¼¥É¥¦¥¨¥¢¤òľÀÜÀ©¸æ¤·¤Æ¤¤¤Þ¤¹¡£
¡¦MS-DOS¤Ç¤Ï¡¢¥Ï¡¼¥É¥¦¥¨¥¢¤Ë¶á¤¤½èÍý¤ä¥·¥¹¥Æ¥à¥µ¡¼¥Ó¥¹Åù¤Ïint86¤äoutpÅù¤Î´Ø¿ô¤ò»ÈÍѤ·¤ÆÀ©¸æ¤·¤Þ¤·¤¿¤¬¡¢Windows¤Ç¤Ï¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï¸ºß¤»¤º¡¢¤¹¤Ù¤ÆWin32 API¤ò¸Æ¤Ó½Ð¤¹·Á¤Ë¤Ê¤ê¤Þ¤¹¡£MS-DOS¤Î¥×¥í¥°¥é¥àÆâ¤Ë¸ºß¤¹¤ë³ä¤ê¹þ¤ß½èÍý¤äI/O¥Ý¡¼¥ÈÀ©¸æ¤ò¡¢¤¹¤Ù¤ÆWin32 API¤ËÃÖ¤´¹¤¨¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
¡¦¥¤¥ó¥é¥¤¥ó¥¢¥»¥ó¥Ö¥éÅù¤Ç³ä¤ê¹þ¤ß¤ò¹Ô¤Ã¤Æ¤¤¤ë¾ì¹ç¤â¡¢Æ±ÍͤËWin32 API¤òÍøÍѤ¹¤ë·Á¤ËÃÖ¤´¹¤¨¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¥¤¥ó¥é¥¤¥ó¥¢¥»¥ó¥Ö¥é¤Ç¤Ï¡¢Ê¸Ë¡¤ËÌäÂ꤬¤Ê¤±¤ì¤Ð¥³¥ó¥Ñ¥¤¥ë»þ¤Ë·Ù¹ðÅù¤Î¥³¥ó¥Ñ¥¤¥ë¥¨¥é¡¼¤¬É½¼¨¤µ¤ì¤Þ¤»¤ó¤Î¤Ç¡¢Ãí°Õ¤¬É¬ÍפǤ¹¡£
¥Æ¥¹¥È¡¥
#include <stdio.h>
void SetCursor(int ,int );
void main(void )
{
SetCursor(5,10);
printf("%d\n",Idx);
}
void SetCursor(int Column,int Row)
{
_asm{
mov dl,byte ptr [Row]
mov dh,byte ptr [Column]
xor bh,bh
mov ah,2
int 10h
}
}
¤³¤Î¥Æ¥¹¥È¥×¥í¥°¥é¥à¤Ï¡¢¥«¡¼¥½¥ë°ÌÃÖ¤ò¥Ó¥Ç¥ªBIOS¤Ë¤è¤êÊѹ¹¤¹¤ë¤â¤Î¤Ç¤¹¡£¤³¤Î¥×¥í¥°¥é¥à¤Ï¡¢16bit¥³¥ó¥Ñ¥¤¥é¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤¿¾ì¹ç¤ÏÌäÂê¤Ê¤¯Æ°ºî¤·¤Þ¤¹¡£Visual C++Åù¤Î32bit¥³¥ó¥Ñ¥¤¥é¤Ç¤âÌäÂê¤Ê¤¯¥³¥ó¥Ñ¥¤¥ë½ÐÍè¤Þ¤¹¤¬¡¢³ä¤ê¹þ¤ß½èÍý¤ò¹Ô¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¤ÈAccess Violation¤Ë¤è¤ê¶¯À©½ªÎ»¤·¤Æ¤·¤Þ¤¤¤Þ¤¹¡£
¡¦16bit¥³¥ó¥Ñ¥¤¥é¤Ç¤Ïint·¿¤Ï16bit¤Ç¤¹¤¬¡¢Visual C++¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤¿¤â¤Î¤Ï32bit¤Ë¤Ê¤ê¤Þ¤¹¡£int·¿¤ò16bit¤È¤·¤Æ°·¤Ã¤Æ¤¤¤ëÉôʬ¤¬¤¢¤ë¤Ê¤é¤ÐÃí°Õ¤¬É¬ÍפǤ¹¡£
¡¦32bit¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ï¡¢32bit¤Î¥Õ¥é¥Ã¥È¥¢¥É¥ì¥Ã¥·¥ó¥°¤Ç¤¹¡£16bit¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¤ª¤±¤ë¥»¥°¥á¥ó¥È¤Î¹Í¤¨Êý¤ÏɬÍפ¢¤ê¤Þ¤»¤ó¡£¤½¤Î¤¿¤á¡¢near¡¢farÅù¤Ï»ÈÍѤ¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡Ê¥Ý¥¤¥ó¥¿¤Ï32bit¤Ë¤Ê¤ê¤Þ¤¹¡Ë¡£
|