¡°Î¢»úÔÀíÓë½Ó¿Ú¼¼Êõ¡±Ï°Ìâ½â´ð µÚ1Õ ΢ÐͼÆËã»úϵͳ ¡²Ï°Ìâ1.1¡³¼ò´ðÌâ ¡²½â´ð¡³
¢Ù ´¦ÀíÆ÷ÿ¸öµ¥Î»Ê±¼ä¿ÉÒÔ´¦ÀíµÄ¶þ½øÖÆÊý¾ÝλÊý³Æ¼ÆËã»ú×Ö³¤¡£ ¢Ú ×ÜÏßÐźŷֳÉÈý×飬·Ö±ðÊÇÊý¾Ý×ÜÏß¡¢µØÖ·×ÜÏߺͿØÖÆ×ÜÏß¡£ ¢Û PC»úÖ÷´æ²ÉÓÃDRAM×é³É¡£
¢Ü ¸ßËÙ»º³å´æ´¢Æ÷CacheÊÇ´¦ÀíÆ÷ÓëÖ÷´æÖ®¼äËٶȺܿ쵫ÈÝÁ¿½ÏСµÄ´æ´¢Æ÷¡£ ¢Ý ROM-BIOSÊÇ¡°»ù±¾ÊäÈëÊä³öϵͳ¡±£¬²Ù×÷ϵͳͨ¹ý¶ÔBIOSµÄµ÷ÓÃÇý¶¯¸÷Ó²¼þÉ豸£¬Óû§Ò²¿ÉÒÔÔÚÓ¦ÓóÌÐòÖе÷ÓÃBIOSÖеÄÐí¶à¹¦ÄÜ¡£
¢Þ ÖжÏÊÇCPUÕý³£Ö´ÐгÌÐòµÄÁ÷³Ì±»Ä³ÖÖÔÒò´ò¶Ï¡¢²¢ÔÝʱֹͣ£¬×ªÏòÖ´ÐÐÊÂÏȰ²ÅźõÄÒ»¶Î´¦Àí³ÌÐò£¬´ý¸Ã´¦Àí³ÌÐò½áÊøºóÈÔ·µ»Ø±»ÖжϵÄÖ¸Áî¼ÌÐøÖ´ÐеĹý³Ì¡£ ¢ß Ö÷°åоƬ×éÊÇÖ÷°åµÄºËÐIJ¿¼þ£¬ËüÌṩÖ÷°åÉϵĹؼüÂß¼µç·¡£ ¢à MASMÊÇ΢Èí¿ª·¢µÄºê»ã±à³ÌÐò¡£
¢á Ö¸ÁîµÄ´¦Àí¹ý³Ì¡£´¦ÀíÆ÷µÄ¡°È¡Ö¸¡ªÒëÂ롪ִÐÐÖÜÆÚ¡± ÊÇÖ¸´¦ÀíÆ÷´ÓÖ÷´æ´¢Æ÷¶ÁȡָÁ¼ò³ÆÈ¡Ö¸£©£¬·ÒëÖ¸Áî´úÂëµÄ¹¦ÄÜ£¨¼ò³ÆÒëÂ룩£¬È»ºóÖ´ÐÐÖ¸ÁîËù¹æ¶¨µÄ²Ù×÷£¨¼ò³ÆÖ´ÐУ©µÄ¹ý³Ì¡£ ¢â »úÆ÷ÓïÑԲ㣬¼´Ö¸Á½á¹¹¡£
£¨Ñ§ÉúºÜ¶àÈÏΪÊÇ£º»ã±àÓïÑԲ㡣ǰ4ÕÂÖ÷񻃾¼°»ã±àÓïÑÔ£¬µ«±¾Ê黹ÓкܶദÀíÆ÷ÔÀíµÈÄÚÈÝ£© ¡²Ï°Ìâ1.2¡³ÅжÏÌâ
¢Ù ´í ¢Ú ´í ¢Û ¶Ô ¢Ü ´í ¢Ý ¶Ô ¢Þ ´í ¢ß ´í ¢à ¶Ô ¢á ´í ¢â ´í ¡²
¡²½â´ð¡³
¢Ù Central Processing Unit£¬ÖÐÑë´¦Àíµ¥Ôª£¬´¦ÀíÆ÷ ¢Ú 1MB£¬4GB ¢Û 216£¬64KB
¢Ü EXE£¬COM£¨BATÀÏʦ½²µÄ£© ¢Ý Instruction Set Architecture ¢Þ Ŀ¼
¢ß MMX£¬SSE3 ¢à 64
¢á IBM£¬DOS ¢â PCI
¡²Ï°Ìâ1.4¡³
˵Ã÷΢ÐͼÆËã»úϵͳµÄÓ²¼þ×é³É¼°¸÷²¿·Ö×÷Óᣠ¡²½â´ð¡³
CPU£ºCPUÒ²³Æ´¦ÀíÆ÷£¬ÊÇ΢»úµÄºËÐÄ¡£Ëü²ÉÓôó¹æÄ£¼¯³Éµç·оƬ£¬Ð¾Æ¬ÄÚ¼¯³ÉÁË¿ØÖÆÆ÷¡¢ÔËËãÆ÷ºÍÈô¸É¸ßËÙ´æ´¢µ¥Ôª£¨¼´¼Ä´æÆ÷£©¡£´¦ÀíÆ÷¼°ÆäÖ§³Öµç·¹¹³ÉÁË΢»úϵͳµÄ¿ØÖÆÖÐÐÄ£¬¶ÔϵͳµÄ¸÷¸ö²¿¼þ½øÐÐͳһµÄе÷ºÍ¿ØÖÆ¡£
´æ´¢Æ÷£º´æ´¢Æ÷ÊÇ´æ·Å³ÌÐòºÍÊý¾ÝµÄ²¿¼þ¡£
ÍⲿÉ豸£ºÍⲿÉ豸ÊÇÖ¸¿ÉÓë΢»ú½øÐн»»¥µÄÊäÈ루Input£©É豸ºÍÊä³ö£¨Output£©É豸£¬Ò²³ÆI/OÉ豸¡£I/OÉ豸ͨ¹ýI/O½Ó¿ÚÓëÖ÷»úÁ¬½Ó¡£
×ÜÏߣº»¥Á¬¸÷¸ö²¿¼þµÄ¹²ÓÃͨµÀ£¬Ö÷Òªº¬Êý¾Ý×ÜÏß¡¢µØÖ·×ÜÏߺͿØÖÆ×ÜÏßÐźš£ ¡²Ï°Ìâ1.5¡³
ʲôÊÇͨÓÃ΢´¦ÀíÆ÷¡¢µ¥Æ¬»ú£¨Î¢¿ØÖÆÆ÷£©¡¢DSPоƬ¡¢Ç¶Èëʽϵͳ£¿ ¡²½â´ð¡³
ͨÓÃ΢´¦ÀíÆ÷£ºÊʺϽϹãµÄÓ¦ÓÃÁìÓòµÄ΢´¦ÀíÆ÷£¬ÀýÈç×°ÔÚPC»ú¡¢±Ê¼Ç±¾µçÄÔ¡¢¹¤×÷Õ¾¡¢·þÎñÆ÷ÉϵÄ΢´¦ÀíÆ÷¡£
µ¥Æ¬»ú£ºÊÇָͨ³£ÓÃÓÚ¿ØÖÆÁìÓòµÄ΢´¦ÀíÆ÷оƬ£¬ÆäÄÚ²¿³ýCPUÍ⻹¼¯³ÉÁ˼ÆËã»úµÄÆäËûһЩÖ÷Òª²¿¼þ£¬Ö»ÐèÅäÉÏÉÙÁ¿µÄÍⲿµç·ºÍÉ豸£¬¾Í¿ÉÒÔ¹¹³É¾ßÌåµÄÓ¦ÓÃϵͳ¡£
DSPоƬ£º³ÆÊý×ÖÐźŴ¦ÀíÆ÷£¬Ò²ÊÇÒ»ÖÖ΢¿ØÖÆÆ÷£¬Æä¸üÊʺϴ¦Àí¸ßËÙµÄÊý×ÖÐźţ¬ÄÚ²¿¼¯³ÉÓиßËٳ˷¨Æ÷£¬Äܹ»½øÐпìËٳ˷¨ºÍ¼Ó·¨ÔËËã¡£
ǶÈëʽϵͳ£ºÀûÓÃ΢¿ØÖÆÆ÷¡¢Êý×ÖÐźŴ¦ÀíÆ÷»òͨÓÃ΢´¦ÀíÆ÷£¬½áºÏ¾ßÌåÓ¦Óù¹³ÉµÄ¿ØÖÆÏµÍ³¡£ ¡²Ï°Ìâ1.6¡³
×ÛÊöIntel 80x86ϵÁд¦ÀíÆ÷ÔÚÖ¸Á·½ÃæµÄ·¢Õ¹¡£ ¡²½â´ð¡³
8086µì¶¨ÁË»ù±¾µÄ16λָÁ£¬80286ÌṩÁ˱£»¤·½Ê½µÄ¸÷ÖÖÖ¸Á80386½«Ö¸Áî¼¯È«ÃæÌáÉýΪ32룬80486ÈÚÈëÁ˸¡µãÊý¾Ý´¦ÀíÖ¸Á±¼ÌÚϵÁÐÂ½ÐøÔö¼ÓÁ˶àýÌåÖ¸ÁîMMX¡¢SSE¡¢SSE2ºÍSSE3£¬×îеı¼ÌÚ4´¦ÀíÆ÷»¹Ö§³Ö64λָÁ¡£
ÌâÍâ»°£º´ó¼Ò¿ÉÒÔͨ¹ýÔĶÁÏà¹Ø×ÊÁÏ¡¢²éѯ»¥ÁªÍø»ñµÃ¸ü¼ÓÏêϸµÄ·¢Õ¹Çé¿ö¡£¿ÉÒÔ¿¼ÂÇ×éÖ¯³Éһƪ»ò¶àƪÂÛÎÄ¡£ ¡²Ï°Ìâ1.7¡³
Çø±ðÈçϸÅÄÖú¼Ç·û¡¢»ã±àÓïÑÔ¡¢»ã±àÓïÑÔ³ÌÐòºÍ»ã±à³ÌÐò¡£ ¡²½â´ð¡³
Öú¼Ç·û£ºÈËÃDzÉÓñãÓÚ¼ÇÒä¡¢²¢ÄÜÃèÊöÖ¸ÁÄܵķûºÅÀ´±íʾ»úÆ÷Ö¸Áî²Ù×÷Â룬¸Ã·ûºÅ³ÆÎªÖ¸ÁîÖú¼Ç·û¡£
»ã±àÓïÑÔ£ºÓÃÖú¼Ç·û±íʾµÄÖ¸ÁîÒÔ¼°Ê¹ÓÃËüÃDZàд³ÌÐòµÄ¹æÔò¾ÍÐγɻã±àÓïÑÔ¡£ »ã±àÓïÑÔ³ÌÐò£ºÓûã±àÓïÑÔÊéдµÄ³ÌÐò¾ÍÊÇ»ã±àÓïÑÔ³ÌÐò£¬»ò³Æ»ã±àÓïÑÔÔ´³ÌÐò¡£
»ã±à³ÌÐò£º»ã±àÓïÑÔÔ´³ÌÐòÒª·Òë³É»úÆ÷ÓïÑÔ³ÌÐò²Å¿ÉÒÔÓÉ´¦ÀíÆ÷Ö´ÐС£Õâ¸ö·ÒëµÄ¹ý³Ì³ÆÎª¡°»ã±à¡±£¬Íê³É»ã±à¹¤×÷µÄ³ÌÐò¾ÍÊÇ»ã±à³ÌÐò£¨Assembler£©¡£ ¡²Ï°Ìâ1.8¡³
Çø±ðÈçϸÅÄ·¾¶¡¢¾ø¶Ô·¾¶¡¢Ïà¶Ô·¾¶¡¢µ±Ç°Ä¿Â¼¡£ÏµÍ³´ÅÅÌÉÏ´æÔÚij¸ö¿ÉÖ´ÐÐÎļþ£¬µ«ÔÚDOS»·¾³ÊäÈëÆäÎļþÃûÈ´ÌáʾûÓÐÕâ¸öÎļþ£¬ÊÇʲôÔÒò£¿ ¡²½â´ð¡³
·¾¶£º²Ù×÷ϵͳÒÔĿ¼ÐÎʽ¹ÜÀí´ÅÅÌÉϵÄÎļþ£¬ÎļþËùÔڵķÖÇøºÍĿ¼¾ÍÊǸÃÎļþµÄ·¾¶¡£ ¾ø¶Ô·¾¶£º´Ó¸ùĿ¼µ½ÎļþËùÔÚĿ¼µÄÍêÕû·¾¶³ÆÎª¡°¾ø¶Ô·¾¶¡±¡£ÊDZ£Ö¤ÎļþΨһÐԵıêʾ·½·¨¡£ Ïà¶Ô·¾¶£º´Óϵͳµ±Ç°Ä¿Â¼µ½ÎļþËùÔÚĿ¼µÄ·¾¶³ÆÎªÏà¶Ô·¾¶¡£ µ±Ç°Ä¿Â¼£ºÓû§µ±Ç°ËùÔÚµÄĿ¼¾ÍÊǵ±Ç°Ä¿Â¼¡£
Ö¸Ã÷µÄ·¾¶²»ÕýÈ·£¬»òÕßÖ´ÐÐÁËÁíÍâÒ»¸öͬÃûµÄÎļþ¡£ ¡²Ï°Ìâ1.9¡³
ʲôÊÇĦ¶û¶¨ÂÉ£¿ËüÄÜÓÀ¾Ã³ÉÁ¢Â𣿠¡²½â´ð¡³
ÿ18¸öÔ£¬¼¯³Éµç·µÄÐÔÄܽ«Ìá¸ßÒ»±¶£¬¶øÆä¼Û¸ñ½«½µµÍÒ»°ë¡££¨1965Ä꣬Intel¹«Ë¾µÄ´´Ê¼ÈË֮һĦ¶ûÔ¤ÑÔ£º¼¯³Éµç·Éϵľ§Ìå¹ÜÃܶÈÿÄ꽫·±¶¡£ÏÖÔÚÕâ¸öÔ¤ÑÔͨ³£±í´ïΪ£ºÃ¿¸ô18¸öÔÂ¹èÆ¬Ãܶȣ¨¾§Ìå¹ÜÈÝÁ¿£©½«·±¶£»Ò²³£±»±í´ïΪ£ºÃ¿18¸öÔ£¬¼¯³Éµç·µÄÐÔÄܽ«Ìá¸ßÒ»±¶£¬¶øÆä¼Û¸ñ½«½µµÍÒ»°ë¡££©
²»ÄÜ¡£ÓÉÓÚµç×ÓÆ÷¼þµÄÎïÀí¼«ÏÞÔÚÇÄÈ»±Æ½ü£¬Ä¦¶û¶¨Âɲ»»áÓÀÔ¶³ÖÐø¡£ ¡²Ï°Ìâ1.10¡³
·ë¡¤ÅµÒÀÂü¼ÆËã»úµÄ»ù±¾Éè¼ÆË¼ÏëÊÇʲô£¿ ¡²½â´ð¡³
²ÉÓöþ½øÖÆÐÎʽ±íʾÊý¾ÝºÍÖ¸Áî¡£Ö¸ÁîÓɲÙ×÷ÂëºÍµØÖ·Âë×é³É¡£
½«³ÌÐòºÍÊý¾Ý´æ·ÅÔÚ´æ´¢Æ÷ÖУ¬¼ÆËã»úÔÚ¹¤×÷ʱ´Ó´æ´¢Æ÷È¡³öÖ¸Áî¼ÓÒÔÖ´ÐУ¬×Ô¶¯Íê³É¼ÆËãÈÎÎñ¡£Õâ¾ÍÊÇ¡°´æ´¢³ÌÐò¡±ºÍ¡°³ÌÐò¿ØÖÆ¡±£¨¼ò³Æ´æ´¢³ÌÐò¿ØÖÆ£©µÄ¸ÅÄî¡£
Ö¸ÁîµÄÖ´ÐÐÊÇ˳ÐòµÄ£¬¼´Ò»°ã°´ÕÕÖ¸ÁîÔÚ´æ´¢Æ÷Öдæ·ÅµÄ˳ÐòÖ´ÐУ¬³ÌÐò·ÖÖ§ÓÉ×ªÒÆÖ¸ÁîʵÏÖ¡£ ¼ÆËã»úÓÉ´æ´¢Æ÷¡¢ÔËËãÆ÷¡¢¿ØÖÆÆ÷¡¢ÊäÈëÉ豸ºÍÊä³öÉ豸Îå´ó»ù±¾²¿¼þ×é³É£¬²¢¹æ¶¨ÁË5²¿·ÖµÄ»ù±¾¹¦ÄÜ¡£
¡²Ï°Ìâ1.11¡³
¼ÆËã»úϵͳͨ³£»®·ÖΪÄö²ã´Î£¿ÆÕͨ¼ÆËã»úÓû§ºÍÈí¼þ¿ª·¢ÈËÔ±¶Ô¼ÆËã»úϵͳµÄÈÏʶһÑùÂ𣿠¡²½â´ð¡³
×îÉϲãÊÇÓû§²ã¡£
µÚ5²ãÊǸ߼¶ÓïÑԲ㡣 µÚ4²ãÊÇ»ã±àÓïÑԲ㡣 µÚ3²ãÊDzÙ×÷ϵͳ²ã¡£ µÚ2²ãÊÇ»úÆ÷ÓïÑԲ㡣 µÚ1²ãÊÇ¿ØÖƲ㡣
µÚ0²ãÊÇÊý×ֵ緲㡣
ÆÕͨ¼ÆËã»úÓû§ºÍÈí¼þÈËÔ±¶Ô¼ÆËã»úϵͳµÄÈÏʶ²¢²»Ò»Ñù¡£ÆÕͨ¼ÆËã»úÓû§¿´µ½µÄ¼ÆËã»ú£¬Ò²¾ÍÊÇÎÒÃÇ×îÊìϤµÄ¼ÆËã»ú£¬ÊôÓÚÓû§²ã£¬¶øÈí¼þÈËÔ±¿´µ½µÄÊôÓڸ߼¶ÓïÑÔ²ã»òÊÇ»ã±àÓïÑԲ㡣 ¡²Ï°Ìâ1.12¡³
ʲôÊÇϵÁлúºÍ¼æÈÝ»ú£¿ÄãÔõÑùÀí½â¼ÆËã»úÖеġ°¼æÈÝ¡±ÌØÐÔ£¿ÀýÈ磬Äã¿ÉÒÔÓÃPC»úΪÀý£¬Ì¸Ì¸Äã¶ÔÈí¼þ¼æÈÝ£¨»ò¼æÈÝÐÔ£©µÄÈÏʶ£¬ËµÃ÷ΪʲôPC»ú¾ßÓÐÈç´ËÇ¿´óµÄÉúÃüÁ¦£¿ ¡²½â´ð¡³
ϵÁлúÊÇÖ¸ÔÚÒ»¸ö³§¼ÒÉú²úµÄ¾ßÓÐÏàͬ¼ÆËã»ú½á¹¹£¬µ«¾ßÓв»Í¬×é³ÉºÍʵÏÖµÄһϵÁУ¨Family£©²»Í¬µµ´Î¡¢²»Í¬ÐͺŵĻúÆ÷¡£
¼æÈÝ»úÊÇÖ¸²»Í¬³§¼ÒÉú²úµÄ¾ßÓÐÏàͬ¼ÆËã»ú½á¹¹£¨²»Í¬µÄ×é³ÉºÍʵÏÖ£©µÄ¼ÆËã»ú¡£
¼æÈÝÊÇÒ»¸ö¹ã·ºµÄ¸ÅÄ°üÀ¨Èí¼þ¼æÈÝ¡¢Ó²¼þ¼æÈÝ¡¢ÏµÍ³¼æÈݵȡ£ÆäÖÐÈí¼þ¼æÈÝÊÇָͬһ¸öÈí¼þ¿ÉÒÔ²»¼ÓÐ޸ĵØÔËÐÐÓÚÌåϵ½á¹¹ÏàͬµÄ¸÷µµ»úÆ÷£¬½á¹ûÒ»Ñùµ«ÔËÐÐʱ¼ä¿ÉÄܲ»Í¬¡£Èí¼þ¼æÈݿɴӻúÆ÷ÐÔÄܺÍÍÆ³öʱ¼ä·Ö³ÉÏòÉÏ£¨ÏòÏ£©ºÍÏòǰ£¨Ïòºó£©¼æÈÝ¡£ÀýÈç32λPC»ú¾ÍÂ½ÐøÔö¼ÓÁ˶Ը¡µã´¦ÀíÖ¸Áî¡¢¶àýÌåÖ¸ÁîµÈµÄÖ§³Ö¡£ÔÚ±£Ö¤Ïòºó¼æÈݵÄǰÌáÏ£¬²»¶Ï¸Ä½øÆä×é³ÉºÍʵÏÖ£¬ÑÓÐø¼ÆËã»ú½á¹¹µÄÉúÃü£¬²ÅʹµÃPC»ú¾ßÓÐÈç´ËÇ¿´óµÄÉúÃüÁ¦¡£ ¡²Ï°Ìâ1.13¡³
Ó¢ÌØ¶û¹«Ë¾×îÐÂIntel 80x86´¦ÀíÆ÷ÊÇʲô£¿Çëͨ¹ý²éÔÄÏà¹Ø×ÊÁÏ£¨ÈçÓ¢ÌØ¶û¹«Ë¾ÍøÕ¾£©£¬ËµÃ÷ÆäÖ÷ÒªÌØµãºÍ²ÉÓõÄм¼Êõ¡£ ¡²½â´ð¡³
¿áî£2¶àºË´¦ÀíÆ÷¡£ ¡²Ï°Ìâ1.14¡³
˵Ã÷¸ß¼¶ÓïÑÔ¡¢»ã±àÓïÑÔ¡¢»úÆ÷ÓïÑÔÈýÕßµÄÇø±ð£¬Ì¸Ì¸Äã¶Ô»ã±àÓïÑÔµÄÈÏʶ¡£ ¡²½â´ð¡³
¸ß¼¶ÓïÑÔÓë¾ßÌåµÄ¼ÆËã»úÓ²¼þÎ޹أ¬Æä±í´ï·½Ê½½Ó½üÓÚËùÃèÊöµÄÎÊÌ⣬Ò×ΪÈËÃǽÓÊܺÍÕÆÎÕ£¬Óø߼¶ÓïÑÔ±àд³ÌÐòÒª±ÈµÍ¼¶ÓïÑÔÈÝÒ׵ö࣬²¢´ó´ó¼ò»¯Á˳ÌÐòµÄ±àÖÆºÍµ÷ÊÔ£¬Ê¹±à³ÌЧÂʵõ½´ó·ù¶ÈµÄÌá¸ß¡£¶ø»ã±àÓïÑÔÊÇΪÁ˱ãÓÚÀí½âÓë¼ÇÒ䣬½«»úÆ÷Ö¸ÁîÓÃÖú¼Ç·û´úÌæ¶øÐγɵÄÒ»ÖÖÓïÑÔ¡£»ã±àÓïÑÔµÄÓï¾äͨ³£Óë»úÆ÷Ö¸Áî¶ÔÓ¦£¬Òò´Ë£¬»ã±àÓïÑÔÓë¾ßÌåµÄ¼ÆËã»úÓйأ¬ÊôÓڵͼ¶ÓïÑÔ¡£Ëü±È»úÆ÷ÓïÑÔÖ±¹Û£¬ÈÝÒ×Àí½âºÍ¼ÇÒ䣬Óûã±àÓïÑÔ±àдµÄ³ÌÐòÒ²±È»úÆ÷ÓïÑÔÒ×ÔĶÁ¡¢Ò×ÅÅ´í¡£»úÆ÷ÓïÑÔµÄÿһÌõ»úÆ÷Ö¸Áî¶¼ÊǶþ½øÖÆÐÎʽµÄÖ¸Áî´úÂ룬¼ÆËã»úÓ²¼þ¿ÉÒÔÖ±½Óʶ±ð¡£¸ß¼¶ÓïÑÔ³ÌÐòͨ³£Ò²ÐèÒª·Òë³É»ã±àÓïÑÔ³ÌÐò£¬ÔÙ½øÒ»²½·Òë³É»úÆ÷ÓïÑÔ´úÂë¡£ ¡²Ï°Ìâ1.15¡³
ΪÁ˸üºÃµØ½øÐбà³Ìʵ¼ù£¬Çë½øÈëWindows²Ù×÷ϵͳϵĿØÖÆÌ¨»·¾³£¨»òMS-DOSÄ£Äâ»·¾³£©£¬Á·Ï°³£ÓÃÃüÁî¡£ µÚ2Õ ´¦ÀíÆ÷½á¹¹ ¡²Ï°Ìâ2.1¡³¼ò´ðÌâ ¡²½â´ð¡³
¢Ù ALUÊÇËãÊõÂß¼ÔËËãµ¥Ôª£¬¸ºÔð´¦ÀíÆ÷ËùÄܽøÐеĸ÷ÖÖÔËË㣬Ö÷ÒªÊÇËãÊõÔËËãºÍÂß¼ÔËËã¡£ ¢Ú ȡָÊÇÖ¸´ÓÖ÷´æÈ¡³öÖ¸Áî´úÂëͨ¹ý×ÜÏß´«Êäµ½´¦ÀíÆ÷ÄÚ²¿Ö¸Áî¼Ä´æÆ÷µÄ¹ý³Ì¡£8086·Ö³É×ÜÏß½Ó
¿Úµ¥ÔªºÍÖ¸ÁîÖ´Ðе¥Ôª£¬¿ÉÒÔ¶ÀÁ¢²Ù×÷¡£ÔÚÖ´Ðе¥ÔªÖ´ÐÐÒ»ÌõÖ¸ÁîµÄͬʱ£¬×ÜÏß½Ó¿Úµ¥Ôª¿ÉÒÔ¶ÁÈ¡ÏÂÒ»ÌõÖ¸ÁµÈµ½Ö´ÐÐʱ²»ÐèÒª½øÐÐȡָÁË£¬ËùÒÔ³ÆÎªÔ¤È¡¡£
¢Û Pentium²ÉÓ÷ÖÀëµÄCache½á¹¹£¬Ò»¸öÓÃ×öÖ¸ÁîCache£¬Ò»¸öÓÃ×öÊý¾ÝCache¡£ ¢Ü ¶ÑÕ»µÄ´æÈ¡ÔÔòÊÇÏȽøºó³ö£¨Ò²³ÆÎªºó½øÏȳö£©²Ù×÷·½Ê½´æÈ¡Êý¾Ý¡£
¢Ý ±êÖ¾¼Ä´æÆ÷Ö÷Òª±£´æ·´Ó³Ö¸ÁîÖ´Ðнá¹ûºÍ¿ØÖÆÖ¸ÁîÖ´ÐÐÐÎʽµÄÓйØ×´Ì¬¡£ ¢Þ Ö´ÐÐÁËÒ»Ìõ¼Ó·¨Ö¸Áîºó£¬·¢ÏÖZF£½1£¬±íÃ÷ÔËËã½á¹ûΪ0¡£ ¢ß ûÓС£
¢à »ã±àÓïÑԵıêʶ·û´óСд²»Ãô¸Ð£¬¼´±íʾ×Öĸ´óСд²»Í¬¡¢µ«±íʾͬһ¸ö·ûºÅ¡£ ¢á ²»»á¡£
¢â Ö¸ÁîµÄ²Ù×÷ÊýÐèҪͨ¹ý´æ´¢Æ÷µØÖ·»òI/OµØÖ·£¬²ÅÄܲéÕÒµ½Êý¾Ý±¾Éí£¬¹Ê³ÆÊý¾ÝѰַ·½Ê½¡£ ¡²Ï°Ìâ2.2¡³ÅжÏÌâ
¡²½â´ð¡³
¢Ù ´í ¢Ú ¶Ô ¢Û ¶Ô ¢Ü ¶Ô ¢Ý ´í ¢Þ ¶Ô ¢ß ¶Ô ¢à ´í ¢á ¶Ô ¢â ¶Ô ¡²Ï°Ìâ2.3¡³Ìî¿ÕÌâ
¡²½â´ð¡³
¢Ù 32£¬DX£¬DH ¢Ú 16
¢Û ¶ÎµØÖ·£¬Æ«ÒƵØÖ·£¬EIP£¬IP ¢Ü 00100110£¬0
¢Ý 73C00H£¬73800H
¢Þ EBX£¬ECX£¬ESI£¬EDI£¬EBP£¬ESP ¢ß ʵµØÖ·£¬64KB
¢à ASM£¬Ä¿±êÄ£¿é£¬FLAT
¢á Á¢¼´ÊýѰַ¡¢¼Ä´æÆ÷ѰַºÍ´æ´¢Æ÷Ѱַ ¢â DS£¬SS ¡²Ï°Ìâ2.4¡³
´¦ÀíÆ÷ÄÚ²¿¾ßÓÐÄÄ3¸ö»ù±¾²¿·Ö£¿8086·ÖΪÄÄÁ½´ó¹¦Äܲ¿¼þ£¿Æä¸÷×ÔµÄÖ÷Òª¹¦ÄÜÊÇʲô£¿ ¡²½â´ð¡³
´¦ÀíÆ÷ÄÚ²¿ÓÐALU¡¢¼Ä´æÆ÷ºÍÖ¸Áî´¦ÀíÈý¸ö»ù±¾µ¥Ôª¡£ 8086ÓÐÁ½´ó¹¦Äܲ¿¼þ£º×ÜÏß½Ó¿Úµ¥ÔªºÍÖ´Ðе¥Ôª¡£
×ÜÏß½Ó¿Úµ¥Ôª£º¹ÜÀí×Å8086Óëϵͳ×ÜÏߵĽӿڣ¬¸ºÔð´¦ÀíÆ÷¶Ô´æ´¢Æ÷ºÍÍâÉè½øÐзÃÎÊ¡£8086ËùÓжÔÍâ²Ù×÷±ØÐëͨ¹ýBIUºÍÕâЩ×ÜÏß½øÐС£
Ö´Ðе¥ÔªEU£º¸ºÔðÖ¸ÁîÒëÂë¡¢Êý¾ÝÔËËãºÍÖ¸ÁîÖ´ÐС£ ¡²Ï°Ìâ2.5¡³
8086ÔõÑùʵÏÖÁË×î¼òµ¥µÄÖ¸ÁîÁ÷Ë®Ïߣ¿ ¡²½â´ð¡³
8086ÖУ¬Ö¸ÁîµÄ¶ÁÈ¡ÊÇÔÚBIUµ¥Ôª£¬¶øÖ¸ÁîµÄÖ´ÐÐÊÇÔÚEUµ¥Ôª¡£ÒòΪBIUºÍEUÁ½¸öµ¥ÔªÏ໥¶ÀÁ¢¡¢·Ö±ðÍê³É¸÷×Ô²Ù×÷£¬ËùÒÔ¿ÉÒÔ²¢ÐвÙ×÷¡£Ò²¾ÍÊÇ˵£¬ÔÚEUµ¥Ôª¶ÔÒ»¸öÖ¸Áî½øÐÐÒëÂëÖ´ÐÐʱ£¬BIUµ¥Ôª¿ÉÒÔͬʱ¶ÔºóÐøÖ¸Áî½øÐжÁÈ¡£»Õâ¾ÍÊÇ×î¼òµ¥µÄÖ¸ÁîÁ÷Ë®Ïß¼¼Êõ¡£ ¡²Ï°Ìâ2.6¡³
ʲôÊDZêÖ¾£¿Ê²Ã´ÊÇIA-32´¦ÀíÆ÷µÄ״̬±êÖ¾¡¢¿ØÖƱêÖ¾ºÍϵͳ±êÖ¾£¿ËµÃ÷״̬±êÖ¾ÔÚ±êÖ¾¼Ä´æÆ÷EFLAGSµÄλÖúͺ¬Òå¡£ ¡²½â´ð¡³
±êÖ¾£ºÓÃÓÚ·´Ó³Ö¸ÁîÖ´Ðнá¹û»ò¿ØÖÆÖ¸ÁîÖ´ÐÐÐÎʽµÄÒ»¸ö»ò¶à¸ö¶þ½øÖÆÊýλ¡£ÀýÈ磬ÓÐЩָÁîÖ´Ðкó»áÓ°ÏìÓйرê־λ£»ÓÐЩָÁîµÄÖ´ÐÐÒªÀûÓÃÏà¹Ø±êÖ¾¡£
״̬±êÖ¾£ºÓÃÀ´¼Ç¼³ÌÐòÔËÐнá¹ûµÄ״̬ÐÅÏ¢¡£ ¿ØÖƱêÖ¾£ºDF±êÖ¾£¬¿ØÖÆ×Ö·û´®²Ù×÷µÄµØÖ··½Ïò¡£ ϵͳ±êÖ¾£ºÓÃÓÚ¿ØÖÆ´¦ÀíÆ÷Ö´ÐÐÖ¸ÁîµÄ·½Ê½¡£
״̬±êÖ¾ÔÚ±êÖ¾¼Ä´æÆ÷EFLAGSÖеÄλÖúͺ¬ÒåÈçÏ£º 31 11 10 9 8 7 6 5 4 3 2 1 0 ?? OF SF ZF AF PF CF
¡²Ï°Ìâ2.7¡³
¾ÙÀý˵Ã÷CFºÍOF±êÖ¾µÄ²îÒì¡£ ¡²½â´ð¡³
½øÎ»±êÖ¾CF±íʾÎÞ·ûºÅÊýÔËËã½á¹ûÊÇ·ñ³¬³ö·¶Î§£¬³¬³ö·¶Î§ºó¼ÓÉϽøÎ»»ò½è룬ÔËËã½á¹ûÈÔÈ»ÕýÈ·£»Òç³ö±êÖ¾OF±íʾÓзûºÅÊýÔËËã½á¹ûÊÇ·ñ³¬³ö·¶Î§£¬Èç¹û³¬³ö·¶Î§£¬ÔËËã½á¹ûÒѾ²»ÕýÈ·¡£ Àý1£º3AH £« 7CH£½B6H
ÎÞ·ûºÅÊýÔËË㣺58£«124£½182£¬·¶Î§ÄÚ£¬ÎÞ½øÎ»¡£ ÓзûºÅÊýÔËË㣺58£«124£½182£¬·¶Î§Í⣬ÓÐÒç³ö¡£ Àý2£ºAAH + 7CH£½¢Ù26H
ÎÞ·ûºÅÊýÔËË㣺170£«124£½294£¬·¶Î§Í⣬ÓнøÎ»¡£ ÓзûºÅÊýÔËË㣺£86£«124£½28 £¬·¶Î§ÄÚ£¬ÎÞÒç³ö¡£ ¡²Ï°Ìâ2.8¡³
ʲôÊÇ8086ÖеÄÂß¼µØÖ·ºÍÎïÀíµØÖ·£¿Âß¼µØÖ·ÈçºÎת»»³ÉÎïÀíµØÖ·£¿Ç뽫ÈçÏÂÂß¼µØÖ·ÓÃÎïÀíµØÖ·±í´ï£¨¾ùΪʮÁù½øÖÆÐÎʽ£©£º
¢Ù FFFF¡Ã0 ¢Ú 40¡Ã17 ¢Û 2000¡Ã4500 ¢Ü B821¡Ã4567 ¡²½â´ð¡³
ÎïÀíµØÖ·£ºÔÚ´¦ÀíÆ÷µØÖ·×ÜÏßÉÏÊä³öµÄµØÖ·³ÆÎªÎïÀíµØÖ·¡£Ã¿¸ö´æ´¢µ¥ÔªÓÐÒ»¸öΨһµÄÎïÀíµØÖ·¡£ Âß¼µØÖ·£ºÔÚ´¦ÀíÆ÷ÄÚ²¿¡¢³ÌÐòÔ±±à³Ìʱ²ÉÓÃÂß¼µØÖ·£¬²ÉÓᰶεØÖ·£ºÆ«ÒƵØÖ·¡°ÐÎʽ¡£Ä³¸ö´æ´¢µ¥Ôª¿ÉÒÔÓжà¸öÂß¼µØÖ·£¬¼´´¦ÓÚ²»Í¬ÆðµãµÄÂß¼¶ÎÖУ¬µ«ÆäÎïÀíµØÖ·ÊÇΨһµÄ¡£ Âß¼µØÖ·×ª»»³ÉÎïÀíµØÖ·£ºÂß¼µØÖ·ÓÉ´¦ÀíÆ÷ÔÚÊä³ö֮ǰת»»ÎªÎïÀíµØÖ·¡£½«Âß¼µØÖ·ÖеĶεØÖ·×óÒÆ¶þ½øÖÆ4루¶ÔÓ¦16½øÖÆÊÇһ룬¼´³ËÒÔ16£©£¬¼ÓÉÏÆ«ÒƵØÖ·¾ÍµÃµ½20λÎïÀíµØÖ·¡£ ¢Ù FFFFH:0£½FFFF0H ¢Ú 40H:17H£½00417H
¢Û 2000H:4500H£½24500H ¢Ü B821H:4567H£½BC777H ¡²Ï°Ìâ2.9¡³
IA-32´¦ÀíÆ÷ÓÐÄÄÈýÀà»ù±¾¶Î£¬¸÷ÊÇʲôÓÃ;£¿ ¡²½â´ð¡³
IA-32´¦ÀíÆ÷ÓдúÂë¶Î¡¢Êý¾Ý¶Î¡¢¶ÑÕ»¶ÎÈýÀà»ù±¾¶Î¡£
´úÂë¶Î£º´æ·Å³ÌÐòµÄÖ¸Áî´úÂë¡£³ÌÐòµÄÖ¸Áî´úÂë±ØÐë°²ÅÅÔÚ´úÂë¶Î£¬·ñÔò½«ÎÞ·¨Õý³£Ö´ÐС£
Êý¾Ý¶Î£º´æ·Åµ±Ç°ÔËÐгÌÐòËùÓõÄÊý¾Ý¡£³ÌÐòÖеÄÊý¾ÝĬÈÏÊÇ´æ·ÅÔÚÊý¾Ý¶Î£¬Ò²¿ÉÒÔ´æ·ÅÔÚÆäËûÂß¼¶ÎÖС£
¶ÑÕ»¶Î£ºÖ÷´æÖжÑÕ»ËùÔÚµÄÇøÓò¡£³ÌÐòʹÓõĶÑÕ»Ò»¶¨ÔÚ¶ÑÕ»¶Î¡£ ¡²Ï°Ìâ2.10¡³
ʲôÊÇÆ½Õ¹´æ´¢Ä£ÐÍ¡¢¶Îʽ´æ´¢Ä£ÐͺÍʵµØÖ·´æ´¢Ä£ÐÍ£¿ ¡²½â´ð¡³
ƽչ´æ´¢Ä£ÐÍÏ£¬¶Ô³ÌÐòÀ´Ëµ´æ´¢Æ÷ÊÇÒ»¸öÁ¬ÐøµÄµØÖ·¿Õ¼ä£¬³ÆÎªÏßÐÔµØÖ·¿Õ¼ä¡£³ÌÐòÐèÒªµÄ´úÂë¡¢Êý¾ÝºÍ¶ÑÕ»¶¼°üº¬ÔÚÕâ¸öµØÖ·¿Õ¼äÖС£
¶Îʽ´æ´¢Ä£ÐÍÏ£¬¶Ô³ÌÐòÀ´Ëµ´æ´¢Æ÷ÓÉÒ»×é¶ÀÁ¢µÄµØÖ·¿Õ¼ä×é³É£¬¶ÀÁ¢µÄµØÖ·¿Õ¼ä³ÆÎª¶Î¡£Í¨³££¬´úÂë¡¢Êý¾ÝºÍ¶ÑջλÓÚ·Ö¿ªµÄ¶ÎÖС£
ʵµØÖ·´æ´¢Ä£ÐÍÊÇ8086´¦ÀíÆ÷µÄ´æ´¢Ä£ÐÍ¡£ËüÊǶÎʽ´æ´¢Ä£Ð͵ÄÌØÀý£¬ÆäÏßÐÔµØÖ·¿Õ¼ä×î´óΪ1MB
ÈÝÁ¿£¬ÓÉ×î´óΪ64KBµÄ¶à¸ö¶Î×é³É¡£ ¡²Ï°Ìâ2.11¡³
ʲôÊÇʵµØÖ··½Ê½¡¢±£»¤·½Ê½ºÍÐéÄâ8086·½Ê½£¿ËüÃÇ·Ö±ðʹÓÃʲô´æ´¢Ä£ÐÍ£¿ ¡²½â´ð¡³
ʵµØÖ··½Ê½£ºÓë8086¾ßÓÐÏàͬµÄ»ù±¾½á¹¹£¬Ö»ÄÜѰַ1MBÎïÀí´æ´¢Æ÷¿Õ¼ä£¬Âß¼¶Î×î´ó²»³¬¹ý64KB£»µ«¿ÉÒÔʹÓÃ32λ¼Ä´æÆ÷¡¢32λ²Ù×÷ÊýºÍ32λѰַ·½Ê½£»Ï൱ÓÚ¿ÉÒÔ½øÐÐ32λ´¦ÀíµÄ¿ìËÙ8086¡£ÊµµØÖ·¹¤×÷·½Ê½Ö»ÄÜÖ§³ÖʵµØÖ·´æ´¢Ä£ÐÍ¡£
±£»¤·½Ê½£º¾ßÓÐÇ¿´óµÄ¶Îҳʽ´æ´¢¹ÜÀíºÍÌØÈ¨Óë±£»¤ÄÜÁ¦£¬Ê¹ÓÃÈ«²¿32ÌõµØÖ·×ÜÏߣ¬¿ÉѰַ4GBÎïÀí´æ´¢Æ÷¡£±£»¤·½Ê½Í¨¹ýÃèÊö·ûʵÏֶַδ洢¹ÜÀí£¬Ã¿¸öÂß¼¶Î¿É´ï4GB¡£´¦ÀíÆ÷¹¤×÷ÔÚ±£»¤·½Ê½Ê±£¬¿ÉÒÔʹÓÃÆ½Õ¹»ò¶Îʽ´æ´¢Ä£ÐÍ¡£
ÐéÄâ8086·½Ê½£ºÔÚ±£»¤·½Ê½ÏÂÔËÐеÄÀàËÆÊµ·½Ê½µÄÔËÐл·¾³£¬Ö»ÄÜÔÚ1MB´æ´¢¿Õ¼äÏÂʹÓá°16λ¶Î¡±¡£ ´¦ÀíÆ÷¹¤×÷ÔÚÐéÄâ8086·½Ê½Ê±£¬Ö»ÄÜʹÓÃʵµØÖ·´æ´¢Ä£ÐÍ¡£ ¡²Ï°Ìâ2.12¡³
»ã±àÓï¾äÓÐÄÄÁ½ÖÖ£¬Ã¿¸öÓï¾äÓÉÄÄ4¸ö²¿·Ö×é³É£¿ ¡²½â´ð¡³
»ã±àÓï¾äÓÐÁ½ÖÖ£ºÖ´ÐÐÐÔÓï¾ä£¨´¦ÀíÆ÷Ö¸Á¡¢ËµÃ÷ÐÔÓï¾ä£¨Î±Ö¸Á¡£ ÿ¸öÓï¾äÓУº±êºÅ¡¢Ö¸ÁîÖú¼Ç·û¡¢²Ù×÷Êý»ò²ÎÊý¡¢×¢ÊÍ4¸ö²¿·Ö×é³É¡£ ¡²Ï°Ìâ2.13¡³
»ã±àÓïÑÔ³ÌÐòµÄ¿ª·¢ÓÐÄÄ4¸ö²½Ö裬·Ö±ðÀûÓÃʲô³ÌÐòÍê³É¡¢²úÉúʲôÊä³öÎļþ¡£ ¡²½â´ð¡³
»ã±àÓïÑÔ³ÌÐòµÄ¿ª·¢ÓÐ4¸ö²½Ö裺
±à¼£ºÓÃÎı¾±à¼Æ÷ÐγÉÒ»¸öÒÔASMΪÀ©Õ¹ÃûµÄÔ´³ÌÐòÎļþ¡£ »ã±à£ºÓûã±à³ÌÐò½«ASMÎļþת»»ÎªOBJÄ£¿éÎļþ¡£
Á¬½Ó£ºÓÃÁ¬½Ó³ÌÐò½«Ò»¸ö»ò¶à¸öÄ¿±êÎļþÁ´½Ó³ÉÒ»¸öEXE»òCOM¿ÉÖ´ÐÐÎļþ¡£ µ÷ÊÔ£ºÓõ÷ÊÔ³ÌÐòÅųý´íÎó£¬Éú³ÉÕýÈ·µÄ¿ÉÖ´ÐÐÎļþ¡£ ¡²Ï°Ìâ2.14¡³
MASM»ã±àÓïÑÔÖУ¬ÏÂÃæÄÄЩÊdzÌÐòÔ±¿ÉÒÔʹÓõÄÕýÈ·µÄ±êʶ·û¡£ FFH£¬DS£¬0xvab£¬Again£¬next£¬@data£¬h_ascii£¬6364b£¬.exit£¬small ¡²½â´ð¡³
FFH£¬Again£¬next£¬h_ascii ¡²Ï°Ìâ2.15¡³
¸ø³öIA-32´¦ÀíÆ÷µÄ32λѰַ·½Ê½ºÍ16λѰַ·½Ê½µÄ×é³É¹«Ê½£¬²¢ËµÃ÷¸÷²¿·Ö×÷Óᣠ¡²½â´ð¡³
¢Ù 32λ´æ´¢Æ÷Ѱַ·½Ê½µÄ×é³É¹«Ê½
32λÓÐЧµØÖ· £½ »ùÖ·¼Ä´æÆ÷£«£¨±äÖ·¼Ä´æÆ÷¡Á±ÈÀý£©£«Î»ÒÆÁ¿ ÆäÖеÄ4¸ö×é³É²¿·ÖÊÇ£º
¡¤»ùÖ·¼Ä´æÆ÷ÈκÎ8¸ö32λͨÓüĴæÆ÷Ö®Ò»£»
¡¤±äÖ·¼Ä´æÆ÷³ýESPÖ®ÍâµÄÈκÎ32λͨÓüĴæÆ÷Ö®Ò»£»
¡¤±ÈÀý¿ÉÒÔÊÇ1£¬2£¬4»ò8£¨ÒòΪ²Ù×÷ÊýµÄ³¤¶È¿ÉÒÔÊÇ1£¬2£¬4»ò8×Ö½Ú£©£» ¡¤Î»ÒÆÁ¿¿ÉÒÔÊÇ8»ò32λÓзûºÅÖµ¡£ ¢Ú 16λ´æ´¢Æ÷Ѱַ·½Ê½µÄ×é³É¹«Ê½
16λÓÐЧµØÖ· £½ »ùÖ·¼Ä´æÆ÷£«±äÖ·¼Ä´æÆ÷£«Î»ÒÆÁ¿
ÆäÖлùÖ·¼Ä´æÆ÷Ö»ÄÜÊÇBX»òBP£¬±äÖ·¼Ä´æÆ÷Ö»ÄÜÊÇSI»òDI£¬Î»ÒÆÁ¿ÊÇ8»ò16λÓзûºÅÖµ¡£ ¡²Ï°Ìâ2.16¡³
˵Ã÷ÏÂÁÐÖ¸ÁîÖÐÔ´²Ù×÷ÊýµÄѰַ·½Ê½£¿¼ÙÉèVARDÊÇÒ»¸öË«×Ö±äÁ¿¡£ £¨1£©mov edx,1234h £¨2£©mov edx,vard £¨3£©mov edx,ebx
£¨4£©mov edx,[ebx]
£¨5£©mov edx,[ebx+1234h] £¨6£©mov edx,vard[ebx] £¨7£©mov edx,[ebx+edi]
£¨8£©mov edx,[ebx+edi+1234h] £¨9£©mov edx,vard[esi+edi] £¨10£©mov edx,[ebp*4] ¡²½â´ð¡³ ¢Ù Á¢¼´Êý ¢Ú Ö±½Ó ¢Û ¼Ä´æÆ÷
¢Ü ¼Ä´æÆ÷¼ä½Ó ¢Ý ¼Ä´æÆ÷Ïà¶Ô ¢Þ ¼Ä´æÆ÷Ïà¶Ô ¢ß »ùÖ·±äÖ·
¢à Ïà¶Ô»ùÖ·±äÖ· ¢á Ïà¶Ô»ùÖ·±äÖ· ¢â ´ø±ÈÀýѰַ ¡²Ï°Ìâ2.17¡³
ʹÓñ¾ÊéÅäÌ×µÄÈí¼þ°ü£¨»òÕß°´ÕÕ±¾Êé˵Ã÷£©´´½¨MASM¿ª·¢»·¾³£¬Í¨¹ý±à¼ÀýÌâ2-1ºÍÀýÌâ2-2³ÌÐò¡¢»ã±àÁ¬½ÓÉú³É¿ÉÖ´ÐгÌÐòºÍÁбíÎļþ£¬ÕÆÎÕ»ã±àÓïÑԵĿª·¢¡£ µÚ3Õ Êý¾Ý´¦Àí ¡²Ï°Ìâ3.1¡³¼ò´ðÌâ ¡²½â´ð¡³
¢Ù ûÓС£Ê¹Óöþ½øÖÆ8λ±í´ïÎÞ·ûºÅÕûÊý£¬257ûÓжÔÓ¦µÄ±àÂë¡£ ¢Ú ×Ö·û¡°'F'¡±µÄASCIIÂë¾ÍÊÇÊýÖµ46H£¬ËùÒÔûÓÐÇø±ð¡£
¢Û »ã±à³ÌÐòÔÚ»ã±à¹ý³ÌÖжÔÊýÖµ±í´ïʽ¼ÆË㣬µÃµ½Ò»¸öÈ·¶¨µÄÊýÖµ£¬¹Ê³ÆÊýÖµ±í´ïʽΪ³£Á¿¡£ ¢Ü ²»ÄÜ¡£ÊýÖµ500´óÓÚÒ»¸ö×Ö½ÚËùÄܱí´ïµÄÊý¾ÝÁ¿£¬ËùÒÔ²»ÄÜΪ×Ö½Ú±äÁ¿¸³Öµ¡£ ¢Ý Ô´¡¢Ä¿±ê¼Ä´æÆ÷λÊý²»Í¬£¬²»ÄÜÓøÃÖ¸Áî½øÐÐÊý¾Ý½»»»¡£ ¢Þ ǰÕßÔÚÖ¸ÁîÖ´ÐÐʱ»ñµÃÆ«ÒÆµØÖ·£¬ÊÇÕýÈ·µÄ£»µ«ºóÕßµÄOFFSETÖ»ÄÜÔÚ»ã±à½×¶Î»ñµÃÆ«ÒÆµØÖ·£¬µ«´Ëʱ¼Ä´æÆ÷ÄÚÈÝÊDz»¿ÉÖªµÄ£¬ËùÒÔÎÞ·¨»ñµÃÆ«ÒÆµØÖ·¡£
¢ß INC£¬DEC£¬NEGºÍNOTÖ¸ÁîµÄ²Ù×÷Êý¼ÈÊÇÔ´²Ù×÷ÊýÒ²ÊÇÄ¿µÄ²Ù×÷Êý¡£ ¢à ´óСд×Öĸת»»ÀûÓÃËüÃǵÄASCIIÂëÏà²î20H¡£ ¢á ¼Ó¼õ·¨²»Çø±ðÎÞ·ûºÅÊýºÍÓзûºÅÊý£¬µ«¸ù¾ÝÔËËã½á¹û·Ö±ðÉèÖñêÖ¾¼Ä´æÆ÷µÄCFºÍOF±êÖ¾£¬¿ÉÀûÓÃCFºÍOF½øÐÐÇø±ð¡£
¢â Âß¼ÓëÔËËã¹æÔòÀàËÆ¶þ½øÖƵij˷¨£¬ËùÒÔ³ÆÆäΪÂß¼³Ë¡£ ¡²Ï°Ìâ3.2¡³ÅжÏÌâ
¡²½â´ð¡³
¢Ù ¶Ô ¢Ú ¶Ô ¢Û ¶Ô ¢Ü ´í ¢Ý ´í ¢Þ ¶Ô ¢ß ´í ¢à ´í ¢á ¶Ô ¢â ¶Ô ¡²Ï°Ìâ3.3¡³Ìî¿ÕÌâ ¡²½â´ð¡³
¢Ù BYTE£¬OFFSET ¢Ú 97£¬61£¬Ð¡Ð´×Öĸa ¢Û 0DH£¨13£©£¬0AH£¨10£© ¢Ü 8843H
¢Ý DWORD£¬4£¬WORD PTR XYZ
¢Þ 3
¢ß 78894111 ¢à 0£¬0£¬0
¢á 0123456788765432H£¬83H ¢â 4
¡²Ï°Ìâ3.4¡³
ÏÂÁÐÊ®Áù½øÖÆÊý±íʾÎÞ·ûºÅÕûÊý£¬Çëת»»ÎªÊ®½øÖÆÐÎʽµÄÕæÖµ£º ¢Ù FFH ¢Ú 0H ¢Û 5EH ¢Ü EFH ¡²½â´ð¡³ ¢Ù 255 ¢Ú 0 ¢Û 94 ¢Ü 239
¡²Ï°Ìâ3.5¡³
½«ÏÂÁÐÊ®½øÖÆÊýÕæÖµ×ª»»ÎªÑ¹ËõBCDÂ룺 ¢Ù 12 ¢Ú 24 ¢Û 68 ¢Ü 99 ¡²½â´ð¡³ ¢Ù 12H ¢Ú 24H ¢Û 68H ¢Ü 99H
¡²Ï°Ìâ3.6¡³
½«ÏÂÁÐѹËõBCDÂëת»»ÎªÊ®½øÖÆÊý£º
¢Ù 10010001 ¢Ú 10001001 ¢Û 00110110 ¢Ü 10010000 ¡²½â´ð¡³ ¢Ù 91 ¢Ú 89 ¢Û 36 ¢Ü 90
¡²Ï°Ìâ3.7¡³
½«ÏÂÁÐÊ®½øÖÆÊýÓÃ8λ¶þ½øÖƲ¹Âë±íʾ£º ¢Ù 0 ¢Ú 127 ¢Û£127 ¢Ü £57 ¡²½â´ð¡³ ¢Ù 00000000 ¢Ú 01111111 ¢Û 10000001 ¢Ü 11000111 ¡²Ï°Ìâ3.8¡³
½øÐÐÊ®Áù½øÖÆÊý¾ÝµÄ¼Ó¼õÔËË㣬²¢ËµÃ÷ÊÇ·ñÓнøÎ»»ò½èλ£º ¢Ù 1234H£«7802H ¢Ú F034H£«5AB0H ¢Û C051H£1234H ¢Ü 9876H£ABCDH ¡²½â´ð¡³
¢Ù 1234H£«7802H£½8A36H£¬ÎÞ½øÎ» ¢Ú F034H£«5AB0H£½4AF4H£¬ÓнøÎ» ¢Û C051H£1234H£½BE1DH£¬ÎÞ½èλ ¢Ü 9876H£ABCDH£½ECA9H£¬Óнèλ
¡²Ï°Ìâ3.9¡³
ÊýÂë0¡«9¡¢´óд×ÖĸA¡«Z¡¢Ð¡Ð´×Öĸa¡«z¶ÔÓ¦µÄASCIIÂë·Ö±ðÊǶàÉÙ£¿ASCIIÂë0DHºÍ0AH·Ö±ð¶ÔӦʲô×Ö·û£¿ ¡²½â´ð¡³
ÊýÂë0¡«9¶ÔÓ¦µÄASCIIÂëÒÀ´ÎÊÇ30H¡«39H¡£
´óд×ÖĸA¡«Z¶ÔÓ¦µÄASCIIÂëÒÀ´ÎÊÇ£º41H¡«5AH¡£ Сд×Öĸa¡«z¶ÔÓ¦µÄASCIIÂëÒÀ´ÎÊÇ£º61¡«7AH¡£ ASCIIÂë0DHºÍ0AH·Ö±ð¶ÔÓ¦µÄÊǻسµºÍ»»ÐÐ×Ö·û¡£ ¡²Ï°Ìâ3.10¡³
ÉèÖÃÒ»¸öÊý¾Ý¶Î£¬°´ÕÕÈçÏÂÒªÇó¶¨Òå±äÁ¿»ò·ûºÅ³£Á¿£º ¢Ù my1bΪ×Ö·û´®±äÁ¿£ºPersonal Computer ¢Ú my2bΪÓÃÊ®½øÖÆÊý±íʾµÄ×Ö½Ú±äÁ¿£º20 ¢Û my3bΪÓÃÊ®Áù½øÖÆÊý±íʾµÄ×Ö½Ú±äÁ¿£º20 ¢Ü my4bΪÓöþ½øÖÆÊý±íʾµÄ×Ö½Ú±äÁ¿£º20 ¢Ý my5wΪ20¸öδ¸³ÖµµÄ×Ö±äÁ¿ ¢Þ my6cΪ100µÄ³£Á¿
¢ß my7c±íʾ×Ö·û´®£ºPersonal Computer ¡²½â´ð¡³
my1b byte 'Personal Computer' my2b byte 20 my3b byte 14h
my4b byte 00010100b my5w word 20 dup(?) my6c = 100
my7c equ
¶¨Òå³£Á¿NUM£¬ÆäֵΪ5£»Êý¾Ý¶ÎÖж¨Òå×ÖÊý×é±äÁ¿DATALIST£¬ËüµÄÍ·5¸ö×Öµ¥ÔªÖÐÒÀ´Î´æ·Å-10£¬2£¬5ºÍ4£¬×îºó1¸öµ¥Ôª³õÖµ²»¶¨¡£ ¡²½â´ð¡³ num equ 5
datalist byte -10,2,5,4,? ¡²Ï°Ìâ3.12¡³
´ÓµÍµØÖ·¿ªÊ¼ÒÔ×Ö½ÚΪµ¥Î»£¬ÓÃÊ®Áù½øÖÆÐÎʽ¸ø³öÏÂÁÐÓï¾äÒÀ´Î·ÖÅäµÄÊýÖµ£º byte 'ABC',10,10h,'EF',3 dup(-1,?,3 dup(4)) word 10h,-5,3 dup(?) ¡²½â´ð¡³
41 42 43 0A 10 45 46 FF 00 04 04 04 FF 00 04 04 04 FF 00 04 04 04 10 00 FB FF 00 00 00 00 00 00 ¡²Ï°Ìâ3.13¡³
ÉèÔÚij¸ö³ÌÐòÖÐÓÐÈçÏÂÆ¬¶Î£¬Çëд³öÿÌõ´«ËÍÖ¸ÁîÖ´Ðкó¼Ä´æÆ÷EAXµÄÄÚÈÝ£º ; Êý¾Ý¶Î org 100h
varw word 1234h,5678h varb byte 3,4 vard dword 12345678h buff byte 10 dup(?) mess byte 'hello' ; ´úÂë¶Î
mov eax,offset mess mov eax,type buff+type mess+type vard mov eax,sizeof varw+sizeof buff+sizeof mess mov eax,lengthof varw+lengthof vard ¡²½â´ð¡³
¢Ù EAX£½0114H ¢Ú EAX£½0006H ¢Û EAX£½0013H ¢Ü EAX£½0003H ¡²Ï°Ìâ3.14¡³
°´ÕÕÈçÏÂÊä³ö¸ñʽ£¬ÔÚÆÁÄ»ÉÏÏÔʾASCII±í£º | 0 1 2 3 4 5 6 7 8 9 A B C D E F ---+-------------------------------- 20 | ! ¡° # ... 30 | 0 1 2 3 ... 40 | @ A B C ... 50 | P Q R S ... 60 | ¡® a b c ... 70 | p q r s ...
±í¸ñ×îÉÏÒ»ÐеÄÊý×ÖÊǶÔÓ¦ÁÐASCII´úÂëÖµµÄµÍ4루ÓÃÊ®Áù½øÖÆÐÎʽ£©£¬¶ø±í¸ñ×ó±ßµÄÊý×Ö¶ÔÓ¦ÐÐASCII´úÂëÖµµÄ¸ß4루ÓÃÊ®Áù½øÖÆÐÎʽ£©¡£±à³ÌÔÚÊý¾Ý¶ÎÖ±½Ó¹¹ÔìÕâÑùµÄ±í¸ñ¡¢ÌîдÏàÓ¦ASCII´úÂëÖµ£¨²»ÊÇ×Ö·û±¾Éí£©£¬È»ºóʹÓÃ×Ö·û´®ÏÔʾ×Ó³ÌÐòDISPMSGʵÏÖÏÔʾ¡£ ¡²½â´ð¡³ include io32.inc .data
table byte ' |0 1 2 3 4 5 6 7 8 9 A B C D E F',13,10 byte '---+-------------------------------',13,10 byte '20 |',20h,20h,21h,20h,22h,20h,23h,20h,24h,20h,25h,20h,26h,20h,27h,20h,28h,20h,29h,20h byte 2ah,20h,2bh,20h,2ch,20h,2dh,20h,2eh,20h,2fh,20h,13,10 byte '30 |',30h,20h,31h,20h,32h,20h,33h,20h,34h,20h,35h,20h,36h,20h,37h,20h,38h,20h,39h,20h byte 3ah,20h,3bh,20h,3ch,20h,3dh,20h,3eh,20h,3fh,20h,13,10 byte '40 |',40h,20h,41h,20h,42h,20h,43h,20h,44h,20h,45h,20h,46h,20h,47h,20h,48h,20h,49h,20h byte 4ah,20h,4bh,20h,4ch,20h,4dh,20h,4eh,20h,4fh,20h,13,10 byte '50 |',50h,20h,51h,20h,52h,20h,53h,20h,54h,20h,55h,20h,56h,20h,57h,20h,58h,20h,59h,20h byte 5ah,20h,5bh,20h,5ch,20h,5dh,20h,5eh,20h,5fh,20h,13,10 byte '60 |',60h,20h,61h,20h,62h,20h,63h,20h,64h,20h,65h,20h,66h,20h,67h,20h,68h,20h,69h,20h byte 6ah,20h,6bh,20h,6ch,20h,6dh,20h,6eh,20h,6fh,20h,13,10 byte '70 |',70h,20h,71h,20h,72h,20h,73h,20h,74h,20h,75h,20h,76h,20h,77h,20h,78h,20h,79h,20h byte 7ah,20h,7bh,20h,7ch,20h,7dh,20h,7eh,20h,7fh,20h,13,10 byte 0 .code start: mov eax,offset table call dispmsg exit 0 end start ¡²Ï°Ìâ3.15¡³
Êý¾Ý¶ÎÓÐÈç϶¨Ò壬IA-32´¦ÀíÆ÷½«ÒÔС¶Ë·½Ê½±£´æÔÚÖ÷´æ£º
var dword 12345678h
ÏÖÒÔ×Ö½ÚΪµ¥Î»°´µØÖ·´ÓµÍµ½¸ßµÄ˳Ðò£¬Ð´³öÕâ¸ö±äÁ¿ÄÚÈÝ¡£²¢ËµÃ÷ÈçÏÂÖ¸ÁîµÄÖ´Ðнá¹û£º mov eax,var ; EAX£½__________ mov bx,var ; BX£½__________ mov cx,var+2 ; CX£½__________ mov dl,var ; DL£½__________ mov dh,var+3 ; DH£½__________
¿ÉÒÔ±à³ÌʹÓÃÊ®Áù½øÖÆ×Ö½ÚÏÔʾ×Ó³ÌÐòDSIPHB˳ÐòÏÔʾ¸÷¸ö×Ö½Ú½øÐÐÑéÖ¤£¬»¹¿ÉÒÔʹÓÃÊ®Áù½øÖÆË«×ÖÏÔʾ×Ó³ÌÐòDSIPHDÏÔʾ¸ÃÊý¾Ý½øÐжԱȡ£ ¡²½â´ð¡³
С¶Ë·½Ê½²ÉÓᰵͶԵ͡¢¸ß¶Ô¸ß¡±£¬¼´µÍ×Ö½ÚÊý¾Ý´æ·ÅÔڵ͵ØÖ·´æ´¢µ¥Ôª¡¢¸ß×Ö½ÚÊý¾Ý´æ·ÅÔڸߵØÖ·´æ´¢µ¥Ôª¡£ÒÔ×Ö½ÚΪµ¥Î»°´µØÖ·´ÓµÍµ½¸ßµÄ˳Ðò£¬var±äÁ¿µÄÄÚÈÝ£º78H¡¢56H¡¢34H¡¢12H¡£ ; EAX£½12345678H ; BX£½5678H ; CX£½1234H ; DL£½78H ; DH£½12H ¡²Ï°Ìâ3.16¡³
ʹÓÃÈô¸ÉMOVÖ¸ÁîʵÏÖ½»»¥Ö¸Áî¡°XCHG EBX,[EDI]¡±¹¦ÄÜ¡£ ¡²½â´ð¡³ push eax ; ¿ÉÒÔûÓÐ mov eax,ebx mov ebx,[edi] mov [edi],eax pop eax ; ¿ÉÒÔûÓÐ ¡²Ï°Ìâ3.17¡³
¼ÙÉ赱ǰESP£½0012FFB0H£¬ËµÃ÷ÏÂÃæÃ¿ÌõÖ¸Áîºó£¬ESPµÈÓÚ¶àÉÙ£¿ push eax push dx push dword ptr 0f79h pop eax pop word ptr [bx] pop ebx ¡²½â´ð¡³
ESP£½0012FFACH ESP£½0012FFAAH ESP£½0012FFA6H ESP£½0012FFAAH ESP£½0012FFACH ESP£½0012FFB0H ¡²Ï°Ìâ3.18¡³
ÒÑÖªÊý×Ö0¡«9¶ÔÓ¦µÄ¸ñÀ×ÂëÒÀ´ÎΪ£º18H¡¢34H¡¢05H¡¢06H¡¢09H¡¢0AH¡¢0CH¡¢11H¡¢12H¡¢14H£»ÇëΪÈçϳÌÐòµÄÿÌõÖ¸Áî¼ÓÉÏ×¢ÊÍ£¬ËµÃ÷ÿÌõÖ¸ÁîµÄ¹¦ÄܺÍÖ´Ðнá¹û¡£ ; Êý¾Ý¶Î
table byte 18h,34h,05h,06h,09h,0ah,0ch,11h,12h,14h ; ´úÂë¶Î mov ebx,offset table mov al,8
xlat
ΪÁËÑéÖ¤ÄãµÄÅжϣ¬²»·ÁʹÓñ¾ÊéµÄI/O×Ó³ÌÐò¿âÌṩµÄ×Ó³ÌÐòDISPHBÏÔʾ»»ÂëºóALµÄÖµ¡£Èç¹û²»Ê¹ÓÃXLATÖ¸ÁӦÈçºÎÐ޸ģ¿ ¡²½â´ð¡³ ; Êý¾Ý¶Î
table byte 18h,34h,05h,06h,09h,0ah,0ch,11h,12h,14h ; ¶¨Òå¸ñÀ×Âë±í ; ´úÂë¶Î mov ebx,offset table ; EBX£½¸ñÀ×Âë±íÊ×µØÖ· mov al,8 ; AL£½8 xlat ; AL£½12H£¨8µÄ¸ñÀ×Â룩 ²»Ê¹ÓÃXLATÖ¸Á mov ebx,offset table ; EBX£½¸ñÀ×Âë±íÊ×µØÖ· mov eax,0 mov al,8 ; AL£½8 mov al,[eax+ebx] ; AL£½12H£¨8µÄ¸ñÀ×Â룩 ¡²Ï°Ìâ3.19¡³
Çë·Ö±ðÓÃÒ»Ìõ»ã±àÓïÑÔÖ¸ÁîÍê³ÉÈçϹ¦ÄÜ£º
£¨1£©°ÑEBX¼Ä´æÆ÷ºÍEDX¼Ä´æÆ÷µÄÄÚÈÝÏà¼Ó£¬½á¹û´æÈëEDX¼Ä´æÆ÷¡£
£¨2£©ÓüĴæÆ÷EBXºÍESIµÄ»ùÖ·±äַѰַ·½Ê½°Ñ´æ´¢Æ÷µÄÒ»¸ö×Ö½ÚÓëAL¼Ä´æÆ÷µÄÄÚÈÝÏà¼Ó£¬²¢°Ñ½á¹ûË͵½ALÖС£
£¨3£©ÓÃEBXºÍÎ»ÒÆÁ¿0B2HµÄ¼Ä´æÆ÷Ïà¶ÔѰַ·½Ê½°Ñ´æ´¢Æ÷ÖеÄÒ»¸öË«×ÖºÍECX¼Ä´æÆ÷µÄÄÚÈÝÏà¼Ó£¬²¢°Ñ½á¹ûËͻش洢Æ÷ÖС£
£¨4£©½«32λ±äÁ¿VARDÓëÊý3412HÏà¼Ó£¬²¢°Ñ½á¹ûËͻظô洢µ¥ÔªÖС£ £¨5£©°ÑÊý0A0HÓëEAX¼Ä´æÆ÷µÄÄÚÈÝÏà¼Ó£¬²¢°Ñ½á¹ûËÍ»ØEAXÖС£ ¡²½â´ð¡³ ¢Ù add edx,ebx ¢Ú add al,[ebx+esi] ¢Û add [bx+0b2h],cx ¢Ü add varw,3412h ¢Ý add eax,0a0h ¡²Ï°Ìâ3.20¡³
·Ö±ðÖ´ÐÐÈçϳÌÐòƬ¶Ï£¬ËµÃ÷ÿÌõÖ¸ÁîµÄÖ´Ðнá¹û£º £¨
¡²½â´ð¡³ £¨1£© ; EAX£½80H ; EAX£½83H£¬CF£½0£¬SF£½0 ; EAX£½103H£¬CF£½0£¬OF£½0 ; EAX£½106H£¬CF£½0£¬ZF£½0 £¨2£© ; EAX£½100 ; EAX£½300£¬CF£½0 £¨3£© ; EAX£½100 ; EAX£½44£¬CF£½1£¨°üº¬256µÄ½øÎ»º¬Ò壺256£«44£½300£© £¨4£© mov al,7fh ; AL£½7FH sub al,8 ; AL£½77H£¬CF£½0£¬SF£½0
sub al,80h ; AL£½F7H£¬CF£½1£¬OF£½1 sbb al,3 ; AL£½F3H£¬CF£½0£¬ZF£½0 ¡²Ï°Ìâ3.21¡³
¸ø³öÏÂÁи÷ÌõÖ¸ÁîÖ´ÐкóALÖµ£¬ÒÔ¼°CF¡¢ZF¡¢SF¡¢OFºÍPFµÄ״̬£º mov al,89h add al,al add al,9dh cmp al,0bch sub al,al dec al inc al ¡²½â´ð¡³ mov al,89h ; AL£½89H CF ZF SF OF PF add al,al ; AL£½12H 1 0 0 1 1 add al,9dh ; AL£½0AFH 0 0 1 0 1 cmp al,0bch ; AL£½0AFH 1 0 1 0 1 sub al,al ; AL£½00H 0 1 0 0 1 dec al ; AL£½0FFH 0 0 1 0 1 inc al ; AL£½00H 0 1 0 0 1 ¡²Ï°Ìâ3.22¡³
ÓÐÁ½¸ö64λÎÞ·ûºÅÕûÊý´æ·ÅÔÚ±äÁ¿buffer1ºÍbuffer2ÖУ¬¶¨ÒåÊý¾Ý¡¢±àд´úÂëÍê³ÉEDX.EAX¡ûbuffer1£buffer2¹¦ÄÜ¡£ ¡²½â´ð¡³ ; Êý¾Ý¶Î
buffer1 qword 67883000h buffer2 qword 67762000h ; ´úÂë¶Î mov eax,dword ptr buffer1 mov edx,dword ptr buffer1+4 sub eax,dword ptr buffer2 sbb edx,dword ptr buffer2+4 ¡²Ï°Ìâ3.23¡³
·Ö±ðÖ´ÐÐÈçϳÌÐòƬ¶Ï£¬ËµÃ÷ÿÌõÖ¸ÁîµÄÖ´Ðнá¹û£º ¡²½â´ð¡³ £¨1£© ; ESI£½9CH ; ESI£½80H ; ESI£½FFH ; ESI£½01H £¨2£© ; EAX£½1010B£¨¿ÉÒÔÓÐǰµ¼0£¬ÏÂͬ£© ; EAX£½0010B£¬CF£½1 ; EAX£½0100B£¬CF£½0 ; EAX£½0000B£¬CF£½0 £¨3£© ; EAX£½1011B£¨¿ÉÒÔÓÐǰµ¼0£¬ÏÂͬ£© ; EAX£½101100B£¬CF£½0 ; EAX£½10110B£¬CF£½0
; EAX£½10111B£¬CF£½0 £¨4£© ; EAX£½0£¬CF£½0£¬OF£½0 ; ZF£½1£¬SF£½0£¬PF£½1 ¡²Ï°Ìâ3.24¡³
3.24 ¸ø³öÏÂÁи÷ÌõÖ¸ÁîÖ´ÐкóAXµÄ½á¹û£¬ÒÔ¼°×´Ì¬±êÖ¾CF¡¢OF¡¢SF¡¢ZF¡¢PFµÄ״̬¡£ mov ax,1470h and ax,ax or ax,ax xor ax,ax not ax test ax,0f0f0h ¡²½â´ð¡³ mov ax,1470h ; AX£½1470H CF OF SF ZF PF and ax,ax ; AX£½1470H 0 0 0 0 0 or ax,ax ; AX£½1470H 0 0 0 0 0 xor ax,ax ; AX£½0000H 0 0 0 1 1 not ax ; AX£½FFFFH 0 0 0 1 1 test ax,0f0f0h ; AX£½0F0F0H 0 0 1 0 1 ¡²Ï°Ìâ3.25¡³
Âß¼ÔËËãÖ¸ÁîÔõôʵÏÖ¸´Î»¡¢ÖÃλºÍÇó·´¹¦ÄÜ£¿ ¡²½â´ð¡³
ANDÖ¸Áîͬ¡°0¡±ÓëʵÏÖ¸´Î»£¬ORÖ¸Áîͬ¡°1¡±»òʵÏÖÖÃ룬XORͬ¡°1¡±Òì»òʵÏÖÇó·´¡£ ¡²Ï°Ìâ3.26¡³
˵Ã÷ÈçϳÌÐò¶ÎµÄ¹¦ÄÜ£º mov ecx,16 mov bx,ax next: shr ax,1 rcr edx,1 shr bx,1 rcr edx,1 loop next mov eax,edx ¡²½â´ð¡³
½«AXµÄÿһλÒÀ´ÎÖØ¸´Ò»´Î£¬ËùµÃµÄ32λ½á¹û±£´æÓÚEAXÖС£ ¡²Ï°Ìâ3.27¡³
±à³Ì½«Ò»¸ö64λÊý¾ÝÂß¼×óÒÆ3룬¼ÙÉèÕâ¸öÊý¾ÝÒѾ±£´æÔÚEDX.EAX¼Ä´æÆ÷¶ÔÖС£ ¡²½â´ð¡³ ; ´úÂë¶Î mov ecx,3 again: shl eax,1 rcl edx,1 loop again ¡²Ï°Ìâ3.28¡³
±à³Ì½«Ò»¸öѹËõBCDÂë±äÁ¿£¨ÀýÈç92H£©×ª»»Îª¶ÔÓ¦µÄASCIIÂ룬Ȼºóµ÷ÓÃDISPC×Ó³ÌÐò£¨ÔÚÊäÈëÊä³ö×Ó³ÌÐò¿âÖУ©ÏÔʾ¡£ ¡²½â´ð¡³ ; Êý¾Ý¶Î
bcd byte 92h ; ´úÂë¶Î mov al,bcd shr al,4 add al,30h call dispc mov al,bcd and al,0fh add al,30h call dispc ¡²Ï°Ìâ3.29¡³
ÒÔMOVSÖ¸ÁîΪÀý£¬ËµÃ÷´®²Ù×÷Ö¸ÁîµÄÑ°Ö·ÌØµã£¬²¢ÓÃMOVºÍADDµÈÖ¸ÁîʵÏÖMOVSDµÄ¹¦ÄÜ£¨¼ÙÉèDF£½0£©¡£ ¡²½â´ð¡³
MOVSÖ¸ÁîµÄ¹¦ÄÜÊÇ£º
ES:[EDI]¡ûDS:[ESI]£»ESI¡ûESI¡À1/2/4£¬EDI¡ûEDI¡À1/2/4 Óɴ˿ɿ´³ö´®²Ù×÷Ö¸ÁîµÄÑ°Ö·ÌØµã£º
Ô´²Ù×÷ÊýÓüĴæÆ÷ESI¼ä½ÓѰַ£¬Ä¬ÈÏÔÚDSÖ¸ÏòµÄÊý¾Ý¶Î£¬µ«¿ÉÒԸı䣻ĿµÄ²Ù×÷ÊýÓüĴæÆ÷EDI¼ä½ÓѰַ£¬Ö»ÄÜÔÚESÖ¸ÏòµÄ¸½¼ÓÊý¾Ý¶Î£»Ã¿Ö´ÐÐÒ»´Î´®²Ù×÷£¬Ô´Ö¸ÕëESIºÍÄ¿µÄÖ¸ÕëEDI½«×Ô¶¯Ð޸ģº¡À1£¨×Ö½Ú£©£¬¡À2£¨×Ö£©»ò¡À4£¨Ë«×Ö£©¡£Ö¸ÕëµÄÔöÁ¿ºÍ¼õÁ¿¿ØÖÆÓÉDF±ê־ȷ¶¨£¬DF£½0£¬½øÐÐÔöÁ¿£»DF£½1£¬½øÐмõÁ¿¡£ push eax mov eax,[esi] mov es:[edi],eax add esi,4 add edi,4 ¡²Ï°Ìâ3.30¡³
˵Ã÷ÈçϳÌÐòÖ´ÐкóµÄÏÔʾ½á¹û£º ; Êý¾Ý¶Î
msg byte 'WELLDONE',0 ; ´úÂë¶Î mov ecx,(lengthof msg)-1 mov ebx,offset msg again: mov al,[ebx] add al,20h mov [ebx],al add ebx,1 loop again mov eax,offset msg call dispmsg
Èç¹û½«ÆäÖÐÓï¾ä¡°mov ebx,offset msg¡±¸ÄΪ¡°xor ebx,ebx¡±£¬ÔòÀûÓÃEBX¼ä½ÓѰַµÄÁ½¸öÓï¾äÈçºÎÐ޸ijÉEBX¼Ä´æÆ÷Ïà¶ÔѰַ£¬¾Í¿ÉÒÔʵÏÖͬÑù¹¦ÄÜ£¿ ¡²½â´ð¡³
ÏÔʾ½á¹û£ºwelldone EBX¼Ä´æÆ÷Ïà¶ÔѰַ£º mov al,msg[ebx] mov msg[ebx],al ¡²Ï°Ìâ3.31¡³
ÏÂÃæ³ÌÐòµÄ¹¦ÄÜÊǽ«Êý×éARRAY1µÄÿ¸öÔªËØ¼Ó¹Ì¶¨Öµ£¨8000H£©£¬½«ºÍ±£´æÔÚÊý×éARRAY2¡£ÔÚ¿Õ°×´¦ÌîÈëÊʵ±µÄÓï¾ä»òÓï¾äµÄÒ»²¿·Ö¡£ ; Êý¾Ý¶Î
array1 dword 1,2,3,4,5,6,7,8,9,10 array2 dword 10 dup(?) ; ´úÂë¶Î mov ecx,lengthof array1 mov ebx,0
again: mov eax,array1[ebx*4] add eax,8000h mov ______________ add ebx,__________ loop again ¡²½â´ð¡³ mov array2[ebx*4],eax add ebx,1 ¡²Ï°Ìâ3.32¡³
ÉÏ»úʵÏÖ±¾ÕµÄÀýÌâ³ÌÐò£¬±à³ÌʵÏÖ±¾ÕµÄϰÌâ³ÌÐò¡£ µÚ4Õ »ã±àÓïÑÔ³ÌÐòÉè¼Æ ¡²Ï°Ìâ4.1¡³¼ò´ðÌâ ¡²½â´ð¡³
¢Ù µ±Í¬Ò»¸ö³ÌÐò±»²Ù×÷ϵͳ°²Åŵ½²»Í¬µÄ´æ´¢ÇøÓòÖ´ÐÐʱ£¬Ö¸Áî¼äµÄÎ»ÒÆÃ»Óиı䣬Ŀ±êµØÖ·²ÉÓÃÏà¶ÔѰַ¿É·½±ã²Ù×÷ϵͳµÄÁé»îµ÷¶È¡£
¢Ú Êý¾ÝͨÐÅʱ£¬Êý¾ÝµÄijһλÓÃ×ö´«ÊäÊý¾ÝµÄÆæÅ¼Ð£Ñé룬Êý¾ÝÖаüÀ¨Ð£ÑéλÔÚÄڵġ°1¡±µÄ¸öÊýºãÎªÆæÊý£¬¾ÍÊÇÆæÐ£Ñ飻ºãΪżÊý£¬¾ÍÊÇżУÑé¡£
¢Û ÎÞ·ûºÅÊýºÍÓзûºÅÊýµÄ²Ù×÷Ó°ÏìÁ½×鲻ͬµÄ±ê־״̬룬¹ÊÅжÏÁ½¸öÎÞ·ûºÅÊýºÍÓзûºÅÊýµÄ´óС¹ØÏµÒªÀûÓò»Í¬µÄ±ê־λ×éºÏ£¬ËùÒÔÓжÔÓ¦µÄÁ½×éÖ¸Áî¡£
¢Ü Ë«·ÖÖ§½á¹¹ÖÐÁ½¸ö·ÖÖ§ÌåÖ®¼äµÄJMPÖ¸ÁÓÃÓÚʵÏÖ½áÊøÇ°Ò»¸ö·ÖÖ§»Øµ½¹²Í¬µÄ³ö¿Ú×÷Óᣠ¢Ý ÍêÕûµÄ×Ó³ÌÐò×¢ÊͿɷ½±ã³ÌÐòÔ±µ÷ÓøÃ×Ó³ÌÐò£¬×Ó³ÌÐò×¢ÊͰüÀ¨×Ó³ÌÐòÃû¡¢×Ó³ÌÐò¹¦ÄÜ¡¢Èë¿Ú²ÎÊýºÍ³ö¿Ú²ÎÊý¡¢µ÷ÓÃ×¢ÒâÊÂÏîºÍÆäËû˵Ã÷µÈ¡£
¢Þ ×Ó³ÌÐò±£³Ö¶Ñջƽºâ£¬²ÅÄܱ£Ö¤Ö´ÐÐRETÖ¸Áîʱµ±Ç°Õ»¶¥µÄÄÚÈÝÊÇÕýÈ·µÄ·µ»ØµØÖ·¡£Ö÷³ÌÐòÒ²Òª±£³Ö¶Ñջƽºâ£¬ÕâÑù²ÅÄÜÊÍ·Å´«µÝ²ÎÊýÕ¼ÓõĶÑÕ»¿Õ¼ä£¬·ñÔò¶à´Îµ÷ÓøÃ×Ó³ÌÐò¿ÉÄܾÍÖÂʹ¶ÑÕ»Òç³ö¡£
¢ß ¡°´«Öµ¡±ÊÇ´«µÝ²ÎÊýµÄÒ»¸ö¿½±´£¬±»µ÷ÓóÌÐò¸Ä±äÕâ¸ö²ÎÊý²»Ó°Ïìµ÷ÓóÌÐò£»¡°´«Ö·¡±Ê±£¬±»µ÷ÓóÌÐò¿ÉÄÜÐÞ¸Äͨ¹ýµØÖ·ÒýÓõıäÁ¿ÄÚÈÝ¡£
¢à INCLUDEÓï¾ä°üº¬µÄÊÇÎı¾Îļþ¡¢ÊÇÔ´³ÌÐòÎļþµÄÒ»²¿·Ö£»INCLUDELIBÓï¾ä°üº¬µÄÊÇ×Ó³ÌÐò¿âÎļþ¡£ ¢á È¡³¤²¹¶Ì¡£
¢â Windows³ÌÐòÔÚÔËÐÐʱÐèÒª¼ÓÔØÆäÅäÌ׵Ķ¯Ì¬Á´½Ó¿âDLLÎļþ£¬µ±ÆäûÓб»ËÑË÷µ½Ê±¾Í»áÌáʾ²»´æÔÚ¡£
¡²Ï°Ìâ4.2¡³ÅжÏÌâ ¡²½â´ð¡³
¢Ù ¶Ô ¢Ú ´í ¢Û ´í ¢Ü ´í ¢Ý ´í ¢Þ ¶Ô ¢ß ¶Ô ¢à ´í ¢á ¶Ô ¢â ´í ¡²Ï°Ìâ4.3¡³Ìî¿ÕÌâ ¡²½â´ð¡³
¢Ù Ïà¶ÔѰַ£¬¼ä½ÓѰַ£¬Ö±½ÓѰַ£¬¼ä½ÓѰַ ¢Ú 1256H£¬3280H
¢Û 3721H£¬1 ¢Ü EAH
¢Ý Ñ»·³õʼ£¬Ñ»·¿ØÖÆ ¢Þ REPT1±êºÅµÄµØÖ· ¢ß TEST ENDP£¬ENDM ¢à EBP
¢á PUBLIC£¬EXTERN ¢â 38H 0DH 0AH ¡²Ï°Ìâ4.4¡³
ΪÁËÑéÖ¤ÀýÌâ4-1³ÌÐòµÄÖ´Ðз¾¶£¬¿ÉÒÔÔÚÿ¸ö±êºÅǰºóÔö¼ÓÏÔʾ¹¦ÄÜ¡£ÀýÈçʹµÃ³ÌÐòÔËÐкóÏÔʾÊýÂë1234¡£ ¡²½â´ð¡³ jmp labl1 ; Ïà¶ÔѰַ nop mov eax,'?' call dispc
labl1: mov eax,'1' call dispc jmp near ptr labl2 ; Ïà¶Ô½ü×ªÒÆ nop mov eax,'?' call dispc
labl2: mov eax,'2' call dispc mov eax,offset labl3 jmp eax ; ¼Ä´æÆ÷¼ä½ÓѰַ nop mov eax,'?' call dispc
labl3: mov eax,'3' call dispc mov eax,offset labl4 mov nvar,eax jmp nvar ; ´æ´¢Æ÷¼ä½ÓѰַ nop mov eax,'?' call dispc
labl4: mov eax,'4' call dispc ¡²Ï°Ìâ4.5¡³
ʹÓá°SHR EAX,2¡±½«EAXÖеÄD1Î»ÒÆÈëCF±êÖ¾£¬È»ºóÓÃJC/JNCÖ¸ÁîÌæ´úJZ/JNZÖ¸ÁîÍê³ÉÀýÌâ4-3µÄ¹¦ÄÜ¡£ ¡²½â´ð¡³ mov eax,56h ; ¼ÙÉèÒ»¸öÊý¾Ý shr eax,2 ; D1Î»ÒÆÈëCF±êÖ¾ jnc nom ; D1£½0Ìõ¼þ³ÉÁ¢£¬×ªÒÆ ... ; ÓàͬԳÌÐò ¡²Ï°Ìâ4.6¡³
Ö´ÐÐÈçϳÌÐòƬ¶Ïºó£¬CMPÖ¸Áî·Ö±ðʹµÃ5¸ö״̬±êÖ¾CF¡¢ZF¡¢SF¡¢OFºÍPFΪ0»¹ÊÇΪ1£¿Ëü»áʹµÃÄÄЩÌõ¼þ×ªÒÆÖ¸ÁîÖ¸ÁîJccµÄÌõ¼þ³ÉÁ¢¡¢·¢Éú×ªÒÆ£¿ mov eax,20h cmp eax,80h ¡²½â´ð¡³
CF£½1 ZF£½0 SF£½1 OF£½0 PF£½1
¿ÉÒÔʹµÃÌõ¼þ³ÉÁ¢¡¢·¢Éú×ªÒÆµÄÖ¸ÁîÓУºJC JS JP JNZ JNO ¡²Ï°Ìâ4.7¡³
½«ÀýÌâ4-4³ÌÐòÐÞ¸ÄΪʵÏÖżУÑé¡£½¨Òé½øÒ»²½Ôö¼ÓÏÔʾÓйØÌáʾÐÅÏ¢µÄ¹¦ÄÜ£¬Ê¹µÃ³ÌÐò¾ßÓиü¼ÓÁ¼ºÃµÄ½»»¥ÐÔ¡£ ¡²½â´ð¡³
include io32.inc .data
msg1 byte 'Please input a character: ',0
msg2 byte 'The ASCII code of the charater you entered is: ',0 msg3 byte 'The code with even parity is: ',0 .code start: mov eax,offset msg1 call dispmsg call readc call dispcrlf mov ebx,eax mov eax,offset msg2 call dispmsg mov eax,ebx call dispbb call dispcrlf and al,7fh jp next or al,80h
next: mov ebx,eax mov eax,offset msg3 call dispmsg mov eax,ebx call dispbb exit 0 end start ¡²Ï°Ìâ4.8¡³
ÔÚ²ÉÓÃÆæÅ¼Ð£Ñé´«ÊäÊý¾ÝµÄ½ÓÊÕ¶ËÓ¦¸ÃÑéÖ¤Êý¾Ý´«ÊäµÄÕýÈ·ÐÔ¡£ÀýÈ磬Èç¹û²ÉÓÃżУÑ飬ÄÇôÔÚ½ÓÊÕµ½µÄÊý¾ÝÖУ¬Æä°üº¬¡°1¡±µÄ¸öÊýÓ¦¸ÃΪ0»òżÊý¸ö£¬·ñÔò˵Ã÷³öÏÖ´«Êä´íÎó¡£ÏÖÔÚ£¬ÔÚ½ÓÊն˱àдһ¸öÕâÑùµÄ³ÌÐò£¬Èç¹ûżУÑé²»ÕýÈ·ÏÔʾ´íÎóÐÅÏ¢£¬´«ÊäÕýÈ·Ôò¼ÌÐø¡£¼ÙÉè´«ËÍ×Ö½ÚÊý¾Ý¡¢×î¸ßλ×÷ΪУÑé룬½ÓÊÕµ½µÄÊý¾ÝÒѾ±£´æÔÚRdata±äÁ¿ÖС£ ¡²½â´ð¡³ ; Êý¾Ý¶Î Rdata byte 57h ;±£´æ½ÓÊÕµÄÊý¾Ý error byte 'Error !',0 ; ´úÂë¶Î
mov al,Rdata and al,0ffh ;±êÖ¾PF·´Ó³¡°1¡±µÄ¸öÊý jp done ;¸öÊýΪżÊý£¬ÕýÈ·¼ÌÐø mov eax,offset error ;¸öÊýÎªÆæÊý£¬ÏÔʾ³ö´í call dispmsg done:
¡²Ï°Ìâ4.9¡³
Ö¸ÁîCDQ½«EAX·ûºÅÀ©Õ¹µ½EDX£¬¼´£ºEAX×î¸ßΪ0£¬ÔòEDX£½0£»EAX×î¸ßΪ1£¬ÔòEDX£½FFFFFFFFH¡£Çë±à³ÌʵÏÖ¸ÃÖ¸ÁÄÜ¡£ ¡²½â´ð1¡³ test eax,8000h ; ²âÊÔ×î¸ßλ jz next1 ; ×î¸ßλΪ0£¨ZF£½1£©£¬×ªÒƵ½±êºÅNEXT1 mov edx,0ffffffffh ; ×î¸ßλΪ1£¬Ë³ÐòÖ´ÐУºÉèÖÃEDX£½FFFFFFFFH jmp done ; ÎÞÌõ¼þ×ªÒÆ£¬Ìø¹ýÁíÒ»¸ö·ÖÖ§
next1: mov dx,0 ; ×î¸ßλΪ0×ªÒÆµ½´ËÖ´ÐУºÉèÖÃEDX£½0 done:
¡²½â´ð2¡³
ʹÓÃÒÆÎ»Ö¸Áî¸üºÃ¡£ rol eax,1 rcr edx,1 sar edx,31 ror eax,1 ¡²Ï°Ìâ4.10¡³
±à³Ì£¬Ê×ÏȲâÊÔË«×Ö±äÁ¿DVARµÄ×î¸ß룬Èç¹ûΪ1£¬ÔòÏÔʾ×Öĸ¡°L¡±£»Èç¹û×î¸ßλ²»Îª1£¬Ôò¼ÌÐø²âÊÔ×îµÍ룬Èç¹û×îµÍλΪ1£¬ÔòÏÔʾ×Öĸ¡°R¡±£»Èç¹û×îµÍλҲ²»Îª1£¬ÔòÏÔʾ×Öĸ¡°M¡±¡£ ¡²½â´ð¡³ ; Êý¾Ý¶Î dvar dword 57h ; ´úÂë¶Î mov eax,dvar test eax,80000000h jnz nextl test eax,1 jnz nextr mov al,'M' jmp done
nextl: mov al,'L' jmp done
nextr: mov al,'R' done: call dispc
¡²Ï°Ìâ4.11¡³±àдһ¸ö³ÌÐò£¬ÏÈÌáʾÊäÈëÊý×Ö¡°Input Number£º0¡«9¡±£¬È»ºóÔÚÏÂÒ»ÐÐÏÔʾÊäÈëµÄÊý×Ö£¬½áÊø£»Èç¹û²»ÊǼüÈëÁË0¡«9Êý×Ö£¬¾ÍÌáʾ´íÎó¡°Error!¡±£¬¼ÌÐøµÈ´ýÊäÈëÊý×Ö¡£ ¡²½â´ð¡³ ; Êý¾Ý¶Î
inmsg byte 'Input number(0~9): ',0
ermsg byte 0dh,0ah,'Error! Input again: ',0 ; ´úÂë¶Î mov eax,offset inmsg ; ÌáʾÊäÈëÊý×Ö
call dispmsg
again: call readc ; µÈ´ý°´¼ü cmp al,'0' ; Êý×Ö < 0£¿ jb erdisp cmp al,'9' ; Êý×Ö > 9£¿ ja erdisp call dispcrlf call dispc jmp done
erdisp: mov eax,offset ermsg call dispmsg jmp again done:
¡²Ï°Ìâ4.12¡³
ÓÐÒ»¸öÊ×µØÖ·ÎªARRAYµÄ20¸öË«×ÖµÄÊý×飬˵Ã÷ÏÂÁгÌÐò¶ÎµÄ¹¦ÄÜ¡£ mov ecx,20 mov eax,0 mov esi,eax
sumlp: add eax,array[esi] add esi,4 loop sumlp mov total,eax ¡²½â´ð¡³
ÇóÕâ20¸öË«×ֵĺͣ¬±£´æÔÚTOTAL±äÁ¿£¬²»¹Ø½øÐĽøÎ»ºÍÒç³ö¡£ ¡²Ï°Ìâ4.13¡³
±à³ÌÖо³£Òª¼Ç¼ij¸ö×Ö·û³öÏֵĴÎÊý¡£ÏÖ±à³Ì¼Ç¼ij¸ö×Ö·û´®Öпոñ³öÏֵĴÎÊý£¬½á¹û±£´æÔÚSPACEµ¥Ôª¡£ ¡²½â´ð¡³ ; Êý¾Ý¶Î
string byte 'Do you have fun with Assembly ?',0 ;ÒÔ0½áβµÄ×Ö·û´® space dword ? ; ´úÂë¶Î mov esi,offset string xor ebx,ebx ;EBXÓÃÓڼǼ¿Õ¸ñÊý again: mov al,[esi] cmp al,0 jz done cmp al,20h ;¿Õ¸ñµÄASCIIÂëÊÇ20H jne next ;²»ÏàµÈ¡¢²»Êǿոñ£¬×ªÒÆ inc bx ;ÏàµÈ¡¢Êǿոñ£¬¿Õ¸ñ¸öÊý¼Ó1 next: inc esi jmp again ;¼ÌÐøÑ»·
done: mov space,ebx ;±£´æ½á¹û ¡²Ï°Ìâ4.14¡³
±àд¼ÆËã100¸ö16λÕýÕûÊýÖ®ºÍµÄ³ÌÐò¡£Èç¹ûºÍ²»³¬¹ý16λ×ֵķ¶Î§£¨65535£©£¬Ôò±£´æÆäºÍµ½WORDSUM£¬È糬¹ýÔòÏÔʾ¡®Overflow !¡¯¡£ ¡²½â´ð¡³ ; Êý¾Ý¶Î
array word 2005,2008,98 dup (1394) ; ¼ÙÉè100¸ö16λÕýÕûÊý wordsum word ?
error byte 'Overflow !',0 ; ´úÂë¶Î and ebx,0 mov ecx,100 xor ax,ax
again: add ax,array[ebx*2] jc over inc ebx loop again mov wordsum,ax
over: mov eax,offset error call dispmsg ¡²Ï°Ìâ4.15¡³
ÔÚÒ»¸öÒÑÖª³¤¶ÈµÄ×Ö·û´®ÖвéÕÒÊÇ·ñ°üº¬¡°BUG¡±×Ó×Ö·û´®¡£Èç¹û´æÔÚ£¬ÏÔʾ¡°Y¡±£¬·ñÔòÏÔʾ¡°N¡±¡£ ¡²½â´ð¡³ ; Êý¾Ý¶Î
string byte 'If you find any error in the program, you can DEBUG it.' count = sizeof string bug byte 'BUG' ; ´úÂë¶Î mov ecx,count mov edi,offset string L1: mov esi,offset bug push edi mov edx,sizeof bug LN: mov al,[esi] cmp [edi],al jne L2 inc esi inc edi dec edx jne LN pop edi mov al,'Y' jmp L3 L2: pop edi inc edi loop L1 mov al,'N' L3: call dispc ¡²Ï°Ìâ4.16¡³
Ö÷´æÖÐÓÐÒ»¸ö8λѹËõBCDÂëÊý¾Ý£¬±£´æÔÚÒ»¸öË«×Ö±äÁ¿ÖС£ÏÖÔÚÐèÒª½øÐÐÏÔʾ£¬µ«ÒªÇó²»ÏÔʾǰµ¼0¡£ÓÉÓÚλÊý½Ï¶à£¬ÐèÒªÀûÓÃÑ»·ÊµÏÖ£¬µ«ÈçºÎ´¦Àíǰµ¼0ºÍÊý¾ÝÖмäµÄ0ÄØ£¿²»·ÁÉèÖÃÒ»¸ö±ê¼Ç¡£±à³ÌʵÏÖ¡£ ¡²½â´ð¡³ ; Êý¾Ý¶Î
bcd dword 00371002h ; ´úÂë¶Î mov esi,bcd cmp esi,0 jnz goon mov al,'0' call dispc jmp done
goon: mov ecx,8 xor ebx,ebx ; EBX£½0£¬±íʾ¿ÉÄÜÊÇǰµ¼0 again: rol esi,4 mov eax,esi and eax,0fh ; EAXµÍ4λ±£´æµ±Ç°ÒªÏÔʾµÄBCDÂë cmp ebx,0 ; EBX¡Ù0£¬ËµÃ÷²»ÊÇǰµ¼0£¬ÒªÏÔʾ jnz disp ; EBX£½0£¬ËµÃ÷¿ÉÄÜÊÇǰµ¼0 cmp eax,0 jz next ; EAX£½0£¬ËµÃ÷ÊÇǰµ¼0£¬²»ÏÔʾ mov ebx,1 ; EAX¡Ù0£¬Ã»ÓÐǰµ¼0ÁË£¬ÁîEBX£½1¡Ù0 disp: add al,30h call dispc
next: loop again done:
¡²Ï°Ìâ4.17¡³
ÒÑÖªÒ»¸ö×Ö·û´®µÄ³¤¶È£¬ÌÞ³ýÆäÖÐËùÓеĿոñ×Ö·û¡£Çë´Ó×Ö·û´®×îºóÒ»¸ö×Ö·û¿ªÊ¼Öð¸öÏòǰÅжϡ¢²¢½øÐд¦Àí¡£ ¡²½â´ð¡³ ; Êý¾Ý¶Î
string byte 'Let us have a try !',0dh,0ah,0 ; ´úÂë¶Î mov ecx,sizeof string cmp ecx,2 jb done lea eax,string ; ÏÔʾ´¦ÀíǰµÄ×Ö·û´® call dispmsg mov esi,ecx dec esi
outlp: cmp string[esi],' ' ; ¼ì²âÊÇ·ñÊǿոñ jnz next ; ²»Êǿոñ¼ÌÐøÑ»· mov edi,esi ; Êǿոñ£¬½øÈëÌÞ³ý¿Õ¸ñ·ÖÖ§ dec ecx inlp: inc edi mov al,string[edi] ; Ç°ÒÆÒ»¸öλÖà mov string[edi-1],al cmp edi,ecx jb inlp
next: dec esi ; ¼ÌÐø½øÐÐ cmp esi,0 jnz outlp ; Ϊ0½áÊø
lea eax,string ; ÏÔʾ´¦ÀíºóµÄ×Ö·û´® call dispmsg done:
¡²Ï°Ìâ4.18¡³
µÚ3ÕÂϰÌâ3.14ÔÚÆÁÄ»ÉÏÏÔʾASCII±í£¬ÏÖ½öÔÚÊý¾Ý¶ÎÉèÖñí¸ñ»º³åÇø£¬±à³Ì½«ASCII´úÂëÖµÌîÈëÁô³öλÖõıí¸ñ£¬È»ºóµ÷ÓÃÏÔʾ¹¦ÄÜʵÏÖ£¨ÐèÒªÀûÓÃË«ÖØÑ»·£©¡£ ¡²½â´ð¡³ include io32.inc .data
table byte ' |0 1 2 3 4 5 6 7 8 9 A B C D E F',13,10 byte '---+-------------------------------',13,10 tab1byte 6 dup(36 dup(?),13,10) byte 0 .code start: mov ebx,offset tab1 mov edx,'| 02' mov ax,2020h mov esi,6
again0: mov [ebx],edx add ebx,4 mov ecx,16
again1: mov word ptr [ebx],ax add ebx,2 inc al loop again1 add ebx,2 add edx,1 dec esi jnz again0 mov eax,offset table call dispmsg exit 0 end start ¡²Ï°Ìâ4.19¡³
Çë°´ÈçÏÂ˵Ã÷±àд×Ó³ÌÐò£º
×Ó³ÌÐò¹¦ÄÜ£º°ÑÓÃASCIIÂë±íʾµÄÁ½Î»Ê®½øÖÆÊýת»»ÎªÑ¹ËõBCDÂë Èë¿Ú²ÎÊý£ºDH£½Ê®Î»ÊýµÄASCIIÂ룬DL£½¸öλÊýµÄASCIIÂë ³ö¿Ú²ÎÊý£ºAL£½¶ÔÓ¦BCDÂë ¡²½â´ð¡³ asctob proc shl dh,4 mov al,dh and dl,0fh or al,dl
ret
asctob endp ¡²Ï°Ìâ4.20¡³
³Ë·¨µÄ·ÇѹËõBCDÂëµ÷ÕûÖ¸ÁîAAMÖ´ÐеIJÙ×÷ÊÇ£ºAH¡ûAL¡Â10µÄÉÌ£¬AL¡ûAL¡Â10µÄÓàÊý¡£ÀûÓÃAAM¿ÉÒÔʵÏÖ½«ALÖеÄ100ÄÚÊý¾Ýת»»ÎªASCIIÂ룬³ÌÐòÈçÏ£º xor ah,ah aam add ax,3030h
ÀûÓÃÕâ¶Î³ÌÐò£¬±àдһ¸öÏÔʾALÖÐÊýÖµ£¨0¡«99£©µÄ×Ó³ÌÐò¡£ ¡²½â´ð¡³ disp99 proc xor ah,ah aam add ax,3030h push ax mov al,ah call dispc pop ax call dispc ret
disp99 endp ¡²Ï°Ìâ4.21¡³
±àдһ¸öÔ´³ÌÐò£¬ÔÚ¼üÅÌÉϰ´Ò»¸ö¼ü£¬½«Æä·µ»ØµÄASCIIÂëÖµÏÔʾ³öÀ´£¬Èç¹û°´ÏÂESC¼ü£¨¶ÔÓ¦ASCIIÂëÊÇ1BH£©Ôò³ÌÐòÍ˳ö¡£Çëµ÷ÓÃÊéÖеÄHTOASC×Ó³ÌÐò¡£ ¡²½â´ð¡³ ; ´úÂë¶Î£¬Ö÷³ÌÐò again: call readc cmp al,1bh jz done mov bl,al mov al,':' call dispc mov al,bl rol al,4 call htoasc ; µ÷ÓÃ×Ó³ÌÐò call dispc ; ÏÔʾһ¸ö×Ö·û mov al,bl call htoasc ; µ÷ÓÃ×Ó³ÌÐò call dispc ; ÏÔʾһ¸ö×Ö·û call dispcrlf jmp again done:
¡²Ï°Ìâ4.22¡³
±àдһ¸ö×Ó³ÌÐò£¬ËüÒÔ¶þ½øÖÆÐÎʽÏÔʾEAXÖÐ32λÊý¾Ý£¬²¢Éè¼ÆÒ»¸öÖ÷³ÌÐòÑéÖ¤¡£ ¡²½â´ð¡³ ; ´úÂë¶Î£¬Ö÷³ÌÐò mov eax,8F98FF00H call dispbd ; µ÷ÓÃ×Ó³ÌÐò
; ´úÂë¶Î£¬×Ó³ÌÐò dispbd proc ; 32λ¶þ½øÖÆÊýµÄÊä³ö push ecx push edx mov ecx,32 ; ÒªÊä³öµÄ×Ö·û¸öÊý dbd: rol eax,1; ALÑ»·×óÒÆÒ»Î» push eax and al,01h ; È¡AL×îµÍλ add al,30h ; ת»¯³ÉÏàÓ¦µÄASCLLÂëÖµ call dispc ; ÒÔ¶þ½øÖƵÄÐÎʽÏÔʾ pop eax loop dbd pop edx pop ecx ret
dispbd endp ¡²Ï°Ìâ4.23¡³
½«ÀýÌâ4-16µÄ32λ¼Ä´æÆ÷¸ÄÓÃ16λ¼Ä´æÆ÷£¬½öʵÏÖÊä³ö£215¡«£«215£1Ö®¼äµÄÊý¾Ý¡£ ¡²½â´ð¡³ ; Êý¾Ý¶Î
array word 12345,-1234,32767,-32768,0,667 writebuf byte 6 dup(0) ; ´úÂë¶Î£¬Ö÷³ÌÐò mov ecx,lengthof array mov ebx,0 again:
mov ax,array[ebx*2] call write call dispcrlf
inc ebx ;´Ëʱebx´ú±íarrayÖеĵڼ¸¸öÊý dec ecx ;´Ëʱecx´ú±íÑ»·µÄ´ÎÊý jnz again ; ´úÂë¶Î£¬×Ó³ÌÐò
write proc ;×Ó³ÌÐò¿ªÊ¼ push ebx push ecx push edx
mov ebx,offset writebuf ;ebxÖ¸ÏòÏÔʾ»º³åÇø test ax,ax jnz write1
mov byte ptr [ebx],30h inc ebx jmp write5
write1: ;Èô²»Îª0ÔòÊ×ÏÈÅжÏÊÇÕýÊǸº jns write2 ;ÈôΪÕýÔòÌø¹ýÏÂÃæÁ½²½µ½write2 mov byte ptr [ebx],'-' inc ebx
neg ax write2:
mov cx,10
push cx ;½«cx=10ѹÈëÕ»£¬×÷ΪÍ˳ö±êÖ¾
write3: ;write3ÊÇÈÃeaxÑ»·³ýÒÔ10²¢°ÑÓàÊýµÄASCIIÂëѹÈëÕ» cmp ax,0 jz write4 xor dx,dx div cx add dx,30h push dx jmp write3
write4: ;ÓàÊýµÄASCIIÂë³öÕ»£¬Óöµ½10ÖÕÖ¹²¢×ªµ½write5ÏÔʾ½á¹û pop dx cmp dx,cx jz write5
mov byte ptr [ebx],dl inc ebx jmp write4
write5: ;ÏÔʾ½á¹û mov byte ptr [ebx],0 mov eax,offset writebuf call dispmsg pop edx pop ecx pop ebx ret write endp ¡²Ï°Ìâ4.24¡³
²Î¿¼ÀýÌâ4-17£¬±àдʵÏÖ32λÎÞ·ûºÅÕûÊýÊäÈëµÄ×Ó³ÌÐò£¬²¢Éè¼ÆÒ»¸öÖ÷³ÌÐòÑéÖ¤¡£ ¡²½â´ð¡³ ; Êý¾Ý¶Î count =10
array dword count dup(0) temp dword ?
readbuf byte 30 dup(0)
errmsg byte 'Input error,enter again!',13,10,0
msg1 byte 'Input ten unsigned numbers,each number ends with enter key:',13,10,0 msg2 byte 'Check the numbers your inputted:',13,10,0 ; ´úÂë¶Î£¬Ö÷³ÌÐò
mov eax,offset msg1 call dispmsg mov ecx,count
mov ebx,offset array again:
call read
mov eax,temp mov [ebx],eax
add ebx,4 dec ecx jnz again
mov eax,offset msg2 call dispmsg
mov edx,offset array mov ecx,count next:
mov eax,[edx] call dispuid call dispcrlf add edx,4 dec ecx jnz next ; ´úÂë¶Î£¬×Ó³ÌÐò read proc
push eax push ecx push ebx push edx read0:
mov eax,offset readbuf call readmsg test eax,eax jz readerr cmp eax,12 ja readerr
mov edx,offset readbuf xor ebx,ebx xor ecx,ecx mov al,[edx] cmp al,'+' jz read1 cmp al,'-' jnz read2 jmp readerr read1:
inc edx
mov al,[edx] test al,al
jz read3 ;Èç¹ûΪ0£¬Ôò˵Ã÷¸Ã×Ö·û´®ÒѽáÊø read2:
cmp al,'0' jb readerr cmp al,'9' ja readerr sub al,30h
imul ebx,10 ;ebxÓÃÀ´´æ´¢´¦Àí¹ýµÄÊý¾Ý jc readerr movzx eax,al add ebx,eax jnc read1 readerr:
mov eax,offset errmsg call dispmsg jmp read0 read3:
mov temp,ebx pop edx pop ebx pop ecx pop eax ret read endp ¡²Ï°Ìâ4.25¡³
±àдһ¸ö¼ÆËã×Ö½ÚУÑéºÍµÄ×Ó³ÌÐò¡£Ëùν¡°Ð£ÑéºÍ¡±ÊÇÖ¸²»¼Ç½øÎ»µÄÀÛ¼Ó£¬³£ÓÃÓÚ¼ì²éÐÅÏ¢µÄÕýÈ·ÐÔ¡£Ö÷³ÌÐòÌṩÈë¿Ú²ÎÊý£¬ÓÐÊý¾Ý¸öÊýºÍÊý¾Ý»º³åÇøµÄÊ×µØÖ·¡£×Ó³ÌÐò»ØËÍÇóºÍ½á¹ûÕâ¸ö³ö¿Ú²ÎÊý¡£ ¡²½â´ð¡³ ; ¼ÆËã×Ö½ÚУÑéºÍµÄͨÓùý³Ì ; Èë¿Ú²ÎÊý£ºDS:EBX£½Êý×éµÄ¶ÎµØÖ·:Æ«ÒÆµØÖ·£¬ECX=ÔªËØ¸öÊý ; ³ö¿Ú²ÎÊý£ºAL£½Ð£ÑéºÍ ; ˵Ã÷£º³ýEAX/EBX/ECXÍ⣬²»Ó°ÏìÆäËû¼Ä´æÆ÷ checksum proc xor al,al ; ÀÛ¼ÓÆ÷Çå0 sum: add al,[ebx] ; ÇóºÍ inc ebx ; Ö¸ÏòÏÂÒ»¸ö×Ö½Ú loop sum ret
checksum endp ¡²Ï°Ìâ4.26¡³
±àÖÆ3¸ö×Ó³ÌÐò°ÑÒ»¸ö32λ¶þ½øÖÆÊýÓÃ8λʮÁù½øÖÆÐÎʽÔÚÆÁÄ»ÉÏÏÔʾ³öÀ´£¬·Ö±ðÔËÓÃÈçÏÂ3ÖÖ²ÎÊý´«µÝ·½·¨£¬²¢ÅäºÏ3¸öÖ÷³ÌÐòÑéÖ¤Ëü¡£ £¨1£©²ÉÓÃEAX¼Ä´æÆ÷´«µÝÕâ¸ö32λ¶þ½øÖÆÊý £¨2£©²ÉÓÃtemp±äÁ¿´«µÝÕâ¸ö32λ¶þ½øÖÆÊý £¨3£©²ÉÓöÑÕ»·½·¨´«µÝÕâ¸ö32λ¶þ½øÖÆÊý ¡²½â´ð¡³ £¨1£© ; Êý¾Ý¶Î
wvar word 307281AFH ; ´úÂë¶Î£¬Ö÷³ÌÐò mov eax,wvar call disp mov al,'H' call dispc ; ´úÂë¶Î£¬×Ó³ÌÐò
disp proc push ebx push ecx mov ecx,8 ; 8λ dhw1: rol eax,4 mov ebx,eax and al,0fh ; ת»»ÎªASCIIÂë add al,30h cmp al,'9' jbe dhw2 add al,7
dhw2: call dispc mov eax,ebx loop dhw1 pop ecx pop ebx ret disp endp
£¨2£© ; Êý¾Ý¶Î
wvar word 307281AFH temp word ? ; ´úÂë¶Î£¬Ö÷³ÌÐò mov eax,wvar mov temp,eax call disp mov al,'H' call dispc ; ´úÂë¶Î£¬×Ó³ÌÐò disp proc push ebx push ecx mov ecx,8 ; 8λ mov eax,temp dhw1: rol eax,4 mov ebx,eax and al,0fh ; ת»»ÎªASCIIÂë add al,30h cmp al,'9' jbe dhw2 add al,7
dhw2: call dispc ; ÏÔʾһ¸ö×Ö·û mov eax,ebx loop dhw1 pop ecx pop ebx ret
disp endp £¨3£© ; Êý¾Ý¶Î
wvar word 307281AFH ; ´úÂë¶Î£¬Ö÷³ÌÐò push wvar call disp add esp,4 mov al,'H' call dispc ; ´úÂë¶Î£¬×Ó³ÌÐò disp proc push ebp mov ebp,esp push ebx push ecx mov ecx,8 ; 8λ mov eax,[ebp+8] dhw1: rol eax,4 mov ebx,eax and al,0fh ; ת»»ÎªASCIIÂë add al,30h cmp al,'9' jbe dhw2 add al,7
dhw2: call dispc mov eax,ebx loop dhw1 pop ecx pop ebx pop ebp ret disp endp
¡²Ï°Ìâ4.27¡³
ÅäºÏÀýÌâ4-11µÄ¼òµ¥¼ÓÃܽâÃܳÌÐò£¬Éè¼ÆÒ»¸öÊäÈëÃÜÂëµÄ³ÌÐò£¬½«ÊäÈëµÄÈô¸É×Ö·û¾¹ýÊʵ±Ëã·¨µÃµ½Ò»¸ö×Ö½ÚÁ¿ÃÜÂë¡£ ¡²½â´ð¡³ ;ex0427.asm include io32.inc .data key byte ?
msg0 byte 'Enter your password:',0 passw byte 50 dup(0)
errormsg byte 'Password error, input again!',13,10,0 bufnum = 255
buffer byte bufnum+1 dup(0) ; ¶¨Òå¼üÅÌÊäÈëÐèÒªµÄ»º³åÇø msg1 byte 'Enter messge: ',0
msg2 byte 'Encrypted message: ',0
msg3 byte 'Original messge: ',0 .code start: mov eax,offset msg0 ; ÌáʾÊäÈë¼ÓÃÜÃÜÂë call dispmsg mov eax,offset passw ; ÉèÖÃÈë¿Ú²ÎÊýEAX call readmsg ; µ÷ÓÃÊäÈë×Ö·û´®×Ó³ÌÐòÊäÈëÃÜÂë mov ecx,eax dec ecx xor ebx,ebx mov al,passw[ebx] again0: inc ebx xor al,passw[ebx] ;ʹÓüòµ¥µÄÒì»ò·½·¨µÃµ½¼ÓÃܹؼü×Ö loop again0 mov key,al ; ±£´æ¼ÓÃܹؼü×Ö mov eax,offset msg1 ; ÌáʾÊäÈë×Ö·û´® call dispmsg mov eax,offset buffer ; ÉèÖÃÈë¿Ú²ÎÊýEAX call readmsg ; µ÷ÓÃÊäÈë×Ö·û´®×Ó³ÌÐò push eax ; ×Ö·û¸öÊý±£´æ½øÈë¶ÑÕ» mov ecx,eax ; ECX£½Êµ¼ÊÊäÈëµÄ×Ö·û¸öÊý£¬×÷Ϊѻ·µÄ´ÎÊý xor ebx,ebx ; EBXÖ¸ÏòÊäÈë×Ö·û encrypt: mov al,key ; AL£½¼ÓÃܹؼü×Ö xor buffer[ebx],al ; Òì»ò¼ÓÃÜ inc ebx dec ecx ; µÈͬÓÚÖ¸Áloop encrypt jnz encrypt ; ´¦ÀíÏÂÒ»¸ö×Ö·û mov eax,offset msg2 call dispmsg mov eax,offset buffer ; ÏÔʾ¼ÓÃܺóµÄÃÜÎÄ call dispmsg call dispcrlf ;
again: mov eax,offset msg0 ; ÌáʾÊäÈë½âÃÜÃÜÂë call dispmsg mov eax,offset passw ; ÉèÖÃÈë¿Ú²ÎÊýEAX call readmsg ; µ÷ÓÃÊäÈë×Ö·û´®×Ó³ÌÐòÊäÈëÃÜÂë mov ecx,eax dec ecx xor ebx,ebx mov al,passw[ebx] again1: inc ebx xor al,passw[ebx] ;ʹÓüòµ¥µÄÒì»ò·½·¨µÃµ½¼ÓÃܹؼü×Ö loop again1 cmp key,al ; ÓëÔ¼ÓÃܹؼü×Ö±È½Ï jz next ; ÃÜÂëÏàͬ£¬Ôò½øÐнâÃÜ mov eax,offset errormsg ; ÌáʾÊäÈë½âÃÜÃÜÂë´íÎó
call dispmsg jmp again
next: pop ecx ; ´Ó¶ÑÕ»µ¯³ö×Ö·û¸öÊý£¬×÷Ϊѻ·µÄ´ÎÊý xor ebx,ebx ; EBXÖ¸ÏòÊäÈë×Ö·û decrypt: mov al,key ; AL£½½âÃܹؼü×Ö xor buffer[ebx],al ; Òì»ò½âÃÜ inc ebx dec ecx jnz decrypt ; ´¦ÀíÏÂÒ»¸ö×Ö·û mov eax,offset msg3 call dispmsg mov eax,offset buffer ; ÏÔʾ½âÃܺóµÄÃ÷ÎÄ call dispmsg ¡²Ï°Ìâ4.28¡³
Éè¼ÆÒ»¸ö¼òµ¥µÄÁ½¸öÕûÊýµÄ¼Ó·¨Æ÷³ÌÐò¡£ ¡²½â´ð¡³ ;ex0428.asm include io32.inc .data
msg1 byte 'Enter the integers:',13,10,0
msg2 byte 13,10,'Enter space to continue! Enter any other key to exit!',13,10,0 .code start: mov eax,offset msg1 call dispmsg call readsid mov ebx,eax mov al,'+' call dispc call dispcrlf call readsid add ebx,eax mov al,'=' call dispc mov eax,ebx call dispsid call dispcrlf mov eax,offset msg2 call dispmsg call readc cmp al,20h je start exit 0
end start ¡²Ï°Ìâ4.29¡³
ÀûÓÃÊ®Áù½øÖÆ×Ö½ÚÏÔʾ×Ó³ÌÐòDISPHBÉè¼ÆÒ»¸ö´ÓµÍµØÖ·µ½¸ßµØÖ·Öð¸ö×Ö½ÚÏÔʾij¸öÖ÷´æÇøÓòÄÚÈݵÄ×Ó³ÌÐòDISPMEM¡£ÆäÈë¿Ú²ÎÊý£ºEAX£½Ö÷´æÆ«ÒƵØÖ·£¬ECX£½×Ö½Ú¸öÊý£¨Ö÷´æÇøÓòµÄ³¤¶È£©¡£Í¬Ê±±àдһ¸öÖ÷³ÌÐò½øÐÐÑéÖ¤¡£ ¡²½â´ð¡³
;ex0429.asm in Windows Console include io32.inc .data
var byte 'This is a test!' .code
start: ; Ö÷³ÌÐò mov eax,offset var mov ecx,sizeof var call dispmem exit 0 ; ×Ó³ÌÐò dispmem proc push ebx mov ebx,eax dispm1: mov al,[ebx] call disphb mov al,' ' call dispc inc ebx loop dispm1 pop ebx ret
dispmem endp end start ¡²Ï°Ìâ4.30¡³
½«ÀýÌâ4-19·Ö±ðʹÓÃ×Ó³ÌÐòÄ£¿é¡¢×Ó³ÌÐò¿âºÍ×Ó³ÌÐò¿â°üº¬·½·¨Éú³É×îÖÕ¿ÉÖ´ÐÐÎļþ¡£ ¡²Ï°Ìâ4. 31¡³
Çø±ðÈçϸÅÄºê¶¨Òå¡¢ºêµ÷ÓᢺêÖ¸Áî¡¢ºêÕ¹¿ª¡¢ºê»ã±à¡£ ¡²½â´ð¡³
ºê¶¨Ò壺¾ÍÊÇ¶Ôºê½øÐÐ˵Ã÷£¬ÓÉÒ»¶Ôºê»ã±àαָÁîMACROºÍENDMÀ´Íê³É¡£ ºêµ÷Ó㺺궨ÒåÖ®ºóµÄʹÓá£ÔÚʹÓúêÖ¸ÁîµÄλÖÃдϺêÃû£¬ºó¸úʵÌå²ÎÊý¡£ ºêÖ¸ÁʹÓúêʱ£¬ÆäÐÎʽºÜÏñÖ¸ÁËùÒÔ³ÆÎªºêÖ¸Áî¡£
ºêÕ¹¿ª£ºÔÚ»ã±àʱ£¬»ã±à³ÌÐòÓöÔÓ¦µÄ´úÂëÐòÁÐÌæ´úºêÖ¸Áî¡£ ºê»ã±à£ºÖ¸Ê¹ÓúêµÄ·½·¨½øÐлã±àÓïÑÔ³ÌÐòÉè¼Æ¡£ ¡²Ï°Ìâ4. 32¡³
Ö±½ÓʹÓÿØÖÆÌ¨ÊäÈëºÍÊä³öº¯ÊýʵÏÖÀýÌâ4-21µÄ¹¦ÄÜ£¨²»Ê¹ÓÃREADMSGºÍDISPMSG×Ó³ÌÐò£©¡£ ¡²½â´ð¡³
¡²Ï°Ìâ4. 33¡³
Ö±½ÓʹÓÿØÖÆÌ¨Êä³öº¯ÊýʵÏÖij¸öÖ÷´æÇøÓòÄÚÈݵÄÏÔʾ£¨Ï°Ìâ4.29µÄ¹¦ÄÜ£©¡£¿ÉÒԸĽøÏÔʾÐÎʽ£¬ÀýÈçÿÐÐÏÔʾ16¸ö×Ö½Ú£¨128룩£¬Ã¿ÐпªÊ¼ÏÈÏÔʾÊ׸öÖ÷´æµ¥ÔªµÄÆ«ÒÆµØÖ·£¬È»ºóÓÃðºÅ·Ö¸ôÖ÷´æÄÚÈÝ¡£
¡²½â´ð¡³
¡²Ï°Ìâ4. 34¡³
ÈçºÎ½øÐкܼòµ¥µÄÐ޸ģ¬Ê¹µÃÀýÌâ4-22³ÌÐòµÄÏûÏ¢´°ÓС°OK¡±ºÍ¡°Cancel¡±Á½¸ö°´Å¥¡£ ¡²½â´ð¡³
½«MB_OK³£Á¿¶¨ÒåΪ1£¬¼´£º MB_OK equ 1 ¡²Ï°Ìâ4. 35¡³
ÉÏ»úʵ¼ùÀýÌâ4-23ºÍÀýÌâ4-24£¬²¢ÔÚ´´½¨¿ÉÖ´ÐÐÎļþµÄ¹ý³ÌÖÐÉú³É»ã±àÓïÑÔÁбíÎļþ¡£ ¡²Ï°Ìâ4.36¡³
Pentium´¦ÀíÆ÷º¬ÓÐÒ»¸ö64λµÄʱ¼ä±ê¼Ç¼ÆÊýÆ÷£¨Time-Stamp Counter£©¡£¸Ã¼ÆÊýÆ÷ÿ¸öʱÖÓÖÜÆÚµÝÔö£¨¼Ó1£©£»ÔÚÉϵçºÍ¸´Î»ºó£¬¸Ã¼ÆÊýÆ÷Çå0¡£Ö¸Áî¡°RDTSC¡±Ö´Ðкó½«ÔÚEDX£¨¸ß32룩ºÍEAX£¨µÍ32룩·µ»Øµ±Ç°µÄ64λʱ¼ä±ê¼Ç¼ÆÊýÆ÷Öµ¡£ÀûÓÃRDTSCÖ¸ÁîÔÚij¸öº¯ÊýÔËÐÐǰ»ñµÃʱ¼ä±ê¼Ç¼ÆÊýÆ÷Öµ£¬È»ºóÔËÐиú¯Êýºó£¬Á¢¼´ÔÙ´ÎÖ´ÐÐRDTSCÖ¸Á²¢½«ÔٴλñµÃµÄʱ¼ä±ê¼Ç¼ÆÊýÆ÷ÖµÓë֮ǰµÄ¼ÆÊýÖµÏà¼õ£¬µÃµ½µÄ²îÖµ¾ÍÊÇÔËÐиú¯ÊýÐèÒªµÄʱÖÓÖÜÆÚÊý£¨³ËÒÔʱÖÓÖÜÆÚ£¬µÈÓÚÔËÐÐʱ¼ä£©¡£ÇëÀûÓûìºÏ±à³Ì·½·¨ÏÔʾij¸öº¯ÊýµÄÔËÐÐʱÖÓÖÜÆÚÊý¡£ ¡²½â´ð¡³
µÚ5Õ ΢»ú×ÜÏß ¡²Ï°Ìâ5.1¡³¼ò´ðÌâ ¡²½â´ð¡³
¢Ù Êý¾Ý×ÜÏ߳е£×Å´¦ÀíÆ÷Óë´æ´¢Æ÷¡¢ÍâÉèÖ®¼äµÄÊý¾Ý½»»»£¬¼È¿ÉÒÔÊäÈëÒ²¿ÉÒÔÊä³ö£¬¹ÊÆäÊÇË«ÏòµÄ¡£
¢Ú Ϊ¼õÉÙÒý½Å¸öÊý£¬8086²ÉÓÃÁ˵ØÖ·×ÜÏߺÍÊý¾Ý×ÜÏß·Öʱ¸´Ó᣼´Êý¾Ý×ÜÏßÔÚ²»Í¬Ê±¿Ì»¹¾ßÓеØÖ·×ÜÏߵŦÄÜ¡£
¢Û ¾ßÓÐÈý̬ÄÜÁ¦µÄÒý½Åµ±Êä³ö³ÊÏÖ¸ß×è״̬ʱ£¬Ï൱ÓÚÁ¬½ÓÁËÒ»¸ö×迹ºÜ¸ßµÄÍⲿÆ÷¼þ£¬ÐźÅÎÞ·¨Õý³£Êä³ö£»¼´·ÅÆú¶Ô¸ÃÒý½ÅµÄ¿ØÖÆ£¬ÓëÆäËû²¿¼þ¶Ï¿ªÁ¬½Ó¡£
¢Ü ´¦ÀíÆ÷µÄÔËÐÐËÙ¶ÈÔ¶Ô¶¿ìÓÚ´æ´¢Æ÷ºÍI/O¶Ë¿Ú¡£´¦ÀíÆ÷¼ì²âµ½´æ´¢Æ÷»òI/O¶Ë¿Ú²»Äܰ´»ù±¾µÄ×ÜÏßÖÜÆÚ½øÐÐÊý¾Ý½»»»Ê±£¬²åÈëÒ»¸öµÈ´ý״̬Tw¡£µÈ´ý״̬ʵ¼ÊÉÏÊÇÒ»¸ö±£³Ö×ÜÏßÐźÅ״̬²»±äµÄʱÖÓÖÜÆÚ¡£
¢Ý â§·¢´«ËÍÊÇ´¦ÀíÆ÷Ö»ÌṩÊ×µØÖ·¡¢µ«¿ÉÒÔ´ÓºóÐøÁ¬ÐøµÄ´æ´¢µ¥ÔªÖжÁд¶à¸öÊý¾Ý¡£
¢Þ ×ÜÏßÉÏ¿ÉÄÜÁ¬½Ó¶à¸öÐèÒª¿ØÖÆ×ÜÏßµÄÖ÷É豸£¬ÐèҪȷ¶¨µ±Ç°ÐèÒª¿ØÖÆ×ÜÏßµÄÖ÷É豸£¬ËùÒÔÐèÒª×ÜÏßÖٲá£
¢ß Ò첽ʱÐòÊÇÓÉ×ÜÏßÎÕÊÖ£¨Handshake£©ÁªÂ磨Ӧ´ð£©ÐźſØÖÆ£¬²»ÊÇÓÉ×ÜÏßʱÖÓ¿ØÖÆ¡£¹Ê×ÜÏßʱÖÓÐźſÉÓпÉÎÞ¡£
¢à µ¥×ÜÏ߽ṹÏÞÖÆÁËÐí¶àÐèÒª¸ßËÙ´«ÊäËٶȵIJ¿¼þ¡£32λPC»ú²ÉÓöàÖÖ×ÜÏß²¢´æµÄϵͳ½á¹¹¡£¸÷ÖÖרÓþֲ¿×ÜÏßÔ´ÓÚ´¦ÀíÆ÷оƬ×ÜÏߣ¬ÒÔ½Ó½ü´¦ÀíÆ÷оƬÒý½ÅµÄËÙ¶È´«ÊäÊý¾Ý£¬ËüΪ¸ßËÙÍâÉèÌṩËٶȿ졢ÐÔÄܸߵĹ²ÓÃͨµÀ¡£ ¢á 4¸ö¡£
¢â ¼´²å¼´Óü¼ÊõÊÇÖ¸32λPC»úµÄÖ÷°å¡¢²Ù×÷ϵͳºÍ×ÜÏßÉ豸ÅäºÏ£¬ÊµÏÖ×Ô¶¯ÅäÖù¦ÄÜ¡£ ¡²Ï°Ìâ5.2¡³ÅжÏÌâ ¡²½â´ð¡³
¢Ù ¶Ô ¢Ú ¶Ô ¢Û ´í ¢Ü ¶Ô ¢Ý ¶Ô ¢Þ ´í ¢ß ¶Ô ¢à ¶Ô ¢á ¶Ô ¢â ´í ¡²Ï°Ìâ5.3¡³Ìî¿ÕÌâ ¡²½â´ð¡³ ¢Ù 0
¢Ú ¶Á£¬Ð´
¢Û ´æ´¢Æ÷¶Á£¬´æ´¢Æ÷¶Á£¬´æ´¢Æ÷д ¢Ü 4£¬2£¬10ns ¢Ý µÍÓÐЧ£¬£¬0010 ¢Þ Ѱַ£¬Êý¾Ý´«ËÍ
¢ß 127£¬1.5Mb/s£¬12Mb/s ¢à µØÖ·£¬Êý¾Ý ¢á £¬
¢â £¬I/O CH RDY ¡²Ï°Ìâ5.4¡³
´¦ÀíÆ÷ÓÐÄÄ4ÖÖ×î»ù±¾µÄ×ÜÏß²Ù×÷£¨ÖÜÆÚ£©£¿ ¡²½â´ð¡³
´æ´¢Æ÷¶Á¡¢´æ´¢Æ÷д£¬I/O¶Á¡¢I/Oд¡£ ¡²Ï°Ìâ5.5¡³
8086´¦ÀíÆ÷µÄÊäÈë¿ØÖÆÐźÅÓÐRESET£¬HOLD£¬NMIºÍINTR£¬Æäº¬Òå¸÷ÊÇʲô£¿µ±ËüÃÇÓÐЧʱ£¬8086 CPU½«³öÏÖºÎÖÖ·´Ó¦£¿ ¡²½â´ð¡³
RESET£º¸´Î»ÊäÈëÐźţ¬¸ßµçƽÓÐЧ¡£¸ÃÒý½ÅÓÐЧʱ£¬½«ÆÈʹ´¦ÀíÆ÷»Øµ½Æä³õʼ״̬£»×ªÎªÎÞЧʱ£¬CPUÖØÐ¿ªÊ¼¹¤×÷¡£
HOLD£º×ÜÏßÇëÇó£¬ÊÇÒ»¸ö¸ßµçƽÓÐЧµÄÊäÈëÐźš£¸ÃÒý½ÅÓÐЧʱ£¬±íʾÆäËû×ÜÏßÖ÷¿ØÉ豸Ïò´¦ÀíÆ÷ÉêÇëʹÓÃÔÀ´ÓÉ´¦ÀíÆ÷¿ØÖƵÄ×ÜÏß¡£
NMI£º²»¿ÉÆÁ±ÎÖжÏÇëÇó£¬ÊÇÒ»¸öÀûÓÃÉÏÉýÑØÓÐЧµÄÊäÈëÐźš£¸ÃÒý½ÅÐźÅÓÐЧʱ£¬±íʾÍâ½çÏòCPUÉêÇë²»¿ÉÆÁ±ÎÖжϡ£
INTR£º¿ÉÆÁ±ÎÖжÏÇëÇó£¬ÊÇÒ»¸ö¸ßµçƽÓÐЧµÄÊäÈëÐźš£¸ÃÒý½ÅÐźÅÓÐЧʱ£¬±íʾÖжÏÇëÇóÉ豸Ïò´¦ÀíÆ÷ÉêÇë¿ÉÆÁ±ÎÖжϡ£ ¡²Ï°Ìâ5.6¡³
Çø±ð¸ÅÄָÁîÖÜÆÚ¡¢×ÜÏßÖÜÆÚ£¨»úÆ÷ÖÜÆÚ£©¡¢Ê±ÖÓÖÜÆÚ¡¢T״̬¡£ ¡²½â´ð¡³
Ö¸ÁîÖÜÆÚ£ºÒ»ÌõÖ¸Áî´Óȡָ¡¢ÒëÂëµ½×îÖÕÖ´ÐÐÍê³ÉµÄ¹ý³Ì¡£ ×ÜÏßÖÜÆÚ£¨»úÆ÷ÖÜÆÚ£©£ºÓÐÊý¾Ý½»»»µÄ×ÜÏß²Ù×÷¡£
ʱÖÓÖÜÆÚ£º´¦ÀíÆ÷µÄ»ù±¾¹¤×÷½ÚÅÄ£¬ÓÉʱÖÓÐźŲúÉú£¬Ò»¸ö¸ßµçƽºÍÒ»¸öµÍµçƽΪһ¸öÖÜÆÚ¡£ T״̬£ºÍê³ÉÌØ¶¨²Ù×÷µÄÒ»¸öʱÖÓÖÜÆÚ¡£ÓÉÓÚʱ¼äÉÏÒ»¸öT״̬µÈÓÚÒ»¸öʱÖÓÖÜÆÚ£¬ËùÒÔ³£³£½«Á½Õß»ìΪһ̸¡£ ¡²Ï°Ìâ5.7¡³
×ܽá8086¸÷¸öT״̬µÄÖ÷Òª¹¦ÄÜ¡£ ¡²½â´ð¡³
T1״̬£º×ÜÏßÖÜÆÚµÄµÚÒ»¸öʱÖÓÖÜÆÚÖ÷ÒªÓÃÓÚÊä³ö´æ´¢Æ÷µØÖ·»òI/OµØÖ·£» T2״̬£ºÊä³ö¶Á/д¿ØÖÆÐźš£
T3״̬£ºËø´æµØÖ·¡¢´¦ÀíÆ÷ÌṩµÄ¿ØÖÆÐźźÍÊý¾ÝÔÚ×ÜÏßÉϼÌÐøÎ¬³ÖÓÐЧ£¬ÇÒT3ʱÖÓµÄÇ°ÑØ£¨Ï½µÑØ£©¶ÔREADYÒý½Å½øÐмì²â¡£READYÐźÅÓÐЧ£¬½øÈëT4ÖÜÆÚ¡£
T4״̬£º×ÜÏßÖÜÆÚµÄ×îºóÒ»¸öʱÖÓÖÜÆÚ£¬´¦ÀíÆ÷ºÍ´æ´¢Æ÷»òI/O¶Ë¿Ú¼ÌÐø½øÐÐÊý¾Ý´«ËÍ£¬Ö±µ½Íê³É£¬²¢ÎªÏÂÒ»¸ö×ÜÏßÖÜÆÚ×öºÃ×¼±¸¡£
Tw״̬£ºµÈ´ý״̬¡£´¦ÀíÆ÷ÔÚT3Ç°ÑØ·¢ÏÖREADYÐźÅÎÞЧºó£¬²åÈëTw¡£Tw״̬µÄÒý½ÅÐźÅÑÓÐøT3ʱµÄ״̬¡¢Î¬³Ö²»±ä¡£ ¡²Ï°Ìâ5.8¡³
Çë½âÊÍ8086£¨×îС×é̬£©ÒÔÏÂÒý½ÅÐźŵĺ¬Ò壺CLK£¬A19/S6¡«A16/S3£¬AD15¡«AD0£¬ALE£¬£¬ºÍ¡£Ä¬»ËüÃÇÔÚ¾ßÓÐÒ»¸öµÈ´ý״̬µÄ´æ´¢Æ÷¶Á×ÜÏßÖÜÆÚÖеIJ¨ÐÎʾÒâ¡£ ¡²½â´ð¡³
CLK£ºÊ±ÖÓÊäÈ롣ʱÖÓÐźÅÊÇÒ»¸öƵÂÊÎȶ¨µÄÊý×ÖÐźţ¬ÆäƵÂʾÍÊÇ´¦ÀíÆ÷µÄ¹¤×÷ƵÂÊ£¬¹¤×÷ƵÂÊ
µÄµ¹Êý¾ÍÊÇʱÖÓÖÜÆÚµÄʱ¼ä³¤¶È¡£
A19/S6¡«A16/S3£ºµØÖ·/״̬·Öʱ¸´ÓÃÒý½Å£¬ÊÇÒ»×é4¸ö¾ßÓÐÈý̬ÄÜÁ¦µÄÊä³öÐźš£ÕâЩÒý½ÅÔÚ·ÃÎÊ´æ´¢Æ÷µÄµÚÒ»¸öʱÖÓÖÜÆÚÊä³ö¸ß4λµØÖ·A19¡«A16£¬ÔÚ·ÃÎÊÍâÉèµÄµÚÒ»¸öʱÖÓÖÜÆÚÊä³öµÍµçƽÎÞЧ£»ÆäËûʱ¼äÊä³ö״̬ÐźÅS6¡«S3¡£
AD15¡«AD0£ºµØÖ·/Êý¾Ý·Öʱ¸´ÓÃÒý½Å£¬¹²16¸öÒý½Å£¬ÓÃ×÷µØÖ·×ÜÏßʱÊǵ¥ÏòÊä³öÐźţ»ÓÃ×÷Êý¾Ý×ÜÏßʱÊÇË«ÏòÐźţ¬¾ßÓÐÈý̬Êä³öÄÜÁ¦¡£
ALE£ºµØÖ·Ëø´æÔÊÐí£¬ÊÇÒ»¸öÈý̬¡¢Êä³ö¡¢¸ßµçƽÓÐЧµÄÐźš£ÓÐЧʱ£¬±íʾ¸´ÓÃÒý½Å£¨AD15¡«AD0ºÍA19/S6¡«A16/S3£©ÉÏÕýÔÚ´«Ë͵ØÖ·Ðźš£
£º·ÃÎÊ´æ´¢Æ÷»òÕßI/O£¬ÊÇÒ»¸öÈý̬Êä³öÐźţ¬¸ÃÒý½Å¸ßµçƽʱ£¬±íʾ´¦ÀíÆ÷½«·ÃÎÊ´æ´¢Æ÷£¬´ËʱµØÖ·×ÜÏßA19¡«A0Ìṩ20λµÄ´æ´¢Æ÷ÎïÀíµØÖ·¡£¸ÃÒý½ÅµÍµçƽʱ£¬±íʾ´¦ÀíÆ÷½«·ÃÎÊI/O¶Ë¿Ú£¬´ËʱµØÖ·×ÜÏßA15¡«A0Ìṩ16λµÄI/OµØÖ·¡£
£º¶Á¿ØÖÆ£¬Ò²ÊÇÒ»¸öÈý̬¡¢Êä³öµÍµçƽÓÐЧÐźš£ÓÐЧʱ£¬±íʾ´¦ÀíÆ÷ÕýÔÚ´Ó´æ´¢µ¥Ôª»òI/O¶Ë¿Ú¶ÁÈ¡Êý¾Ý¡£
£ºÐ´¿ØÖÆ£¬ÊÇÒ»¸öÈý̬¡¢Êä³öµÍµçƽÓÐЧÐźš£ÓÐЧʱ£¬±íʾ´¦ÀíÆ÷Õý½«Êý¾Ýдµ½´æ´¢µ¥Ôª»òI/O¶Ë¿Ú¡£
¡²Ï°Ìâ5.9¡³
Çø±ðÈçÏÂ×ÜÏ߸ÅÄоƬ×ÜÏß¡¢¾Ö²¿×ÜÏß¡¢ÏµÍ³×ÜÏߣ»²¢ÐÐ×ÜÏß¡¢´®ÐÐ×ÜÏߣ»µØÖ·×ÜÏß¡¢Êý¾Ý×ÜÏß¡¢¿ØÖÆ×ÜÏߣ»ISA×ÜÏß¡¢PCI×ÜÏß¡£ ¡²½â´ð¡³
оƬ×ÜÏߣºÊÇÖ¸´ó¹æÄ£¼¯³Éµç·оƬÄÚ²¿£¬»òϵͳÖи÷ÖÖ²»Í¬Æ÷¼þÁ¬½ÓÔÚÒ»ÆðµÄ×ÜÏߣ»ÓÃÓÚоƬ¼¶»¥Á¬¡£
¾Ö²¿×ÜÏߣºÎ»ÓÚ´¦ÀíÆ÷¸½¼þµÄÆ÷¼þÏ໥Á¬½ÓµÄ×ÜÏߣ¬Ïà¶ÔÓÚоƬ×ÜÏß¡£ ϵͳ×ÜÏߣºÍ¨³£ÊÇָ΢»úϵͳµÄÖ÷Òª×ÜÏß¡£ ²¢ÐÐ×ÜÏߣº²ÉÓò¢Ðд«Ê䷽ʽµÄ×ÜÏß¡£
´®ÐÐ×ÜÏߣº½«¶àλÊý¾Ý°´¶þ½øÖÆÎ»µÄ˳ÐòÔÚÊý¾ÝÏßÉÏÖðλ´«Ë͵Ä×ÜÏß¡£ µØÖ·×ÜÏߣºÊµÏÖµØÖ·ÐÅÏ¢»¥Á¬ºÍ½»»»µÄÒ»×éµ¼Ïß¡£ Êý¾Ý×ÜÏߣºÊµÏÖÊý¾ÝÐÅÏ¢»¥Á¬ºÍ½»»»µÄÒ»×éµ¼Ïß¡£
¿ØÖÆ×ÜÏߣº¿ØÖÆÐµ÷´¦ÀíÆ÷ºÍÄÚ´æ¡¢ÍâÉè½»»¥ÐÅÏ¢µÄÒ»×éµ¼Ïß¡£
ISA×ÜÏߣº¼´IBM PC/AT×ÜÏߣ¬ÒÔ´¦ÀíÆ÷80286Òý½ÅÐγɵÄ×ÜÏߣ¬·Ö³ÉÖ§³Ö8λ²Ù×÷µÄǰ62ÐźźÍÀ©Õ¹16λ²Ù×÷µÄºó36Ðźš£
PCI×ÜÏߣºÍâÉ貿¼þ»¥Á¬×ÜÏߣ¬²»½öÊÊÓÃÓÚIA-32´¦ÀíÆ÷£¬Ò²ÊÊÓÃÆäËü´¦ÀíÆ÷£¬Ö§³Ö32λºÍ64λ²Ù×÷£¬¹ã·ºÓÃÓÚ32λͨÓÃ΢ÐͼÆËã»úÖС£ ¡²Ï°Ìâ5.10¡³
ʲôÊÇͬ²½Ê±Ðò¡¢°ëͬ²½Ê±ÐòºÍÒ첽ʱÐò£¿ ¡²½â´ð¡³
ͬ²½Ê±Ðò£º×ÜÏß²Ù×÷µÄ¸÷¸ö¹ý³ÌÓɹ²ÓõÄ×ÜÏßʱÖÓÐźſØÖÆ¡£ °ëͬ²½Ê±Ðò£º×ÜÏß²Ù×÷ÈÔÓɹ²ÓõÄ×ÜÏßʱÖÓÐźſØÖÆ£¬µ«ÂýËÙÄ£¿é¿ÉÒÔͨ¹ýµÈ´ýÐźÅÈÿìËÙÄ£¿éµÈ´ý¡£
Ò첽ʱÐò£º×ÜÏß²Ù×÷ÐèÒªÎÕÊÖ£¨Handshake£©ÁªÂ磨Ӧ´ð£©ÐźſØÖÆ£¬×ÜÏßʱÖÓÐźſÉÓпÉÎÞ¡£ ¡²Ï°Ìâ5.11¡³
EISA×ÜÏßµÄʱÖÓÆµÂÊÊÇ8MHz£¬Ã¿2¸öʱÖÓ¿ÉÒÔ´«ËÍÒ»¸ö32λÊý¾Ý£¬¼ÆËãÆä×ÜÏß´ø¿í¡£ ¡²½â´ð¡³
£¨32¡Á8£©¡Â£¨2¡Á8£©£½16MBps ¡²Ï°Ìâ5.12¡³
PCI×ÜÏßÓÐÊ²Ã´ÌØµã£¿ ¡²½â´ð¡³
PCI×ÜÏßÓë´¦ÀíÆ÷Î޹أ¬¾ßÓÐ32λºÍ64λÊý¾Ý×ÜÏߣ¬ÓУ«5VºÍ£«3.3VÁ½ÖÖÉè¼Æ£¬²ÉÓü¯ÖÐʽ×ÜÏßÖٲá¢Ö§³Ö¶à´¦ÀíÆ÷ϵͳ£¬Í¨¹ýÇÅ£¨Bridge£©µç·¼æÈÝISA/EISA×ÜÏߣ¬¾ßÓм´²å¼´ÓõÄ×Ô¶¯Åä
ÖÃÄÜÁ¦µÈһϵÁÐÓÅÊÆ¡£ ¡²Ï°Ìâ5.13¡³
PCI×ÜÏß²Ù×÷ÈçºÎ²åÈëµÈ´ý״̬£¿ ¡²½â´ð¡³
Ö÷É豸ÀûÓÃIRDY#ÐźÅÎÞЧ¡¢´ÓÉ豸ÀûÓÃTRDY#ÐźÅÎÞЧҪÇó¶Ô·½µÈ´ý£¬¼´²åÈëµÈ´ý״̬¡£ ¡²Ï°Ìâ5.14¡³
ʲôÊÇUSB×ÜÏßÖ§³ÖµÄ¡°ÈȲå°Î¡±£¬Õâ¸öÌØÐÔÓÐʲôÒâÒ壿 ¡²½â´ð¡³
¡°ÈȲå°Î¡±ÊÇÔÚPC»úÕý³£¹¤×÷״̬½øÐвåÈë»ò°Î³ö¡£Õâ¸öÌØÐÔ¿ÉÒÔʹÓû§ËæÊ±Á¬½ÓUSBÉ豸¡£ ¡²Ï°Ìâ5.15¡³
¼òÊöUSB×ÜÏßµÄÖ÷ÒªÌØÕ÷£¿ ¡²½â´ð¡³
ʹÓ÷½±ã¡¢À©³äÄÜÁ¦Ç¿¡£
Ö§³Ö¶àÖÖ´«ÊäËÙ¶È¡¢ÊÊÓÃÃæ¹ã¡£
µÍ¹¦ºÄ¡¢µÍ³É±¾¡¢Õ¼ÓÃϵͳ×ÊÔ´ÉÙ¡£ ¡²Ï°Ìâ5.16¡³
USB×ÜÏߵļ¯Ï߯÷ÓÐʲô×÷Óã¿Ö÷»úÉÏÊÇ·ñÐèÒª¼¯Ï߯÷£¿ ¡²½â´ð¡³
¼¯Ï߯÷ÊÇרÃÅÓÃÓÚÌṩ¶îÍâUSB½ÓÈëµãµÄUSBÉ豸¡£ Ö÷»úÐèÒª¼¯Ï߯÷£¬±»³ÆÎª¸ù¼¯Ï߯÷¡£ ¡²Ï°Ìâ5.17¡³
USB×ÜÏßÐÒéÖ§³ÖÄļ¸ÖÖÊý¾Ý´«Ê䷽ʽ£¿¼òÊöÖ®¡£ ¡²½â´ð¡³
USBµÄÊý¾Ý´«ÊäÓÐ4ÖÖ£º
¿ØÖÆ´«Ê䡪¡ªÔÚUSBÉ豸³õ´Î°²×°Ê±£¬USBϵͳÈí¼þʹÓÿØÖÆ´«Ê䷽ʽÉèÖÃUSBÉ豸²ÎÊý¡¢·¢ËÍ¿ØÖÆÖ¸Áî¡¢²éѯ״̬µÈ¡£ ÅúÁ¿´«Ê䡪¡ª¶ÔÓÚ´òÓ¡»ú¡¢É¨ÃèÒǵÈÉ豸ÐèÒª´«Êä´óÁ¿Êý¾Ý£¬¿ÉÒÔʹÓÃÅúÁ¿´«Ê䷽ʽÁ¬Ðø´«ÊäÒ»ÅúÊý¾Ý¡£
Öжϴ«Ê䡪¡ª¸Ã·½Ê½´«ÊäµÄÊý¾ÝÁ¿ºÜС£¬µ«ÐèÒª¼°Ê±´¦Àí£¬ÒÔ±£Ö¤ÊµÊ±ÐÔ£¬Ö÷ÒªÓÃÓÚ¼üÅÌ¡¢Êó±êµÈÉ豸ÉÏ¡£
ͬ²½´«Ê䡪¡ª¸Ã·½Ê½ÒÔÎȶ¨µÄËÙÂÊ·¢ËͺͽÓÊÕÐÅÏ¢£¬±£Ö¤Êý¾ÝµÄÁ¬ÐøºÍ¼°Ê±£¬ÓÃÓÚÊý¾Ý´«ÊäÕýÈ·ÐÔÒªÇ󲻸߶ø¶ÔʵʱÐÔÒªÇó¸ßµÄÍâÉ裬ÀýÈçÂó¿Ë·ç¡¢À®°È¡¢µç»°µÈ¡£ µÚ6Õ ´æ´¢ÏµÍ³ ¡²Ï°Ìâ6.1¡³¼ò´ðÌâ ¡²½â´ð¡³
¢Ù ÒòΪ¸÷ÖÖ´æ´¢Æ÷¼þÔÚÈÝÁ¿¡¢ËٶȺͼ۸ñ·½Ãæ´æÔÚì¶Ü¡£Ëٶȿ죬Ôòµ¥Î»¼Û¸ñ¸ß£»ÈÝÁ¿´ó£¬µ¥Î»¼Û¸ñµÍ£¬µ«´æÈ¡ËÙ¶ÈÂý¡£¹Ê´æ´¢ÏµÍ³²»ÄܲÉÓÃÒ»ÖÖ´æ´¢Æ÷¼þ¡£
¢Ú CacheÖи´ÖÆ×ÅÖ÷´æµÄ²¿·ÖÄÚÈÝ¡£µ±´¦ÀíÆ÷ÊÔͼ¶ÁÈ¡Ö÷´æµÄij¸ö×Öʱ£¬Cache¿ØÖÆÆ÷Ê×Ïȼì²éCacheÖÐÊÇ·ñÒѰüº¬ÓÐÕâ¸ö×Ö¡£ÈôÓУ¬Ôò´¦ÀíÆ÷Ö±½Ó¶ÁÈ¡Cache£¬ÕâÖÖÇé¿ö³ÆÎª¸ßËÙÃüÖУ»ÈôÎÞ£¬Ôò³ÆÎª¸ßËÙȱʧ¡£
¢Û ±êÇ©´æ´¢Æ÷±£´æ×ŸÃÊý¾ÝËùÔÚÖ÷´æµÄµØÖ·ÐÅÏ¢¡£ ¢Ü Ö÷´æ¿éÓëCacheÐÐÖ®¼äµÄ¶ÔÓ¦¹ØÏµ³Æ¡°µØÖ·Ó³É䡱£¬ Cacheͨ¹ýµØÖ·Ó³ÉäÈ·¶¨Ò»¸öÖ÷´æ¿éÓ¦·Åµ½ÄĸöCacheÐÐ×éÖС£
¢Ý дÈë²ßÂÔÓÃÓÚ½â¾öдÈëCacheʱÒýÆðÖ÷´æºÍCacheÄÚÈݲ»Ò»ÖÂÐÔµÄÎÊÌâ¡£
¢Þ ´æÈ¡Ê±¼äÊÇÖ¸´Ó¶Á/дÃüÁî·¢³ö£¬µ½Êý¾Ý´«Êä²Ù×÷Íê³ÉËù¾ÀúµÄʱ¼ä£»´æÈ¡ÖÜÆÚ±íʾÁ½´Î´æ´¢Æ÷·ÃÎÊËùÔÊÐíµÄ×îСʱ¼ä¼ä¸ô¡£´æÈ¡ÖÜÆÚ´óÓÚµÈÓÚ´æÈ¡Ê±¼ä¡£
¢ß ÐéÄâ´æ´¢Æ÷ÊÇÓɲÙ×÷ϵͳÀûÓø¨Öú´æ´¢Æ÷¡¢ÒÔ´ÅÅÌÎļþÐÎʽ½¨Á¢µÄ¡¢ÔÚÖ÷´æ´¢Æ÷Ó븨Öú´æ´¢Æ÷Ö®¼äµÄÒ»¸ö´æ´¢Æ÷¡£
¢à DRAMоƬÈÝÁ¿´ó¡¢Ð¾Æ¬Ð¡£¬¸ß¼¯³É¶È£¬Òý½ÅÊýÁ¿ÉÙ¡£¹ÊDRAMоƬ½«µØÖ·Òý½Å·Öʱ¸´Ó㬼´ÓÃÒ»×鵨ַÒý½Å´«ËÍÁ½ÅúµØÖ·¡£µÚÒ»ÅúµØÖ·³ÆÐеØÖ·£¬µÚ¶þÅúµØÖ·³ÆÁеØÖ·¡£
¢á ÒëÂëµç·ÖÐÖ»Óв¿·ÖµØÖ·Ïß²ÎÓëÒëÂë»áÔì³ÉµØÖ·Öظ´£¬Ò²¾ÍÊÇÒ»¸ö´æ´¢µ¥ÔªÕ¼Óжà¸ö´æ´¢Æ÷µØÖ·¡£
¢âÒ³±íÏîµÄPλ³ÆÎª´æÔÚ루Present£©£¬±íʾ¸ÃÒ³ÃæÊÇ·ñÔÚÎïÀí´æ´¢Æ÷ÖС£ ¡²Ï°Ìâ6.2¡³ÅжÏÌâ ¡£
¡²½â´ð¡³
¢Ù ´í ¢Ú ¶Ô ¢Û ¶Ô ¢Ü ¶Ô ¢Ý ¶Ô ¢Þ ´í ¢ß ´í ¢à ¶Ô ¢á ´í ¢â ¶Ô ¡²Ï°Ìâ6.3¡³Ìî¿ÕÌâ ¡²½â´ð¡³
¢Ù 8£¬1024£¬1024£¬1024£¬1024£¬240 ¢Ú 8KB£¬4
¢Û Ëæ»ú´æÈ¡´æ´¢Æ÷£¬¶ªÊ§£¬Ö»¶Á´æ´¢Æ÷£¬¶ÁÈ¡£¬²»»á¶ªÊ§ ¢Ü 8£¬13£¬8 ¢Ý 2
¢Þ£¨UV-£©EPROM£¬Flash Memory ¢ß 58000H£¬5FFFFH£¬32KB ¢à 32£¬4£¬64£¬8
¢á Ö±½ÓÓ³É䣬×éºÏÏà¹ØÓ³É䣬ȫÏà¹ØÓ³É䣬2·×éºÏÏà¹ØÓ³Éä ¢â 00820000H£¬02000H ¡²Ï°Ìâ6.4¡³
¾ÙÀý˵Ã÷´æ´¢·ÃÎʵľֲ¿ÐÔÔÀí¡£ ¡²½â´ð¡³
´¦ÀíÆ÷·ÃÎÊ´æ´¢Æ÷ʱ£¬ÎÞÂÛÊǶÁȡָÁÊÇ´æÈ¡Êý¾Ý£¬Ëù·ÃÎʵĴ洢µ¥ÔªÔÚÒ»¶Îʱ¼äÄÚ¶¼Ç÷ÏòÓÚÒ»¸ö½ÏСµÄÁ¬ÐøÇøÓòÖУ¬Õâ¾ÍÊÇ´æ´¢·ÃÎʵľֲ¿ÐÔÔÀí¡£ ÀýÈ磬Ç󯽾ùÖµµÄº¯Êý¡£ long mean(long d[], long num) { long i,temp=0; for(i=0; i º¯ÊýÖеıäÁ¿tempÌåÏÖÁËʱ¼ä¾Ö²¿£¬ÒòΪÿ´ÎÑ»·¶¼ÒªÊ¹ÓÃËü¡£Ë³Ðò·ÃÎÊÊý×éd[]µÄ¸÷¸öÔªËØ£¨ÏàÁÚ´æ·ÅÔÚÖ÷´æ£©£¬ÌåÏÖÁ˿ռä¾Ö²¿¡£Ñ»·ÌåÄÚµÄÖ¸Áî˳Ðò´æ·Å£¬ÒÀ´Î¶ÁȡִÐÐÌåÏÖÁ˿ռä¾Ö²¿£»Í¬Ê±Öظ´Ö´ÐÐÑ»·Ì壬ÓÖÌåÏÖÁËʱ¼ä¾Ö²¿¡£ ¡²Ï°Ìâ6.5¡³ ¼òÊö´æ´¢ÏµÍ³µÄ²ã´Î½á¹¹¼°¸÷²ã´æ´¢²¿¼þÌØµã¡£ ¡²½â´ð¡³ Ϊ½â¾öÈÝÁ¿¡¢ËٶȺͼ۸ñµÄì¶Ü£¬´æ´¢ÏµÍ³²ÉÓýð×ÖËþÐͲã´Î½á¹¹£¬µ¥Î»¼Û¸ñºÍËÙ¶È×ÔÉ϶øÏÂÖð²ã¼õÉÙ£¬ÈÝÁ¿×ÔÉ϶øÏÂÖð²ãÔö¼Ó¡£ ´æ´¢ÏµÍ³µÄ¸÷²ã´æ´¢²¿¼þ×ÔÉ϶øÏÂÒÀ´ÎÊÇ£ºCPU¼Ä´æÆ÷¡¢¸ßËÙ»º´æ¡¢Ö÷´æ´æ´¢Æ÷(RAM/ROM)£¬¸¨Öú´æ´¢Æ÷Èç´ÅÅÌ¡¢¹âÅ̵ȡ£CPU¼Ä´æÆ÷¡¢¸ßËÙ»º´æÆ÷¼¯³ÉÔÚCPUоƬÉÏ£¬¶ÔÓû§À´Ëµ£¬ÊÇ͸Ã÷µÄ£¬ËüÃÇÓÃÓÚÔÝ´æÖ÷´æºÍ´¦ÀíÆ÷½»»¥µÄÊý¾Ý£¬ÒÔ¼õÉÙÆµ·±¶ÁÈ¡Ö÷´æ¶øÓ°Ïì´¦ÀíÆ÷ËÙ¶È£»Ö÷´æ´¢Æ÷Ôò¿ÉºÍ´¦ÀíÆ÷Ö±½Ó½»»»Êý¾Ý£¬¶ø¸¨Öú´æ´¢Æ÷±ØÐë¾¹ýÖ÷´æ´æ´¢Æ÷£¬²Å¿ÉÓë´¦ÀíÆ÷½øÐÐÊý¾Ý½»»»¡£ ¡²Ï°Ìâ6.6¡³ ÔÚ°ëµ¼Ìå´æ´¢Æ÷¼þÖУ¬Ê²Ã´ÊÇSRAM¡¢DRAMºÍNVRAM£¿ ¡²½â´ð¡³ SRAMÊǾ²Ì¬¶Áд´æ´¢Æ÷оƬ£¬ËüÒÔ´¥·¢Æ÷Ϊ»ù±¾´æ´¢µ¥Ôª£¬ÒÔÆäÁ½ÖÖÎȶ¨×´Ì¬±íʾÂß¼0ºÍÂß¼1¡£ DRAMÊǶ¯Ì¬¶Áд´æ´¢Æ÷оƬ£¬ËüÒÔµ¥¸öMOS¹ÜΪ»ù±¾´æ´¢µ¥Ôª£¬ÒÔ¼«¼äµçÈݳä·Åµç±íʾÁ½ÖÖÂ߼״̬£¬ÐèÒª²»¶Ïˢб£³ÖÐÅÏ¢ÕýÈ·¡£ NVRAM¶àÖ¸´øÓÐºó±¸µç³ØµÄSRAMоƬ£¬ÕâÖÖоƬ²ÉÓÃCMOSÖÆÔ칤ÒÕÉè¼ÆÒÔ¼õÉÙÓõ硣 ¡²Ï°Ìâ6.7¡³ SRAMоƬµÄƬѡÐźÅÓÐʲôÓÃ;£¿¶ÔÓ¦¶Áд¿ØÖƵÄÐźÅÊÇʲô£¿ ¡²½â´ð¡³ ƬѡÐźţºÆ¬Ñ¡ÓÐЧʱ£¬²Å¿ÉÒÔ¶Ô¸ÃоƬ½øÐжÁ/д²Ù×÷£»ÎÞЧʱ£¬Êý¾ÝÒý½Å³ÊÏÖ¸ß×è״̬¡¢ÓëϵͳÊý¾Ý×ÜÏ߸ôÀ룬²¢¿É½µµÍÄÚ²¿¹¦ºÄ¡£ ¶Á¿ØÖÆÐźţºÔÚоƬ±»Ñ¡ÖеÄǰÌáÏ£¬ÈôÓÐЧ£¬ÔòоƬ½«ÔÊÐíµØÖ·ÐźÅÑ¡ÔñµÄ´æ´¢µ¥ÔªÄÚµÄÊý¾ÝÊä³öµ½Êý¾ÝÒý½ÅÉÏ¡£ д¿ØÖÆÐźţºÔÚоƬ±»Ñ¡ÖеÄǰÌáÏ£¬ÈôÓÐЧ£¬ÔòоƬ½«Êý¾ÝÒý½ÅÉϵÄÊý¾ÝдÈëµØÖ·ÐźÅÑ¡ÔñµÄ´æ´¢µ¥ÔªÄÚ¡£ ¡²Ï°Ìâ6.8¡³ DRAMΪʲôҪˢУ¬´æ´¢ÏµÍ³ÈçºÎ½øÐÐˢУ¿ ¡²½â´ð¡³ DRAMÒÔµ¥¸öMOS¹ÜΪ»ù±¾´æ´¢µ¥Ôª£¬ÒÔ¼«¼äµçÈݳä·Åµç±íʾÁ½ÖÖÂ߼״̬¡£ÓÉÓÚ¼«¼äµçÈݵÄÈÝÁ¿ºÜС£¬³äµçµçºÉ×ÔȻй©»áºÜ¿ìµ¼ÖÂÐÅÏ¢¶ªÊ§£¬ËùÒÔÒª²»¶Ï¶ÔËü½øÐÐˢвÙ×÷¡¢¼´¶ÁÈ¡ÔÄÚÈÝ¡¢·Å´óÔÙдÈë¡£ ´æ´¢ÏµÍ³µÄˢпØÖƵç·ÌṩˢÐÂÐеØÖ·£¬½«´æ´¢DRAMоƬÖеÄijһÐÐÑ¡ÖÐˢС£Êµ¼ÊÉÏ£¬Ë¢Ð¿ØÖƵç·Êǽ«Ë¢ÐÂÐеØÖ·Í¬Ê±ËÍ´ï´æ´¢ÏµÍ³ÖÐËùÓÐDRAMоƬ£¬ËùÓÐDRAMоƬ¶¼ÔÚͬʱ½øÐÐÒ»ÐеÄˢвÙ×÷¡£ ˢпØÖƵç·ÉèÖÃÿ´ÎÐеØÖ·ÔöÁ¿£¬²¢ÔÚÒ»¶¨Ê±¼ä¼ä¸ôÄÚÆô¶¯Ò»´ÎˢвÙ×÷£¬¾ÍÄܹ»±£Ö¤ËùÓÐDRAMоƬµÄËùÓд洢µ¥ÔªµÃµ½¼°Ê±Ë¢Ð¡£ ¡²Ï°Ìâ6.9¡³ ʲôÊÇÑÚÃþROM¡¢OTP-ROM¡¢EPROM¡¢EEPROMºÍFlash ROM£¿ ¡²½â´ð¡³ ÑÚĤROM£ºÍ¨¹ýÑÚĤ¹¤ÒÕ¡¢½«Òª±£´æµÄÐÅÏ¢Ö±½ÓÖÆ×÷ÔÚоƬµ±ÖУ¬ÒÔºóÔÙÒ²²»Äܸü¸Ä¡£ OTP-ROM£º¸ÃÀàоƬ³ö³§Ê±´æ´¢µÄÐÅϢΪȫ¡°1¡±£¬ÔÊÐíÓû§½øÐÐÒ»´ÎÐÔ±à³Ì£¬´Ëºó±ã²»Äܸü¸Ä¡£ EPROM£ºÒ»°ãÖ¸¿ÉÓÃ×ÏÍâ¹â²Á³ý¡¢²¢¿ÉÖØ¸´±à³ÌµÄROM¡£ EEPROM£ºÒ²³£±í´ïΪE2PROM£¬Æä²Á³ýºÍ±à³Ì£¨¼´²Áд£©Í¨¹ý¼ÓµçµÄ·½·¨À´½øÐУ¬¿ÉʵÏÖ¡°ÔÚÏß±à³Ì¡±ºÍ¡°ÔÚÓ¦Óñà³Ì¡± Flash ROM£ºÊÇÒ»ÖÖÐÂÐ͵ĵç²Á³ý¿É±à³ÌROMоƬ£¬Äܹ»ºÜ¿ì²Á³ýÕû¸öоƬÄÚÈÝ¡£ ¡²Ï°Ìâ6.10¡³ Çë¸ø³ö½Ì²Äͼ6-7ÖÐ138ÒëÂëÆ÷µÄËùÓÐÒëÂëÊä³öÒý½Å¶ÔÓ¦µÄµØÖ··¶Î§¡£ ¡²½â´ð¡³ ¡«µÄµØÖ··¶Î§ÒÀ´ÎÊÇ£º E0000H¡«E3FFFH£¬E4000H¡«E7FFFH£¬E8000H¡«EBFFFH£¬EC000H¡«EFFFFH£¬F0000H¡«F3FFFH£¬F4000H¡«F7FFFH£¬F8000H¡«FBFFFH£¬FC000H¡«FFFFFH¡£ ¡²Ï°Ìâ6.11¡³ ʲôÊÇ´æ´¢Æ÷оƬµÄÈ«ÒëÂëºÍ²¿·ÖÒëÂ룿¸÷ÓÐÊ²Ã´ÌØµã£¿ ¡²½â´ð¡³ È«ÒëÂ룺ʹÓÃÈ«²¿ÏµÍ³µØÖ·×ÜÏß½øÐÐÒëÂë¡£ÌØµãÊǵØÖ·Î¨Ò»£¬Ò»¸ö´æ´¢µ¥ÔªÖ»¶ÔÓ¦Ò»¸ö´æ´¢Æ÷µØÖ·£¨·´Ö®ÒàÈ»£©£¬×é³ÉµÄ´æ´¢ÏµÍ³ÆäµØÖ·¿Õ¼äÁ¬Ðø¡£ ²¿·ÖÒëÂ룺ֻʹÓò¿·ÖϵͳµØÖ·×ÜÏß½øÐÐÒëÂë¡£ÆäÌØµã£ºÓÐÒ»¸öûÓб»Ê¹ÓõĵØÖ·ÐźžÍÓÐÁ½ÖÖ±à Â룬ÕâÁ½¸ö±àÂëÖ¸Ïòͬһ¸ö´æ´¢µ¥Ôª£¬³öÏÖµØÖ·Öظ´¡£ ¡²Ï°Ìâ6.12¡³ Çø±ðÈçϸ÷¸öÖ÷´æÃû³ÆµÄº¬Ò壺³£¹æÖ÷´æ£¬À©Õ¹Ö÷´æ£¬À©³äÖ÷´æ£»ÉÏλÖ÷´æÇøUMAºÍÉÏλÖ÷´æ¿éUMB£¬¸ß¶ËÖ÷´æÇøHMA£¬Ó°×ÓÖ÷´æ¡£ ¡²½â´ð¡³ ³£¹æÖ÷´æ£º8088ºÍ8086Ìṩ20¸öµØÖ·ÏßA19¡«A0£¬Ñ°Ö·1MBµÄ´æÖü¿Õ¼ä£¬ÆäÖУ¬×îµÍ640KBµÄϵͳRAMÇø±»³ÆÎª³£¹æÖ÷´æ»ò»ù±¾Ö÷´æ¡£ À©Õ¹Ö÷´æ£ºIA-32´¦ÀíÆ÷ÔÚ1MBÖ®ºóµÄÖ÷´æ¿Õ¼ä¶¼×÷ΪRAMÇøÓòʹÓ㬱»³ÆÎªÀ©Õ¹Ö÷´æ¡£ À©³äÖ÷´æ£º´¦ÀíÆ÷²»¿ÉÒÔÖ±½Ó·ÃÎÊ£¬ÀûÓá°Ìå½»»»¼¼Êõ¡±ÊµÏÖ´¦ÀíÆ÷·ÃÎÊ¡£ ÉÏλÖ÷´æÇøUMA£ºÔÚ³£¹æÖ÷´æÆäºó384KB£¨A0000H¡«FFFFFH£©Ö÷´æ³ÆÎªÉÏλÖ÷´æÇøUMA¡£ ÉÏλÖ÷´æ¿éUMB£ºÉÏλÖ÷´æÇøUMAûÓб»Ê¹Óò¿·Ö£¬±»¿ª±ÙΪÉÏλÖ÷´æ¿éUMB¡£ ¸ß¶ËÖ÷´æÇøHMA£ºÔÚʵ·½Ê½Ï£¬Í¨¹ý¿ØÖÆA20¿ª·Å£¬³ÌÐò¿ÉÒÔ·ÃÎʵÄ1MBÖ®ºóµÄ64KBÇøÓò¡£ Ó°×ÓÖ÷´æ£ºPC»úÆô¶¯ºó¿ÉÒÔ½«ROM-BIOSÓ³Éäµ½RAMÖУ¬Õⲿ·ÖÓÃ×÷ROM-BIOS¡¢²¢±»²Ù×÷ϵͳÉèÖÃΪֻ¶ÁµÄRAMÇøÓò¡£ ¡²Ï°Ìâ6.13¡³ ¿ª»úºó£¬Î¢»úϵͳ³£ÐèÒª¼ì²âÖ÷´æ´¢Æ÷ÊÇ·ñÕý³£¡£ÀýÈ磬¿ÉÒÔÏÈÏòËùÓд洢µ¥ÔªÐ´ÈëÊý¾Ý55H£¨»ò00H£©¡¢È»ºó¶Á³ö¿´ÊÇ·ñ»¹ÊÇ55H£¨»ò00H£©£»½Ó×ÅÔÙÏòËùÓд洢µ¥ÔªÐ´ÈëÊý¾ÝAAH£¨»òFFH£©¡¢È»ºó¶Á³ö¿´ÊÇ·ñ»¹ÊÇAAH£¨»òFFH£©¡£ÀûÓÃÁ½¸ö¶þ½øÖƸ÷뻥·´µÄ¡°»¨Ñù¡±Êý¾ÝµÄ·´¸´Ð´Èë¡¢¶Á³öºÍ±È½Ï¾ÍÄܹ»Ê¶±ð³öÓйÊÕϵĴ洢µ¥Ôª¡£ÀûÓûñµÃµÄÓйÊÕÏ´æ´¢µ¥ÔªËùÔÚµÄÎïÀíµØÖ·£¬Èç¹ûÄܹ»·ÖÎö³ö¸Ã´æ´¢µ¥ÔªËùÔڵĴ洢Æ÷оƬ£¬¾Í¿ÉÒÔʵÏÖоƬ¼¶µÄάÐÞ¡£ÊÔÀûÓûã±àÓïÑÔ±àдһ¸ö¼ì²â³£¹æÖ÷´æ×î¸ß64KB£¨Âß¼µØÖ·´Ó9000H¡Ã0000Hµ½9000H¡ÃFFFFH£©µÄ³ÌÐò£¬Èç¹û·¢ÏÖ´íÎóÇëÏÔʾÆäÂß¼µØÖ·¡£ ¡²½â´ð¡³ ; ´úÂë¶Î mov ax,9000h mov ds,ax mov ah,55h ; ÏÈÓÃ55H push ax again: mov bx,0 mov al,ah again1: mov [bx],al ; дÈë dec bx jnz again1 again2: mov al,[bx] ; ¶Á³ö cmp al,ah ; ¼ì²â jz next2 dispcrlf push ax mov ax,ds call disphw ; ÏÔʾ¶ÎµØÖ· mov al,':' call dispc mov ax,bx call disphw ; ÏÔÊ¾Æ«ÒÆµØÖ· pop ax next2: dec bx jnz again2 pop ax cmp ah,0aah ; ºóÓÃ0AAH jz done mov ah,0aah jmp again done: ¡²Ï°Ìâ6.14¡³ ʲôÊÇLRUÌæ»»Ëã·¨£¿80486ƬÄÚCacheÖУ¬Èç¹û3¸öÌæ»»Ë㷨λB2B1B0£½010£¬Ôò½«Ìæ»»ÄĸöCacheÐУ¬²¢¸ø³öÄãµÄÅжϹý³Ì¡£ ¡²½â´ð¡³ LRUËã·¨ÊǽüÆÚ×îÉÙʹÓᢼ´Ñ¡Ôñ×ʱ¼äδ±»Ê¹ÓõÄÊý¾Ý¿é½øÐÐÌæ»»µÄËã·¨¡£ B0£½0£¬ËµÃ÷×î½ü·ÃÎÊÁËL2/L3ÐУ¬ËùÒÔÓ¦¸ÃÌæ»»L0»òL1ÐС£B1£½1£¬ËµÃ÷×î½ü·ÃÎÊÁËL0ÐУ¬ËùÒÔÓ¦¸ÃÌæ»»L1¡£ÒòΪLRUËã·¨ÊÇÑ¡Ôñ×ʱ¼äδ±»·ÃÎʵÄCacheÐнøÐÐÌæ»»¡£ ¡²Ï°Ìâ6.15¡³ ¸ßËÙ»º³å´æ´¢Æ÷CacheµÄдÈë²ßÂÔÊǽâ¾öʲôÎÊÌâµÄ£¿ÓÐÄÄÁ½ÖÖдÈë²ßÂÔ£¬¸÷×ÔµÄдÈë²ßÂÔÊÇÔõÑùµÄ£¿ ¡²½â´ð¡³ дÈë²ßÂÔÓÃÓÚÔÚдÃüÖÐʱCacheÓëÖ÷´æÄÚÈݱ£³ÖÒ»Ö¡£ ֱдʽдÈë²ßÂÔÖ¸´¦ÀíÆ÷¶ÔCacheдÈëµÄͬʱ£¬½«Êý¾ÝҲдÈëµ½Ö÷´æ£¬ÕâÑùÀ´±£Ö¤Ö÷´æºÍCacheÄÚÈÝÒ»Ö¡£Ëü¼òµ¥¿É¿¿¡£ »ØÐ´CacheÖ»ÓÐÔÚÐÐÌæ»»Ê±²Å¿ÉÄÜдÈëÖ÷´æ£¬Ð´ÈëÖ÷´æµÄ´ÎÊý£¬»áÉÙÓÚ´¦ÀíÆ÷ʵ¼ÊÖ´ÐеÄдÈë²Ù×÷Êý¡£»ØÐ´CacheµÄÐÔÄÜÒª¸ßÓÚֱдCache£¬µ«ÊµÏֽṹÂÔΪ¸´ÔÓ¡£ ¡²Ï°Ìâ6.16¡³ 80486ƬÉÏ8KB CacheµÄ±êÇ©´æ´¢Æ÷ΪʲôֻÐèÒª21λ£¿ ¡²½â´ð¡³ 80486ƬÉÏCache¹²ÓÐ8KBÈÝÁ¿£¬²ÉÓÃ4·×éºÏµØÖ·Ó³É䷽ʽ¡£¶ÔÓÚ4GBÈÝÁ¿µÄÖ÷´æÀ´Ëµ£¬ÒÔCache·Ϊµ¥Î»£¬¿ÉÒÔ·Ö³É4GB¡Â2KB£½232¡Â211£½221¸öCache·¡£ÕâÑùÿ¸öCacheÐÐÖ»ÒªÉè¼ÆÒ»¸ö21λµÄ±êÇ©´æ´¢Æ÷£¬¼Ç¼¸ÃCacheÐÐÓ³Éäµ½ÄĸöÖ÷´æµÄCache·¡£ÔÙ½áºÏÖ±½ÓÓ³ÉäµÄ×éºÅ¾Í¿ÉÒÔÃ÷È·¸ÃCacheÐжÔÓ¦ÄĸöÖ÷´æ¿é¡£ ¡²Ï°Ìâ6.17¡³ ¸ßËÙ»º´æµÄдÈë²Ù×÷Óм¸¸öºÜ½üËÆµÄÓ¢ÎĴʻ㣬ËüÃÇ·Ö±ð±íʾʲôº¬Ò壿 £¨1£©Write Through £¨2£©Write Back £¨3£©Write Around £¨4£©Fetch on Write ¡²½â´ð¡³ £¨1£©Write Through£ºÐ´ÃüÖÐʱµÄֱд²ßÂÔ¡£ £¨2£©Write Back£ºÐ´ÃüÖÐʱµÄ»ØÐ´²ßÂÔ¡£ £¨3£©Write Around£ºÐ´Î´ÃüÖÐʱµÄ²»Ð´·ÖÅä·¨£¬¼´ÈÆÐ´·¨¡£ £¨4£©Fetch on Write£ºÐ´Î´ÃüÖÐʱµÄд·ÖÅä·¨£¬¼´Ð´Ê±È¡·¨¡£ ¡²Ï°Ìâ6.18¡³ Çø±ðÈçϸßËÙ»º´æÖеĸÅÄ £¨1£©Ö÷´æÊý¾Ý¿éBlock £¨2£©¸ßËÙ»º´æÐÐLine £¨3£©¸ßËÙ»º´æ×éSet £¨4£©¸ßËÙ»º´æÂ·Way ¡²½â´ð¡³ £¨1£©Ö÷´æÊý¾Ý¿éBlock£º¸ßËÙ»º´æÓëÖ÷´æ¼äµÄÊý¾Ý´«ËÍÒÔÊý¾Ý¿é£¨Block£©Îªµ¥Î»£¬ÀýÈçB¸ö×Ö¡£Ö÷´æÊý¾Ý¿éBlockÊÇÖ÷´æÖÐÁ¬ÐøµÄB¸ö×ÖÊý¾Ý¡£ £¨2£©¸ßËÙ»º´æÐÐLine£ºÖ¸¸ßËÙ»º´æÖаüº¬B¸ö×ÖµÄÒ»¸öµ¥Ôª¡£ £¨3£©¸ßËÙ»º´æ×éSet£º×éºÏÏà¹ØÓ³É佫¶à¸öCacheÐÐ×÷Ϊһ¸ö×飨Set£©¡£ £¨4£©¸ßËÙ»º´æÂ·Way£º×éºÏÏà¹ØÓ³É佫ËùÓÐ×éÖÐͬλÖÃCacheÐгÆÎªÒ»Â·£¨Way£©¡£ ¡²Ï°Ìâ6.19¡³ ʲôÊǶÎÑ¡ÔñÆ÷¡¢ÃèÊö·û¡¢ÃèÊö·û±íºÍÃèÊö·û±í¼Ä´æÆ÷£¿ ¡²½â´ð¡³ ¶ÎÑ¡ÔñÆ÷£º±£»¤·½Ê½ÏµÄ16λ¶Î¼Ä´æÆ÷¾ÍÊǶÎÑ¡ÔñÆ÷¡£ ÃèÊö·û£ºÊDZ£»¤·½Ê½ÒýÈëµÄÊý¾Ý½á¹¹£¬ÓÐ8¸ö×Ö½Ú64룬¾ßÓжλùµØÖ·¡¢·ÃÎÊȨÏÞ¡¢¶Î½çÏÞµÈ×ֶΡ£IA-32´¦ÀíÆ÷ÀûÓÃËüÀ´ÊµÏÖ´æ´¢¹ÜÀí¡¢ÌØÈ¨Óë±£»¤¡£ ÃèÊö·û±í£ºÃèÊö·û±íÊÇ´æ·ÅÃèÊö·ûµÄÒ»¸öÌØÊâÇøÓò¶Î¡£ ÃèÊö·û±í¼Ä´æÆ÷£ºÖ¸Ã÷ÃèÊö·û±íËùÔÚÖ÷´æµØÖ·µÄ¼Ä´æÆ÷¡£ ¡²Ï°Ìâ6.20¡³ IA-32´¦ÀíÆ÷ÔÚ±£»¤·½Ê½Ï£¬¶Î¼Ä´æÆ÷ÊÇʲôÄÚÈÝ£¿ÈôDS£½78H£¬ËµÃ÷ÔÚ±£»¤·½Ê½Æä¾ßÌåµÄº¬Òå¡£ ¡²½â´ð¡³ ¶Î¼Ä´æÆ÷ÊǶÎÑ¡ÔñÆ÷£¬°üº¬3¸öÓò£¬Ö¸ÏòÒ»¸ö¶ÎÃèÊö·û¡£ DS£½78H£¬ËµÃ÷µ±Ç°Êý¾Ý¶ÎÃèÊö·ûÊÇÈ«¾ÖÃèÊö·û±íÖеĵÚ0FH¸öÃèÊö·û¡£±¾´Î·ÃÎÊÊý¾ÝµÄÌØÈ¨¼¶±ðΪ0£¬×î¸ß¡£ ¡²Ï°Ìâ6.21¡³ ²ÉÓÃ4KB·ÖÒ³£¬ËµÃ÷IA-32´¦ÀíÆ÷½«ÏßÐÔµØÖ·×ª»»ÎªÎïÀíµØÖ·µÄ¹ý³Ì¡£ ¡²½â´ð¡³ ͨ¹ý2¼¶²é±íÀ´ÊµÏÖÏßÐÔµØÖ·×ª»»ÎªÎ»ÎïÀíµØÖ·¡£ £¨1£©ÔÚCR3Öаüº¬×ŵ±Ç°ÈÎÎñµÄҳĿ¼µÄÆðʼµØÖ·£¬½«Æä¼ÓÉÏÏßÐÔµØÖ·×î¸ß10λA31¡«A22È·¶¨µÄҳĿ¼ÏîµÄÆ«ÒÆÁ¿£¬±ã·ÃÎʵ½Ö¸¶¨µÄҳĿ¼Ïî¡£ £¨2£©ÔÚ´ËҳĿ¼ÏîÖаüº¬×ÅÖ¸ÏòµÄÒ³±íµÄÆðʼµØÖ·£¬½«Æä¼ÓÉÏÏßÐÔµØÖ·ÖмäµÄ10λA21¡«A12È·¶¨µÄÒ³±íÏîµÄÆ«ÒÆÁ¿£¬±ã·ÃÎʵ½Ö¸¶¨µÄÒ³±íÏî¡£ £¨3£©ÔÚ´ËÒ³±íÏîÖаüº¬×ÅÒª·ÃÎʵÄÒ³ÃæµÄÆðʼµØÖ·£¬½«Æä¼ÓÉÏÏßÐÔµØÖ·×îµÍ12λA11¡«A0µÄÆ«ÒÆÁ¿£¬¾Í´ÓÕâÒ»Ò³ÖзÃÎʵ½ËùѰַµÄÎïÀíµ¥Ôª¡£ µÚ7Õ ÊäÈëÊä³ö½Ó¿Ú ¡²Ï°Ìâ7.1¡³¼ò´ðÌâ ¡²½â´ð¡³ ¢Ù ÍⲿÉ豸£¬ÔÚ¹¤×÷ÔÀí¡¢Çý¶¯·½Ê½¡¢ÐÅÏ¢¸ñʽ¡¢ÒÔ¼°¹¤×÷Ëٶȵȷ½Ãæ±Ë´Ë²î±ðºÜ´ó£¬Óë´¦ÀíÆ÷µÄ¹¤×÷·½Ê½Ò²´óÏྶͥ¡£ËùÒÔ£¬ÍâÉè²»ÄÜÏñ´æ´¢Æ÷оƬÄÇÑùÖ±½ÓÓë´¦ÀíÆ÷ÏàÁ¬£¬±ØÐë¾¹ýÒ»¸öÖмäµç·¡£ ¢Ú Êý¾Ý»º³åÓÃÓÚÆ¥Åä¿ìËٵĴ¦ÀíÆ÷ÓëÏà¶ÔÂýËÙµÄÍâÉè»òÁ½¸ö¹¦Äܲ¿¼þËٶȲ»Æ¥ÅäµÄÊý¾Ý½»»»¡£ ¢Û ´¦ÀíÆ÷Ïò½Ó¿ÚоƬÏàÓ¦¶Ë¿ÚдÈëÌØ¶¨µÄÊý¾Ý£¬ÓÃÓÚÑ¡ÔñI/OоƬµÄ¹¤×÷·½Ê½»ò¿ØÖÆÍâÉ蹤×÷£¬¸ÃÊý¾Ý³ÆÃüÁî×Ö»ò¿ØÖÆ×Ö¡£ ¢Ü PC»úÖÐCMOS RAM²»ÊôÓÚÖ÷´æ¿Õ¼ä£¬CMOS RAMÓÐ64¸ö×Ö½ÚÈÝÁ¿£¬ÒÔ8λI/O½Ó¿ÚÐÎʽÓë´¦ÀíÆ÷Á¬½Ó£¬Í¨¹ýÁ½¸öI/OµØÖ··ÃÎÊ¡£ ¢Ý ÔÚÊäÈë½Ó¿ÚÖУ¬Îª±ÜÃâ¶à¸öÉ豸ͬʱÏò×ÜÏß·¢ËÍÊý¾Ý£¬ÐèÒª°²ÅÅÒ»¸öÈý̬»º³åÆ÷¡£Ö»Óе±´¦ÀíÆ÷ѡͨʱ£¬²ÅÔÊÐí±»Ñ¡ÖÐÉ豸½«Êý¾ÝË͵½ÏµÍ³×ÜÏߣ¬´ËʱÆäËûÊäÈëÉ豸ÓëÊý¾Ý×ÜÏ߸ôÀë¡£ ¢Þ ͸Ã÷Ëø´æÆ÷µÄ¿ØÖƶËΪÓÐЧµçƽʱ£¬Êä³öËæÊäÈë±ä»¯£¬³£³ÆÎªÖ±Í¨»ò͸Ã÷¡£·Ç͸Ã÷Ëø´æÆ÷²»ÂÛÆä¿ØÖÆ¶ËΪµÍ»òΪ¸ßµçƽ£¬Êä³ö״̬¶¼²»ËæÊäÈë±ä»¯¡£ ¢ß Èç·¢¹â¶þ¼«¹Ü¡¢°´¼üºÍ¿ª¹ØµÈ¼òµ¥É豸£¬ËüÃǵŤ×÷·½Ê½Ê®·Ö¼òµ¥£»Ïà¶Ô´¦ÀíÆ÷¶øÑÔ£¬Æä״̬ºÜÉÙ·¢Éú±ä»¯»ò±ä»¯ºÜÂý¡£ÕâЩÉ豸Óë´¦ÀíÆ÷½»»»Êý¾Ýʱ£¬¿É²ÉÓÃÎÞÌõ¼þ´«ËÍ¡£ ¢à ÔÚ²éѯ³ÌÐòÖУ¬µ±²éѯ³¬¹ýÁ˹涨µÄʱ¼ä£¬É豸ÈÔδ¾ÍÐ÷ʱ£¬¾ÍÒý·¢³¬Ê±´íÎó¡£ ¢á Ô¶µ÷ÓÃCALLÖ¸ÁîÀûÓÃÖ±½Ó»ò¼ä½ÓѰַµ÷ÓÃÁíÒ»¸ö´úÂë¶ÎµÄ×Ó³ÌÐò£»INT nÖ¸ÁîÀûÓÃÖжÏÏòÁ¿±í£¨µØÖ·±í£©µÄ·½·¨µ÷ÓÃÁíÒ»¸ö´úÂë¶ÎµÄÖжϷþÎñ³ÌÐò£¬»¹Óб£´æ±êÖ¾¼Ä´æÆ÷µÄ¹¦ÄÜ¡£ ¢â ÍⲿÖжÏÊÇÓÉ´¦ÀíÆ÷ÍⲿÌá³öÖжÏÇëÇóÒýÆðµÄ³ÌÐòÖжϡ£Ïà¶ÔÓÚ´¦ÀíÆ÷À´Ëµ£¬ÍⲿÖжÏÊÇËæ»ú²úÉúµÄ£¬ËùÒÔÊÇÕæÕýÒâÒåÉϵÄÖжϡ£ ¡²Ï°Ìâ7.2¡³ÅжÏÌâ ¡²½â´ð¡³ ¢Ù ¶Ô ¢Ú ¶Ô ¢Û ¶Ô ¢Ü ´í ¢Ý ´í ¢Þ ´í ¢ß ¶Ô ¢à ´í ¢á ¶Ô ¢â ´í ¡²Ï°Ìâ7.3¡³Ìî¿ÕÌâ ¡²½â´ð¡³ ¢Ù Êý×ÖÁ¿¡¢¿ª¹ØÁ¿¡¢Âö³åÁ¿ ¢Ú I/O¶ÀÁ¢£¬ÊäÈëÊä³ö£¨I/O£©Ö¸Áֱ½ÓѰַ£¬DX¼Ä´æÆ÷¼ä½ÓѰַ ¢Û I/O¶Ë¿Ú£¨½Ó¿Ú£¬ÍâÉ裩£¬´¦ÀíÆ÷£¨Ö÷»ú£©£¬I/O¶Á ¢Ü ¼Ä´æÆ÷£¬I/OµØÖ·µÄÖ±½ÓѰַ ¢Ý I/OµØÖ·µÄ¼ä½ÓѰַ£¬¼Ä´æÆ÷ ¢Þ Ö±½Ó´æ´¢Æ÷´æÈ¡£¬DMAÇëÇó£¬×ÜÏßÇëÇó£¬×ÜÏßÏìÓ¦£¬¸ß×裬DMAC£¨DMA¿ØÖÆÆ÷£© ¢ß ³ý·¨´í£¬2 ¢à 1£¬STI£¬CLI£¬0 ¢á 1KB£¬20H£¬4£¬F010H¡Ã2300H ¢â IR3£¬IR3ÇëÇóµÄ ¡²Ï°Ìâ7.4¡³ Ò»°ãµÄI/O½Ó¿Úµç·°²ÅÅÓÐÄÄÈýÀà¼Ä´æÆ÷£¿ËüÃǸ÷×ÔµÄ×÷ÓÃÊÇʲô£¿ ¡²½â´ð¡³ ¢Ù Êý¾Ý¼Ä´æÆ÷ ±£´æ´¦ÀíÆ÷ÓëÍâÉèÖ®¼ä½»»»µÄÊý¾Ý¡£ ¢Ú ״̬¼Ä´æÆ÷ ±£´æÍâÉ赱ǰµÄ¹¤×÷״̬ÐÅÏ¢¡£´¦ÀíÆ÷ͨ¹ý¸Ã¼Ä´æÆ÷ÕÆÎÕÍâÉè״̬£¬½øÐÐÊý¾Ý½»»»¡£ ¢Û ¿ØÖƼĴæÆ÷ ±£´æ´¦ÀíÆ÷¿ØÖƽӿڵç·ºÍÍâÉè²Ù×÷µÄÓйØÐÅÏ¢¡£´¦ÀíÆ÷Ïò¿ØÖƼĴæÆ÷дÈë¿ØÖÆÐÅÏ¢£¬Ñ¡Ôñ½Ó¿Úµç·µÄ²»Í¬¹¤×÷·½Ê½ºÍÓëÍâÉè½»»»Êý¾ÝÐÎʽ¡£ ¡²Ï°Ìâ7.5¡³ ʲôÊÇI/O¶ÀÁ¢±àÖ·ºÍͳһ±àÖ·£¬¸÷ÓÐÊ²Ã´ÌØµã£¿ ¡²½â´ð¡³ ¶ÀÁ¢±àÖ·Êǽ«I/O¶Ë¿Úµ¥¶À±àÅŵØÖ·£¬¶ÀÁ¢ÓÚ´æ´¢Æ÷µØÖ·¡£ ͳһ±àÖ·Êǽ«I/O¶Ë¿ÚÓë´æ´¢Æ÷µØÖ·Í³Ò»±àÅÅ£¬¹²ÏíÒ»¸öµØÖ·¿Õ¼ä¡£ ¶Ë¿Ú¶ÀÁ¢±àÖ··½Ê½£¬´¦ÀíÆ÷³ýÒª¾ßÓд洢Æ÷·ÃÎʵÄÖ¸ÁîºÍÒý½ÅÍ⣬»¹ÐèÒªÉè¼ÆI/O·ÃÎʵÄI/OÖ¸ÁîºÍI/OÒý½Å£¬ÆäÓŵãÊÇ£º²»Õ¼Óô洢Æ÷¿Õ¼ä£»I/OÖ¸Áîʹ³ÌÐòÖÐI/O²Ù×÷һĿÁËÈ»£»½ÏСµÄI/OµØÖ·¿Õ¼äʹµØÖ·ÒëÂë¼òµ¥¡£µ«I/OÖ¸ÁÄܼòµ¥£¬Ñ°Ö··½Ê½Ã»Óд洢Æ÷Ö¸Áî·á¸»¡£ ͳһ±àÖ··½Ê½£¬´¦ÀíÆ÷²»ÔÙÇø·ÖI/O¿Ú·ÃÎʺʹ洢Æ÷·ÃÎÊ¡£ÆäÓŵãÊÇ£º´¦ÀíÆ÷²»ÓÃÉè¼ÆI/OÖ¸ÁîºÍÒý½Å£¬·á¸»µÄ´æ´¢Æ÷·ÃÎÊ·½·¨Í¬ÑùÄܹ»ÔËÓÃÓÚI/O·ÃÎÊ¡£È±µãÊÇ£ºI/O¶Ë¿Ú»áÕ¼Óô洢Æ÷µÄ²¿·ÖµØÖ·¿Õ¼ä£¬Í¨¹ýÖ¸Áî²»Ò×±æÈÏI/O²Ù×÷¡£ ¡²Ï°Ìâ7.6¡³ ¼òÊöÖ÷»úÓëÍâÉè½øÐÐÊý¾Ý½»»»µÄ¼¸ÖÖ³£Ó÷½Ê½¡£ ¡²½â´ð¡³ Ö÷»úÓëÍâÉè½øÐÐÊý¾Ý½»»»µÄ¼¸ÖÖ³£Ó÷½Ê½£º ¢Ù ÎÞÌõ¼þ´«ËÍ·½Ê½£¬³£ÓÃÓÚ¼òµ¥É豸£¬´¦ÀíÆ÷ÈÏΪËüÃÇ×ÜÊÇ´¦ÓÚ¾ÍÐ÷״̬£¬ËæÊ±½øÐÐÊý¾Ý´«ËÍ¡£ ¢Ú ³ÌÐò²éѯ·½Ê½£º´¦ÀíÆ÷Ê×ÏȲéѯÍâÉ蹤×÷״̬£¬ÔÚÍâÉè¾ÍÐ÷ʱ½øÐÐÊý¾Ý´«ËÍ¡£ ¢Û ÖжϷ½Ê½£ºÍâÉèÔÚ×¼±¸¾ÍÐ÷µÄÌõ¼þÏÂͨ¹ýÇëÇóÒý½ÅÐźţ¬Ö÷¶¯Ïò´¦ÀíÆ÷Ìá³ö½»»»Êý¾ÝµÄÇëÇó¡£´¦ÀíÆ÷ÎÞÆäËû¸ü½ôÆÈÈÎÎñ£¬ÔòÖ´ÐÐÖжϷþÎñ³ÌÐòÍê³ÉÒ»´ÎÊý¾Ý´«ËÍ¡£ ¢Ü DMA´«ËÍ£º DMA¿ØÖÆÆ÷¿É½Ó¹Ü×ÜÏߣ¬×÷Ϊ×ÜÏßµÄÖ÷¿ØÉ豸£¬Í¨¹ýϵͳ×ÜÏßÀ´¿ØÖÆ´æ´¢Æ÷ºÍÍâÉèÖ±½Ó½øÐÐÊý¾Ý½»»»¡£´ËÖÖ·½Ê½ÊÊÓÃÓÚÐèÒª´óÁ¿Êý¾Ý¸ßËÙ´«Ë͵ij¡ºÏ¡£ ¡²Ï°Ìâ7.7¡³ ²Î¿´Í¼7-5£¬±à³ÌʵÏÖÒÔϹ¦ÄÜ£ºµ±K0¼üµ¥¶À°´ÏÂʱ£¬·¢¹â¶þ¼«¹ÜL0¡«L7½«ÒÀ´ÎµãÁÁ£¨L0£¬L1£¬L2£¬??L7£©£¬Ã¿¸öά³Ö200ms£»µ±K1¼üµ¥¶À°´ÏÂʱ£¬·¢¹â¶þ¼«¹ÜL0¡«L7½«·´ÏòÒÀ´ÎµãÁÁ£¨L7£¬L6£¬L5£¬??L0£©£¬Ã¿¸öҲά³Ö200ms£»ÔÚÆäËûÇé¿öϸ÷·¢¹â¶þ¼«¹Ü¾ù²»µãÁÁ¡£¼Ù¶¨ÓÐÑÓʱ200ms µÄ×Ó³ÌÐòDELAY¿ÉÖ±½Óµ÷Óᣠ¡²½â´ð¡³ again: mov dx,8000h in al,dx cmp al,0feh ; D7¡«D0£½11111110B £¿ jz next1 ; µ¥¶À°´ÏÂK0£¬×ªÒƵ½next1 cmp al,0fdh ; D7¡«D0£½11111101B £¿ jz next2 ; µ¥¶À°´ÏÂK1£¬×ªÒƵ½next2 jmp again ; ÆäËüÇé¿ö²»µãÁÁ next1: mov cx,8 mov al,1; ´ÓK0¿ªÊ¼ next11: out dx,al; ij¸öLEDµçÁÁ call delay ; ÑÓʱ200ms shl al,1 ; rol al,1 loop next11 jmp again next2: mov cx,8 mov al,80h ; ´ÓK7¿ªÊ¼ next21: out dx,al; ij¸öLEDµçÁÁ call delay ; ÑÓʱ200ms shr al,1 ; ror al,1 loop next21 jmp again ¡²Ï°Ìâ7.8¡³ ÏÖÓÐÒ»¸öÊäÈëÉ豸£¬ÆäÊý¾Ý¶Ë¿ÚµØÖ·ÎªFFE0H£¬×´Ì¬¶Ë¿ÚµØÖ·ÎªFFE2H¡£µ±×´Ì¬±êÖ¾D0£½1ʱ£¬±íÃ÷Ò»¸ö×Ö½ÚµÄÊäÈëÊý¾Ý¾ÍÐ÷¡£Çë±àдÀûÓòéѯ·½Ê½½øÐÐÊý¾Ý´«Ë͵ijÌÐò¶Î£¬ÒªÇó´Ó¸ÃÉ豸¶ÁÈ¡100¸ö×Ö½Ú±£´æµ½BUFFER»º³åÇø¡£ ¡²½â´ð¡³ mov bx, offset buffer mov cx,100 again: mov dx,0ffe2h status: in al,dx ; ²éѯһ´Î test al,01h jz status mov dx,0ffe0h in al,dx ; ÊäÈëÒ»¸ö×Ö½Ú mov [bx],al inc bx loop again ; Ñ»·£¬ÊäÈë100¸ö×Ö½Ú ¡²Ï°Ìâ7.9¡³ ij¸ö×Ö·ûÊä³öÉ豸£¬ÆäÊý¾Ý¶Ë¿ÚºÍ״̬¶Ë¿ÚµÄµØÖ·¾ùΪ80H¡£ÔÚ¶Áȡ״̬ʱ£¬µ±±ê־λD7£½0ʱ£¬±íÃ÷¸ÃÉ豸ÏУ¬¿ÉÒÔ½ÓÊÕÒ»¸ö×Ö·û¡£Çë±àдÀûÓòéѯ·½Ê½½øÐÐÊý¾Ý´«Ë͵ijÌÐò¶Î£¬ÒªÇ󽫴æ·ÅÓÚ»º³åÇøADDR´¦µÄÒ»´®×Ö·û£¨ÒÔ0Ϊ½áÊø±êÖ¾£©Êä³ö¸ø¸ÃÉ豸¡£ ¡²½â´ð¡³ mov bx,offset addr again: cmp byte ptr [bx],0 jz done status: in al,80h; ²éѯ test al,80h jnz status mov al,[bx] out 80h,al ; Êä³öÒ»¸ö×Ö½Ú inc bx jmp again ; Ñ»· done: ¡²Ï°Ìâ7.10¡³ ÒÔ¿ÉÆÁ±ÎÖжÏΪÀý£¬ËµÃ÷Ò»´ÎÍêÕûµÄÖжϹý³ÌÖ÷Òª°üÀ¨ÄÄЩ»·½Ú£¿ ¡²½â´ð¡³ ÖжÏÇëÇó£ºÍâÉèͨ¹ýÓ²¼þÐźŵÄÐÎʽ¡¢Ïò´¦ÀíÆ÷Òý½Å·¢ËÍÓÐЧÇëÇóÐźš£ ÖжÏÏìÓ¦£ºÔÚÂú×ãÒ»¶¨Ìõ¼þʱ£¬´¦ÀíÆ÷½øÈëÖжÏÏìÓ¦×ÜÏßÖÜÆÚ¡£ ¹ØÖжϣº´¦ÀíÆ÷ÔÚÏìÓ¦ÖжϺó»á×Ô¶¯¹Ø±ÕÖжϡ£ ¶Ïµã±£»¤£º´¦ÀíÆ÷ÔÚÏìÓ¦ÖжϺó½«×Ô¶¯±£»¤¶ÏµãµØÖ·¡£ ÖжÏԴʶ±ð£º´¦ÀíÆ÷ʶ±ð³öµ±Ç°¾¿¾¹ÊÇÄĸöÖжÏÔ´Ìá³öÁËÇëÇ󣬲¢Ã÷È·ÓëÖ®ÏàÓ¦µÄÖжϷþÎñ³ÌÐòËùÔÚÖ÷´æÎ»ÖᣠÏÖ³¡±£»¤£º¶Ô´¦ÀíÆ÷Ö´ÐгÌÐòÓÐÓ°ÏìµÄ¹¤×÷»·¾³£¨Ö÷ÒªÊǼĴæÆ÷£©½øÐб£»¤¡£ ÖжϷþÎñ£º´¦ÀíÆ÷Ö´ÐÐÏàÓ¦µÄÖжϷþÎñ³ÌÐò£¬½øÐÐÊý¾Ý´«Ë͵ȴ¦Àí¹¤×÷¡£ »Ö¸´ÏÖ³¡£ºÍê³ÉÖжϷþÎñºó£¬»Ö¸´´¦ÀíÆ÷ÔÀ´µÄ¹¤×÷»·¾³¡£ ¿ªÖжϣº´¦ÀíÆ÷ÔÊÐíÐÂµÄ¿ÉÆÁ±ÎÖжϡ£ ÖжϷµ»Ø£º´¦ÀíÆ÷Ö´ÐÐÖжϷµ»ØÖ¸Á³ÌÐò·µ»Ø¶Ïµã¼ÌÐøÖ´ÐÐÔÀ´µÄ³ÌÐò¡£ ¡²Ï°Ìâ7.11¡³ ʲôÊÇÖжÏÔ´£¿ÎªÊ²Ã´Òª°²ÅÅÖжÏÓÅÏȼ¶£¿Ê²Ã´ÊÇÖжÏǶÌ×£¿Ê²Ã´Çé¿öϳÌÐò»á·¢ÉúÖжÏǶÌ×£¿ ¡²½â´ð¡³ ¼ÆËã»úϵͳÖУ¬·²ÊÇÄÜÒýÆðÖжϵÄʼþ»òÔÒò£¬±»³ÆÎªÖжÏÔ´¡£ ´¦ÀíÆ÷ËæÊ±¿ÉÄÜ»áÊÕµ½¶à¸öÖжÏÔ´Ìá³öµÄÖжÏÇëÇó£¬Òò´Ë£¬ÎªÃ¿¸öÖжÏÔ´·ÖÅäÒ»¼¶ÖжÏÓÅÏÈȨ£¬¸ù¾ÝËüÃǵĸߵÍ˳Ðò¾ö¶¨ÏìÓ¦µÄÏÈºó¡£ Ò»¸öÖжϴ¦Àí¹ý³ÌÖÐÓÖÓÐÒ»¸öÖжÏÇëÇó¡¢²¢±»ÏìÓ¦´¦Àí£¬±»³ÆÎªÖжÏǶÌס£ ±ØÐëÔÚÖжϷþÎñ³ÌÐòÖдò¿ªÖжϣ¬³ÌÐò²Å»á·¢ÉúÖжÏǶÌס£ ¡²Ï°Ìâ7.12¡³ Ã÷È·ÈçÏÂÖжÏÓйصĸÅÄÖжÏÔ´¡¢ÖжÏÇëÇó¡¢ÖжÏÏìÓ¦¡¢¹ØÖжϡ¢¿ªÖжϡ¢ÖжϷµ»Ø¡¢ÖжÏʶ±ð¡¢ÖжÏÓÅÏÈȨ¡¢ÖжÏǶÌס¢Öжϴ¦Àí¡¢ÖжϷþÎñ¡£ ¡²½â´ð¡³ ÖжÏÔ´£ºÄÜÒýÆðÖжϵÄʼþ»òÔÒò¡£ ÖжÏÇëÇó£ºÊÇÍâÉèͨ¹ýÓ²¼þÐźŵÄÐÎʽ¡¢Ïò´¦ÀíÆ÷Òý½Å·¢ËÍÓÐЧÇëÇóÐźš£ ÖжÏÏìÓ¦£ºÖжÏÏìÓ¦ÊÇÔÚÂú×ãÒ»¶¨Ìõ¼þʱ£¬´¦ÀíÆ÷½øÈëÖжÏÏìÓ¦×ÜÏßÖÜÆÚ¡£ ¹ØÖжϣº½ûÖ¹´¦ÀíÆ÷ÏìÓ¦¿ÉÆÁ±ÎÖжϡ£ ¿ªÖжϣºÔÊÐí´¦ÀíÆ÷ÏìÓ¦¿ÉÆÁ±ÎÖжϡ£ ÖжϷµ»Ø£º´¦ÀíÆ÷Ö´ÐÐÖжϷµ»ØÖ¸Á½«¶ÏµãµØÖ·´Ó¶ÑÕ»Öе¯³ö£¬³ÌÐò·µ»Ø¶Ïµã¼ÌÐøÖ´ÐÐÔÀ´µÄ³ÌÐò¡£ ÖжÏʶ±ð£º´¦ÀíÆ÷ʶ±ð³öµ±Ç°¾¿¾¹ÊÇÄĸöÖжÏÔ´Ìá³öÁËÇëÇ󣬲¢Ã÷È·ÓëÖ®ÏàÓ¦µÄÖжϷþÎñ³ÌÐòËùÔÚÖ÷´æÎ»ÖᣠÖжÏÓÅÏÈȨ£ºÎªÃ¿¸öÖжÏÔ´·ÖÅäÒ»¼¶ÖжÏÓÅÏÈȨ£¬¼´ÏµÍ³Éè¼ÆÕßÊÂÏÈΪÿ¸öÖжÏÔ´È·¶¨´¦ÀíÆ÷ÏìÓ¦ËûÃǵÄÏȺó˳Ðò¡£ ÖжÏǶÌ×£ºÔÚÒ»¸öÖжϴ¦Àí¹ý³ÌÖÐÓÖÓÐÒ»¸öÖжÏÇëÇó±»ÏìÓ¦´¦Àí£¬³ÆÎªÖжÏǶÌס£ Öжϴ¦Àí£º½Óµ½ÖжÏÇëÇóÐźźó£¬ËæÖ®²úÉúµÄÕû¸ö¹¤×÷¹ý³Ì£¬³ÆÖжϴ¦Àí¡£ ÖжϷþÎñ£ºÖ¸´¦ÀíÆ÷Ö´ÐÐÏàÓ¦µÄÖжϷþÎñ³ÌÐò£¬½øÐÐÊý¾Ý´«Ë͵ȴ¦Àí¹¤×÷¡£ ¡²Ï°Ìâ7.13¡³ °´ÕÕͼ7-10ËùʾµÄÖжϲéѯ½Ó¿ÚÓëÏàÓ¦µÄÁ÷³Ìͼ£¬±àдÓÃÓÚÖжϷþÎñµÄ³ÌÐò¶Î¡£¾ßÌåÒªÇóÊÇ£¬µ±³ÌÐò²éµ½ÖжÏÉ豸0ÓÐÖжÏÇëÇ󣨶ÔÓ¦Êý¾ÝÏßD0£©£¬Ëü½«µ÷ÓÃÃûΪPROC0µÄ×Ó³ÌÐò£»Èç´Ë£¬ÒÀ´ÎÈ¥²éÖжÏÉ豸1¡«ÖжÏÉ豸3£¬²¢·Ö±ðµ÷ÓÃÃûΪPROC1¡«PROC3µÄ×Ó³ÌÐò¡£ ¡²½â´ð¡³ sti push ax push dx ? mov dx,4000h status: in al,dx test al,01h jnz service0 test al,02h jnz service1 test al,04h jnz service2 test al,08h jnz service3 ? service0: call proc0 jmp done service1: call proc1 jmp done service2: call proc2 jmp done service3: call proc3 jmp done ?? done: pop dx pop ax iret ¡²Ï°Ìâ7.14¡³ ʲôÊÇDMA¶ÁºÍDMAд£¿Ê²Ã´ÊÇDMA¿ØÖÆÆ÷8237AµÄµ¥×Ö½Ú´«ËÍ¡¢Êý¾Ý¿é´«ËͺÍÇëÇó´«ËÍ£¿ ¡²½â´ð¡³ DMA¶Á£º´æ´¢Æ÷µÄÊý¾ÝÔÚDMA¿ØÖÆÆ÷¿ØÖÆÏ±»¶Á³ö´«Ë͸øÍâÉè¡£ DMAд£ºÍâÉèµÄÊý¾ÝÔÚDMA¿ØÖÆÆ÷¿ØÖÆÏ±»Ð´Èë´æ´¢Æ÷¡£ µ¥×Ö½Ú´«ËÍ·½Ê½£ºÃ¿´ÎDMA´«ËÍʱ½ö´«ËÍÒ»¸ö×Ö½Ú¡£´«ËÍÒ»¸ö×Ö½ÚÖ®ºó£¬DMA¿ØÖÆÆ÷ÊÍ·Åϵͳ×ÜÏߣ¬½«¿ØÖÆÈ¨»¹¸ø´¦ÀíÆ÷¡£ Êý¾Ý¿é´«ËÍ£º DMA´«ËÍÆô¶¯ºó¾ÍÁ¬ÐøµØ´«ËÍÊý¾Ý£¬Ö±µ½¹æ¶¨µÄ×Ö½ÚÊý´«ËÍÍê¡£ ÇëÇó´«ËÍ£ºDMA´«ËÍÓÉÇëÇóÐźſØÖÆ¡£Èç¹ûÇëÇóÐźÅÒ»Ö±ÓÐЧ£¬¾ÍÁ¬Ðø´«ËÍÊý¾Ý£»µ«µ±ÇëÇóÐźÅÎÞЧʱ£¬DMA´«Ëͱ»ÔÝʱÖÐÖ¹¡£ ¡²Ï°Ìâ7.15¡³ IA-32´¦ÀíÆ÷ºÎʱ´¦ÓÚ¿ªÖжÏ״̬¡¢ºÎʱ´¦ÓÚ¹ØÖжÏ״̬£¿ ¡²½â´ð¡³ ÔÚIA-32´¦ÀíÆ÷ÖУ¬ÈôIF£½1£¬Ôò´¦ÀíÆ÷´¦ÓÚ¿ªÖжÏ״̬¡£ ÈôIF£½0£¬Ôò´¦ÀíÆ÷´¦ÓÚ¹ØÖжÏ״̬¡£IF£½0¹ØÖжϵÄÇé¿öÓУºÏµÍ³¸´Î»ºó£¬ÈκÎÒ»¸öÖжϣ¨°üÀ¨ÍⲿÖжϺÍÄÚ²¿Öжϣ©±»ÏìÓ¦ºó£¬Ö´ÐйØÖжÏÖ¸ÁîCLIºó¡£ ¡²Ï°Ìâ7.16¡³ ¼òÊöIA-32´¦ÀíÆ÷µÄÖжϹ¤×÷¹ý³Ì¡£ ¡²½â´ð¡³ IA-32´¦ÀíÆ÷»ñµÃÏòÁ¿ºÅʶ±ð³öÖжÏÔ´ºó£¬ÖжϻòÒì³£½Ó×ŵŤ×÷¹ý³ÌÈçÏ£º £¨1£©½«±êÖ¾¼Ä´æÆ÷EFLAGSѹÈë¶ÑÕ»£¬±£»¤¸÷¸ö±ê־λ£»½«±»ÖжÏÖ¸ÁîµÄÂß¼µØÖ·£¨´úÂë¶Î¼Ä´æÆ÷ºÍÖ¸ÁîÖ¸Õë¼Ä´æÆ÷ÄÚÈÝ£©Ñ¹Èë¶ÑÕ»£¬±£»¤¶Ïµã¡£ £¨2£©Èç¹ûÓдíÎó´úÂ룬½«ÆäѹÈë¶ÑÕ»£¨ÓÐЩÒì³£²úÉú´íÎó´úÂ룬¸ü¾ßÌ嵨±íÃ÷²úÉúÒì³£µÄÔÒò£©¡£ÊµµØÖ··½Ê½µÄÒì³£²»·µ»Ø´íÎó´úÂë¡£ £¨3£©¸ù¾ÝÏòÁ¿ºÅ»ñµÃÖжϷþÎñ³ÌÐò£¨ÖжϻòÒì³£µÄ´¦Àí³ÌÐò£©µÄ¶ÎÑ¡ÔñÆ÷ºÍÖ¸ÁîÖ¸Õ룬·Ö±ð´«Ë͸ø´úÂë¶Î¼Ä´æÆ÷CSºÍÖ¸ÁîÖ¸Õë¼Ä´æÆ÷EIP¡£ £¨4£©¶ÔÓÚÖжϣ¬ÒªÉèÖÃÖжÏÔÊÐí±êÖ¾IFΪ0£¬¼´½ûÖ¹½øÒ»²½µÄ¿ÉÆÁ±ÎÖжϡ£ £¨5£©¿ØÖÆ×ªÒÆÖÁÖжϷþÎñ³ÌÐòÈë¿ÚµØÖ·£¨Ê×µØÖ·£©£¬¿ªÊ¼Ö´ÐÐÖжϻòÒì³£´¦Àí³ÌÐò¡£ ÖжϷþÎñ³ÌÐò×îºóÊÇÖжϷµ»ØÖ¸ÁîIRET¡£ÖжϷµ»ØÖ¸ÁîIRET½«¶ÏµãµØÖ·ºÍ±êÖ¾¼Ä´æÆ÷³öÕ»»Ö¸´£¬Èç¹ûѹÈëÁË´íÎó´úÂ뻹ÐèÒªÏàÓ¦ÔöÁ¿¶ÑÕ»Ö¸Õ룬ÓÚÊÇ¿ØÖÆÓÖ·µ»Øµ½¶ÏµãÖ¸Áî¼ÌÐøÖ´ÐС£ ¡²Ï°Ìâ7.17¡³ IA-32´¦ÀíÆ÷µÄÖжÏÏòÁ¿±íºÍÖжÏÃèÊö·û±íµÄ×÷ÓÃÊÇʲô£¿ ¡²½â´ð¡³ IA-32´¦ÀíÆ÷µÄÖжÏÏòÁ¿±íºÍÖжÏÃèÊö·û±íµÄ×÷Óö¼ÊÇ»ñÈ¡ÖжϷþÎñ³ÌÐòµÄÈë¿ÚµØÖ·£¨³ÆÎªÖжÏÏòÁ¿£©£¬½ø¶ø¿ØÖÆ×ªÒƵ½ÖжϷþÎñ³ÌÐòÖС£ ¡²Ï°Ìâ7.18¡³ ˵Ã÷ÈçϳÌÐò¶ÎµÄ¹¦ÄÜ£º cli mov ax,0 mov es,ax mov di,80h*4 mov ax,offset intproc ; intprocÊÇÒ»¸ö¹ý³ÌÃû cld mov es:[di],ax mov ax,seg intproc mov es:[di+2],ax sti ¡²½â´ð¡³ ÉèÖÃ80HºÅÖжÏÏòÁ¿¡£ ¡²Ï°Ìâ7.19¡³ ÖжϿØÖÆÆ÷8259AÖÐIRR£¬IMRºÍISRÈý¸ö¼Ä´æÆ÷µÄ×÷ÓÃÊÇʲô£¿ ¡²½â´ð¡³ ÖжÏÇëÇó¼Ä´æÆ÷IRR£º±£´æ8ÌõÍâ½çÖжÏÇëÇóÐźÅIR0¡«IR7µÄÇëÇó״̬¡£DiλΪ1±íʾIRiÒý½ÅÓÐÖжÏÇëÇó£»Îª0±íʾ¸ÃÒý½ÅÎÞÇëÇó¡£ ÖÐ¶ÏÆÁ±Î¼Ä´æÆ÷IMR£º±£´æ¶ÔÖжÏÇëÇóÐźÅIRµÄÆÁ±Î״̬¡£DiλΪ1±íʾIRiÖжϱ»ÆÁ±Î£¨½ûÖ¹£©£»Îª0±íʾÔÊÐí¸ÃÖжϡ£ ÖжϷþÎñ¼Ä´æÆ÷ISR£º±£´æÕýÔÚ±»8259A·þÎñ×ŵÄÖжÏ״̬¡£DiλΪ1±íʾIRiÖжÏÕýÔÚ·þÎñÖУ»Îª0±íʾûÓб»·þÎñ¡£ ¡²Ï°Ìâ7.20¡³ ÏÂÃæÊÇIBM PC/XT»úROM-BIOSÖеÄ08ºÅÖжϷþÎñ³ÌÐò£¬Çë˵Ã÷¸÷¸öÖ¸ÁîµÄ×÷Óᣠint08h proc sti push ds push ax push dx ?? ; ÈÕʱÖÓ¼ÆÊ± ?? ; ¿ØÖÆÈíÇýÂí´ï int 1ch mov al,20h out 20h,al pop ax pop dx pop ds iret int08h endp ¡²½â´ð¡³ int08h proc far ; Ô¶¹ý³Ì sti ; ¿ªÖÐ¶Ï push ds ; ±£»¤ÏÖ³¡ push ax push dx ?? ; ÈÕʱÖÓ¼ÆÊ± ?? ; ¿ØÖÆÈíÇýÂí´ï int 1ch ; µ÷ÓÃ1CHºÅÖÐ¶Ï mov al,20h ; ·¢ËÍEOIÖжϽáÊøÃüÁî out 20h,al pop ax ; »Ö¸´ÏÖ³¡ pop dx pop ds iret ; ÖжϷµ»Ø int08h endp ¡²Ï°Ìâ7.21¡³ ±àдһ¸ö³ÌÐò£¬½«ÀýÌâ7-5µÄINT 80HÄÚ²¿ÖжϷþÎñ³ÌÐòפÁôÄڴ档ȻºóÔÚµ÷ÊÔ³ÌÐòÖлòÆäËû³ÌÐòÖÐÖ´ÐÐINT 80H£¬¿´ÄÜ·ñʵÏÖÆäÏÔʾ¹¦ÄÜ¡£ ¡²½â´ð¡³ ; ´úÂë¶Î jmp start ; 80HÄÚ²¿ÖжϷþÎñ³ÌÐò£ºÏÔʾ×Ö·û´®£¨ÒÔ0½á⣩£»DS¡ÃDX£½»º³åÇøÊ×µØÖ· new80h proc ; ¹ý³Ì¶¨Òå sti ; ¿ªÖÐ¶Ï push ax ; ±£»¤¼Ä´æÆ÷ push bx push si mov si,offset intmsg new1: mov al,cs:[si] ; »ñÈ¡ÓûÏÔʾ×Ö·û cmp al,0 ; Ϊ¡°0¡±½áÊø jz new2 mov bx,0 ; ²ÉÓÃROM-BIOSµ÷ÓÃÏÔʾһ¸ö×Ö·û mov ah,0eh int 10h inc si ; ÏÔʾÏÂÒ»¸ö×Ö·û jmp new1 new2: pop si ; »Ö¸´¼Ä´æÆ÷ pop bx pop ax iret ; ÖжϷµ»Ø intmsg db 'A Instruction Interrupt !',0dh,0ah,0 ; ×Ö·û´®£¨ÒÔ0½á⣩ new80h endp ; ÖжϷþÎñ³ÌÐò½áÊø ; Ö÷³ÌÐò start: mov ax,cs mov ds,ax ; ÉèÖÃ04HÖжÏÏòÁ¿ mov dx,offset new80h cli mov ax,2580h int 21h sti mov eax,offset tsrmsg ; ÏÔʾ°²×°ÐÅÏ¢ call dispmsg mov dx,offset start ; ¼ÆËãפÁôÄÚ´æ³ÌÐòµÄ³¤¶È add dx,15 shr dx,4 ; µ÷ÕûΪÒÔ¡°½Ú¡±£¨16¸ö×Ö½Ú£©Îªµ¥Î» mov ax,3100h ; ³ÌÐòפÁô£¬·µ»ØDOS int 21h tsrmsg db 'INT 80H Program Installed ! ',0dh,0ah,0 ¡²Ï°Ìâ7.22¡³ Íê³ÉÀýÌâ7-2ÏÔʾµ±Ç°ÈÕÆÚͬÑùµÄ¹¦ÄÜ£¬Çë»ñµÃÈÕÆÚÊý¾Ýºóת»»³ÉASCIIÂ룬±£´æÔÚ»º³åÇø¡¢ÀûÓÃDISPMSG×Ó³ÌÐòÏÔʾ¡£ ¡²½â´ð¡³ ; ex0722.asm in DOS include io16.inc .data date byte 'Today is 20xx-yy-zz',0 .code start: mov ebx,11 mov al,9; AL£½9£¨×¼±¸´Ó9ºÅµ¥Ôª»ñÈ¡Äê´úÊý¾Ý£© out 70h,al ; ´Ó70HµÄI/OµØÖ·Êä³ö£¬Ñ¡ÔñCMOS RAMµÄ9ºÅµ¥Ôª in al,71h; ´Ó71HµÄI/OµØÖ·ÊäÈ룬»ñÈ¡9ºÅµ¥ÔªµÄÄÚÈÝ£¬±£´æÔÚAL mov dl,al shr al,4 ; ת»»¸ßλBCDÂëΪASCIIÂë add al,30h mov date[ebx],al ; ±£´æµ½»º³åÇø add ebx,1 and dl,0fh ; ת»»µÍλBCDÂëΪASCIIÂë add dl,30h mov date[ebx],dl ; ±£´æµ½»º³å add ebx,2 mov al,8; AL£½8£¨´Ó8ºÅµ¥Ôª»ñȡԷÝÊý¾Ý£© out 70h,al in al,71h mov dl,al shr al,4 ; ת»»¸ßλBCDÂëΪASCIIÂë add al,30h mov date[ebx],al ; ±£´æµ½»º³åÇø add ebx,1 and dl,0fh ; ת»»µÍλBCDÂëΪASCIIÂë add dl,30h mov date[ebx],dl ; ±£´æµ½»º³å add ebx,2 mov al,7; AL£½7£¨´Ó7ºÅµ¥Ôª»ñÈ¡ÈÕÆÚÊý¾Ý£© out 70h,al in al,71h mov dl,al shr al,4 ; ת»»¸ßλBCDÂëΪASCIIÂë add al,30h mov date[ebx],al ; ±£´æµ½»º³åÇø add ebx,1 and dl,0fh ; ת»»µÍλBCDÂëΪASCIIÂë add dl,30h mov date[ebx],dl ; ±£´æµ½»º³å mov eax,offset date ; ÏÔʾ call dispmsg exit 0 end start µÚ8Õ ³£Óýӿڼ¼Êõ ¡²Ï°Ìâ8.1¡³¼ò´ðÌâ ¡²½â´ð¡³ ¢Ù ·½Ê½1¿ÉÒÔͨ¹ý±à³Ì²úÉúÒ»¸öÈ·¶¨¿í¶ÈµÄµ¥ÎÈÂö³å£¬¹Ê³Æ¹¤×÷·½Ê½1Ϊ¿É±à³Ìµ¥ÎÈÂö³å¹¤×÷·½Ê½¡£ ¢Ú ÒòΪ¼ÆÊýÆ÷ÊÇÏȼõ1£¬ÔÙÅжÏÊÇ·ñΪ0£¬ËùÒÔдÈë0ʵ¼Ê´ú±í×î´ó¼ÆÊýÖµ¡£ ¢Û ͨ¹ý¿ØÖÆ×ÖµÄD7λÀ´Çø±ð£ºD7£½1£¬¸Ã¿ØÖÆ×ÖΪ·½Ê½¿ØÖÆ×Ö£»·ñÔòΪλ¿ØÖÆ×Ö¡£ ¢Ü 8255µÄÈýÖÖ¹¤×÷·½Ê½¾ù¿ÉʵÏÖÊä³öÊý¾ÝËø´æ£¬¼´Êý¾ÝÊä³öºó±»±£´æÔÚ8255ÄÚ²¿£¬¿ÉÒÔ¶ÁÈ¡³öÀ´£¬Ö»Óе±8255ÔÙÊä³öÐÂÒ»×éÊý¾Ýʱ²Å¸Ä±ä¡£ ¢Ý Modem£¬³ÆÎªµ÷ÖÆ½âµ÷Æ÷£¬½«Êý×ÖÐźÅת»»ÎªÊʺÏÔڵ绰Ïß·ÉÏ´«Ë͵ÄÄ£ÄâÐźţ¨µ÷ÖÆ£©ÒÔ¼°½«µç»°Ïß·µÄÄ£ÄâÐźÅת»»ÎªÊý×ÖÐźţ¨½âµ÷£©¡£ ¢Þ Òò¾ø´ó¶àÊýÉ豸ֻʹÓÃRS-232C±ê×¼µÄÆäÖÐ9¸öÐźţ¬ËùÒÔPC»úÉϾÍÅäÖÃ9ÕëÁ¬½ÓÆ÷¡£ ¢ß Á½Ì¨Î¢»ú½øÐж̾àÀëͨÐÅ£¬¿ÉÒÔ²»Ê¹Óõ÷ÖÆ½âµ÷Æ÷£¬Ö±½ÓÀûÓÃ232C½Ó¿ÚÁ¬½Ó£¬±»³ÆÎªÁãµ÷ÖÆ½âµ÷Æ÷£¨Null Modem£©Á¬½Ó¡£ ¢à UART±íʾͨÓÃÒì²½½ÓÊÕ·¢ËÍÆ÷£¬Ö÷Òª¹¦ÄÜÊǽ«²¢ÐÐÊý¾Ýת»»Îª´®ÐÐÊý¾Ý·¢ËÍ£¬ÒÔ¼°ÊµÏÖ´®ÐÐÊý¾Ýת»»Îª²¢Ðд«Ë͸ø´¦ÀíÆ÷¡£ ¢á ²ÉÓöà·¿ª¹Ø£¬Í¨¹ý΢ÐÍ»ú¿ØÖÆ£¬°Ñ¶à¸öÏÖ³¡ÐźŷÖʱµØ½Óͨµ½A/Dת»»Æ÷ÉÏת»»£¬´ïµ½¹²ÓÃA/Dת»»Æ÷ÒÔ½ÚʡӲ¼þµÄÄ¿µÄ¡£ ¢â ´¦ÀíÆ÷Êä³öÊý¾Ý¶¼Ö»ÔÚÊä³öÖ¸ÁîOUTÖ´Ðеļ«¶Ìʱ¼äÄÚ³öÏÖÔÚÊý¾Ý×ÜÏßÉÏ£¬ÂýËÙµÄÍâÉè²»Äܼ°Ê±»ñÈ¡£¬ËùÒÔÖ÷»úÓëDACÖ®¼ä±ØÐëÁ¬½ÓÊý¾ÝËø´æÆ÷¡£ ¡²Ï°Ìâ8.2¡³ÅжÏÌâ ¡²½â´ð¡³