{"id":135,"date":"2005-07-22T14:53:38","date_gmt":"2005-07-22T06:53:38","guid":{"rendered":"http:\/\/tmp.xujiwei.com\/blog\/?p=135"},"modified":"2010-01-29T13:05:05","modified_gmt":"2010-01-29T05:05:05","slug":"menuetos-hotrun-0-4-code-comments","status":"publish","type":"post","link":"https:\/\/xujiwei.com\/blog\/2005\/07\/menuetos-hotrun-0-4-code-comments\/","title":{"rendered":"[MenuetOS] HotRun 0.4 \u4ee3\u7801\u5206\u6790"},"content":{"rendered":"<div class=\"post-content\">\n<p><span style=\"color: #008000;\">;\u00a0Made\u00a0by\u00a0HotHeart<\/span><\/p>\n<p><span style=\"color: #008000;\">;\u00a0<a rel=\"external\" href=\"http:\/\/www.xujiwei.com\">http:\/\/www.xujiwei.com<\/a><\/span><\/p>\n<p><span style=\"color: #008000;\">;\u00a0vipxjw@tom.com<\/span><\/p>\n<p><span style=\"color: #008000;\">;\u00a0MENUET\u00a0RUN\u00a00.4<\/span><\/p>\n<p><span style=\"color: #008000;\">;\u00a01)\u00a0\u7f3a\u7701\u76ee\u5f55\u00a0\/RD\/1\/<\/span><\/p>\n<p><span style=\"color: #008000;\">;\u00a02)\u00a0\u53ef\u4ee5\u66f4\u6539\u7a0b\u5e8f\u76ee\u5f55,\u5728SETUP\u91cc\u8bbe\u7f6e\u786c\u76d8\u540e\u53ef\u4ee5\u8fd0\u884c<\/span><\/p>\n<p><span style=\"color: #008000;\">;\u00a0\u00a0\u00a0\u00a0\u786c\u76d8\u4e0a\u7684\u7a0b\u5e8f<\/span><\/p>\n<p><span style=\"color: #008000;\">;\u00a03)\u00a0\u53ea\u80fd\u8bbf\u95ee\u6839\u76ee\u5f55<\/span><\/p>\n<p><span style=\"color: #008000;\">;\u00a04)\u00a0\u81ea\u52a8\u6839\u636e\u5c4f\u5e55\u5927\u5c0f\u8c03\u6574\u7a97\u53e3\u4f4d\u7f6e(\u9650\u4efb\u52a1\u680f\u4e3a\u6587\u5b57\u6a21\u5f0f)<\/span><\/p>\n<p>use32<\/p>\n<p>org\u00a0\u00a0\u00a0\u00a00x0<\/p>\n<p><span style=\"color: #ff00ff;\">db<\/span> <span style=\"color: #808080;\">'MENUET01'<\/span> <span style=\"color: #008000;\">;\u00a08\u00a0byte\u00a0id<\/span><\/p>\n<p><span style=\"color: #ff00ff;\">dd<\/span> 0x01\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0header\u00a0version<\/span><\/p>\n<p><span style=\"color: #ff00ff;\">dd<\/span> START\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0start\u00a0of\u00a0code<\/span><\/p>\n<p><span style=\"color: #ff00ff;\">dd<\/span> I_END\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0size\u00a0of\u00a0image<\/span><\/p>\n<p><span style=\"color: #ff00ff;\">dd<\/span> 0x100000\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0memory\u00a0for\u00a0app<\/span><\/p>\n<p><span style=\"color: #ff00ff;\">dd<\/span> 0x7fff0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0esp<\/span><\/p>\n<p><span style=\"color: #ff00ff;\">dd<\/span> 0x0\u00a0,\u00a00x0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0I_Param\u00a0,\u00a0I_Icon<\/span><\/p>\n<p>START:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0start\u00a0of\u00a0execution<\/span><\/p>\n<p><span style=\"color: #008000;\">;\u00a0\u8ba1\u7b97\u7a97\u53e3\u4f4d\u7f6e<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">eax<\/span>,14<\/p>\n<p><span style=\"color: #0000d0;\">int<\/span> 0x40<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> [screenysize],<span style=\"color: #ff0000;\">ax<\/span><\/p>\n<p><span style=\"color: #0000d0;\">xor<\/span> <span style=\"color: #ff0000;\">eax<\/span>,<span style=\"color: #ff0000;\">eax<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">ax<\/span>,[screenysize]<\/p>\n<p><span style=\"color: #0000d0;\">sub<\/span> <span style=\"color: #ff0000;\">eax<\/span>,116+20<\/p>\n<p><span style=\"color: #0000d0;\">imul<\/span> <span style=\"color: #ff0000;\">eax<\/span>,65536<\/p>\n<p><span style=\"color: #0000d0;\">add<\/span> <span style=\"color: #ff0000;\">eax<\/span>,116<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> [winy],<span style=\"color: #ff0000;\">eax<\/span><\/p>\n<p><span style=\"color: #008000;\">;\u00a0\u521d\u59cb\u5316\u53d8\u91cf<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> [filestr],<span style=\"color: #ff00ff;\">dword<\/span> runprogram<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> [dir],<span style=\"color: #ff00ff;\">dword<\/span> rundir<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> [ya],<span style=\"color: #ff00ff;\">dword<\/span> 53<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> [yb],<span style=\"color: #ff00ff;\">dword<\/span> 69<\/p>\n<p><span style=\"color: #0000d0;\">call<\/span> draw_window<\/p>\n<p>still:<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">eax<\/span>,23\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0wait\u00a0here\u00a0for\u00a0event<\/span><\/p>\n<p><span style=\"color: #0000d0;\">int<\/span> 0x40<\/p>\n<p><span style=\"color: #0000d0;\">cmp<\/span> <span style=\"color: #ff0000;\">eax<\/span>,1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0redraw\u00a0request\u00a0?<\/span><\/p>\n<p><span style=\"color: #0000d0;\">je<\/span> red<\/p>\n<p><span style=\"color: #0000d0;\">cmp<\/span> <span style=\"color: #ff0000;\">eax<\/span>,2\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0key\u00a0in\u00a0buffer\u00a0?<\/span><\/p>\n<p><span style=\"color: #0000d0;\">je<\/span> key<\/p>\n<p><span style=\"color: #0000d0;\">cmp<\/span> <span style=\"color: #ff0000;\">eax<\/span>,3\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0button\u00a0in\u00a0buffer\u00a0?<\/span><\/p>\n<p><span style=\"color: #0000d0;\">je<\/span> button<\/p>\n<p><span style=\"color: #0000d0;\">jmp<\/span> still<\/p>\n<p>red:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0redraw<\/span><\/p>\n<p><span style=\"color: #0000d0;\">call<\/span> draw_window<\/p>\n<p><span style=\"color: #0000d0;\">jmp<\/span> still<\/p>\n<p>key:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0key<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">eax<\/span>,2\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0just\u00a0read\u00a0it\u00a0and\u00a0ignore<\/span><\/p>\n<p><span style=\"color: #0000d0;\">int<\/span> 0x40<\/p>\n<p><span style=\"color: #0000d0;\">jmp<\/span> still<\/p>\n<p>button:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0button<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">eax<\/span>,17\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0get\u00a0id<\/span><\/p>\n<p><span style=\"color: #0000d0;\">int<\/span> 0x40<\/p>\n<p><span style=\"color: #0000d0;\">cmp<\/span> <span style=\"color: #ff0000;\">ah<\/span>,4\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0id=4\u00a0\u7ed3\u675f<\/span><\/p>\n<p><span style=\"color: #0000d0;\">je<\/span> close<\/p>\n<p><span style=\"color: #0000d0;\">cmp<\/span> <span style=\"color: #ff0000;\">ah<\/span>,1<\/p>\n<p><span style=\"color: #0000d0;\">je<\/span> close<\/p>\n<p><span style=\"color: #0000d0;\">cmp<\/span> <span style=\"color: #ff0000;\">ah<\/span>,2\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0id=2\u00a0\u8f93\u5165\u6587\u4ef6\u540d<\/span><\/p>\n<p><span style=\"color: #0000d0;\">je<\/span> inputfile<\/p>\n<p><span style=\"color: #0000d0;\">cmp<\/span> <span style=\"color: #ff0000;\">ah<\/span>,5\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0id=5\u00a0\u8f93\u5165\u8def\u5f84<\/span><\/p>\n<p><span style=\"color: #0000d0;\">je<\/span> inputdir<\/p>\n<p><span style=\"color: #0000d0;\">cmp<\/span> <span style=\"color: #ff0000;\">ah<\/span>,3\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0id=3\u00a0\u8fd0\u884c\u7a0b\u5e8f<\/span><\/p>\n<p><span style=\"color: #0000d0;\">je<\/span> runp<\/p>\n<p><span style=\"color: #0000d0;\">jmp<\/span> still<\/p>\n<p>file_start:\u00a0<span style=\"color: #ff00ff;\">dd<\/span> 16<\/p>\n<p><span style=\"color: #ff00ff;\">dd<\/span> 0,0,0,0x10000<\/p>\n<p>rundir:\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #ff00ff;\">db<\/span> <span style=\"color: #808080;\">'\/RD\/1\/'<\/span> <span style=\"color: #008000;\">;\u00a0\u7f3a\u7701\u76ee\u5f55<\/span><\/p>\n<p>runprogram:\u00a0<span style=\"color: #ff00ff;\">db<\/span> <span style=\"color: #808080;\">'RUN'<\/span>,0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u7f3a\u7701\u7a0b\u5e8f<\/span><\/p>\n<p>times\u00a060\u00a0<span style=\"color: #ff00ff;\">db<\/span> 0<\/p>\n<p>filestr\u00a0\u00a0<span style=\"color: #ff00ff;\">dd<\/span> 0x0<\/p>\n<p>dir\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #ff00ff;\">dd<\/span> 0x0<\/p>\n<p><span style=\"color: #ff00ff;\">addr<\/span> <span style=\"color: #ff00ff;\">dd<\/span> 0x0<\/p>\n<p>ya\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #ff00ff;\">dd<\/span> 0x0<\/p>\n<p>yb\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #ff00ff;\">dd<\/span> 0x0<\/p>\n<p><span style=\"color: #008000;\">;==========================================================<\/span><\/p>\n<p>close:<\/p>\n<p><span style=\"color: #008000;\">;\u7ed3\u675f\u7a0b\u5e8f<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">eax<\/span>,-1<\/p>\n<p><span style=\"color: #0000d0;\">int<\/span> 0x40<\/p>\n<p>inputfile:<\/p>\n<p><span style=\"color: #008000;\">;\u8f93\u5165\u6587\u4ef6\u540d<\/span><\/p>\n<p><span style=\"color: #0000d0;\">call<\/span> read_string_file<\/p>\n<p><span style=\"color: #0000d0;\">jmp<\/span> still<\/p>\n<p>inputdir:<\/p>\n<p><span style=\"color: #008000;\">;\u8f93\u5165\u8def\u5f84<\/span><\/p>\n<p><span style=\"color: #0000d0;\">call<\/span> read_string_dir<\/p>\n<p><span style=\"color: #0000d0;\">jmp<\/span> still<\/p>\n<p><span style=\"color: #008000;\">;==========================================================<\/span><\/p>\n<p>runp:<\/p>\n<p><span style=\"color: #008000;\">;\u8fd0\u884c\u7a0b\u5e8f<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">eax<\/span>,58\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u8fd0\u884c<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">ebx<\/span>,file_start<\/p>\n<p><span style=\"color: #0000d0;\">int<\/span> 0x40<\/p>\n<p><span style=\"color: #0000d0;\">jmp<\/span> still<\/p>\n<p><span style=\"color: #008000;\">;==========================================================<\/span><\/p>\n<p>read_string_file:<\/p>\n<p><span style=\"color: #008000;\">;\u8f93\u5165\u6587\u4ef6\u540d<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">edi<\/span>,[filestr]<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">eax<\/span>,0<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">ecx<\/span>,40<\/p>\n<p><span style=\"color: #0000d0;\">cld<\/span><\/p>\n<p><span style=\"color: #0000d0;\">rep<\/span> <span style=\"color: #0000d0;\">stosb<\/span><\/p>\n<p><span style=\"color: #0000d0;\">call<\/span> print_file<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">edi<\/span>,[filestr]<\/p>\n<p>file_fun:<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">eax<\/span>,23\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u7b49\u5f85\u4e8b\u4ef6<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">ebx<\/span>,100\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u5ef6\u65f6100\u6beb\u79d2<\/span><\/p>\n<p><span style=\"color: #0000d0;\">int<\/span> 0x40<\/p>\n<p><span style=\"color: #0000d0;\">cmp<\/span> <span style=\"color: #ff0000;\">eax<\/span>,0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0eax=0\u00a0\u65e0\u4e8b\u4ef6<\/span><\/p>\n<p><span style=\"color: #0000d0;\">je<\/span> file_fun\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u7ee7\u7eed\u7b49\u5f85\u4e8b\u4ef6\u8fc7\u7a0b<\/span><\/p>\n<p><span style=\"color: #0000d0;\">cmp<\/span> <span style=\"color: #ff0000;\">eax<\/span>,2\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0eax=2\u00a0\u6309\u94ae\u4e8b\u4ef6<\/span><\/p>\n<p><span style=\"color: #0000d0;\">jne<\/span> file_read_done\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u8df3\u5230\u8bfb\u53d6\u952e\u76d8\u4e8b\u4ef6\u7ed3\u675f<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">eax<\/span>,2\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u83b7\u53d6\u51fb\u952e\u00a0ascii\u00a0\u7801<\/span><\/p>\n<p><span style=\"color: #0000d0;\">int<\/span> 0x40<\/p>\n<p><span style=\"color: #0000d0;\">shr<\/span> <span style=\"color: #ff0000;\">eax<\/span>,8<\/p>\n<p><span style=\"color: #0000d0;\">cmp<\/span> <span style=\"color: #ff0000;\">eax<\/span>,13\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u662f\u5426\u4e3a\u56de\u8f66\u952e<\/span><\/p>\n<p><span style=\"color: #0000d0;\">je<\/span> file_read_done\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u662f\u5219\u8df3\u5230\u8bfb\u53d6\u7ed3\u675f<\/span><\/p>\n<p><span style=\"color: #0000d0;\">cmp<\/span> <span style=\"color: #ff0000;\">eax<\/span>,8\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u662f\u5426\u4e3a\u9000\u683c\u952e<\/span><\/p>\n<p><span style=\"color: #0000d0;\">jnz<\/span> file_nobsl\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u4e0d\u662f\u5219\u8df3\u5230\u00a0nobsl<\/span><\/p>\n<p><span style=\"color: #0000d0;\">cmp<\/span> <span style=\"color: #ff0000;\">edi<\/span>,[filestr]<\/p>\n<p><span style=\"color: #0000d0;\">jz<\/span> file_fun<\/p>\n<p><span style=\"color: #0000d0;\">sub<\/span> <span style=\"color: #ff0000;\">edi<\/span>,1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u5b57\u7b26\u6570\u91cf\u51cf\u00a01<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> [<span style=\"color: #ff0000;\">edi<\/span>],<span style=\"color: #ff00ff;\">byte<\/span> 32\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u9000\u683c<\/span><\/p>\n<p><span style=\"color: #0000d0;\">call<\/span> print_file\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u663e\u793a\u5b57\u7b26\u4e32<\/span><\/p>\n<p><span style=\"color: #0000d0;\">jmp<\/span> file_fun\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u7ee7\u7eed\u8bfb\u53d6<\/span><\/p>\n<p>file_nobsl:<\/p>\n<p><span style=\"color: #0000d0;\">cmp<\/span> <span style=\"color: #ff0000;\">al<\/span>,95\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u5224\u65ad\u662f\u5426\u4e3a\u5c0f\u5199<\/span><\/p>\n<p><span style=\"color: #0000d0;\">jbe<\/span> file_cok\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u662f\u5219\u8df3\u5230\u00a0cok<\/span><\/p>\n<p><span style=\"color: #0000d0;\">sub<\/span> <span style=\"color: #ff0000;\">al<\/span>,32\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u4e0d\u662f\u5219\u5c06\u00a0ascii\u00a0\u51cf\u53bb\u00a032<\/span><\/p>\n<p>file_cok:<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> [<span style=\"color: #ff0000;\">edi<\/span>],<span style=\"color: #ff0000;\">al<\/span> <span style=\"color: #008000;\">;\u00a0\u6dfb\u52a0\u5230\u5b57\u7b26\u4e32<\/span><\/p>\n<p><span style=\"color: #0000d0;\">call<\/span> print_file\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u663e\u793a\u5b57\u7b26\u4e32<\/span><\/p>\n<p><span style=\"color: #0000d0;\">add<\/span> <span style=\"color: #ff0000;\">edi<\/span>,1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u5df2\u8bfb\u53d6\u5b57\u7b26\u6570\u91cf<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">esi<\/span>,[filestr]\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u8bfb\u5165\u5b57\u7b26\u4e32\u5730\u5740<\/span><\/p>\n<p><span style=\"color: #0000d0;\">add<\/span> <span style=\"color: #ff0000;\">esi<\/span>,30\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u52a0\u4e0a\u00a030<\/span><\/p>\n<p><span style=\"color: #0000d0;\">cmp<\/span> <span style=\"color: #ff0000;\">esi<\/span>,<span style=\"color: #ff0000;\">edi<\/span> <span style=\"color: #008000;\">;\u00a0\u6bd4\u8f83<\/span><\/p>\n<p><span style=\"color: #0000d0;\">jnz<\/span> file_fun\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u672a\u5230\u6700\u5927\u957f\u5ea6<\/span><\/p>\n<p>file_read_done:\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u8bfb\u53d6\u7ed3\u675f<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> [<span style=\"color: #ff0000;\">edi<\/span>],<span style=\"color: #ff00ff;\">byte<\/span> 0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u7ed3\u675f\u6807\u5fd7<\/span><\/p>\n<p><span style=\"color: #0000d0;\">call<\/span> print_file\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u663e\u793a\u5b57\u7b26\u4e32<\/span><\/p>\n<p><span style=\"color: #0000d0;\">jmp<\/span> still\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u4e8b\u4ef6\u5faa\u73af<\/span><\/p>\n<p><span style=\"color: #008000;\">;==========================================================<\/span><\/p>\n<p>read_string_dir:<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">edi<\/span>,[dir]<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">eax<\/span>,0<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">ecx<\/span>,6<\/p>\n<p><span style=\"color: #0000d0;\">cld<\/span><\/p>\n<p><span style=\"color: #0000d0;\">rep<\/span> <span style=\"color: #0000d0;\">stosb<\/span><\/p>\n<p><span style=\"color: #0000d0;\">call<\/span> print_dir<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">edi<\/span>,[dir]<\/p>\n<p>dir_fun:<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">eax<\/span>,23\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u7b49\u5f85\u4e8b\u4ef6<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">ebx<\/span>,100\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u5ef6\u65f6100\u6beb\u79d2<\/span><\/p>\n<p><span style=\"color: #0000d0;\">int<\/span> 0x40<\/p>\n<p><span style=\"color: #0000d0;\">cmp<\/span> <span style=\"color: #ff0000;\">eax<\/span>,0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0eax=0\u00a0\u65e0\u4e8b\u4ef6<\/span><\/p>\n<p><span style=\"color: #0000d0;\">je<\/span> dir_fun\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u7ee7\u7eed\u7b49\u5f85\u4e8b\u4ef6\u8fc7\u7a0b<\/span><\/p>\n<p><span style=\"color: #0000d0;\">cmp<\/span> <span style=\"color: #ff0000;\">eax<\/span>,2\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0eax=2\u00a0\u6309\u94ae\u4e8b\u4ef6<\/span><\/p>\n<p><span style=\"color: #0000d0;\">jne<\/span> dir_read_done\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u8df3\u5230\u8bfb\u53d6\u952e\u76d8\u4e8b\u4ef6\u7ed3\u675f<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">eax<\/span>,2\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u83b7\u53d6\u51fb\u952e\u00a0ascii\u00a0\u7801<\/span><\/p>\n<p><span style=\"color: #0000d0;\">int<\/span> 0x40<\/p>\n<p><span style=\"color: #0000d0;\">shr<\/span> <span style=\"color: #ff0000;\">eax<\/span>,8<\/p>\n<p><span style=\"color: #0000d0;\">cmp<\/span> <span style=\"color: #ff0000;\">eax<\/span>,13\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u662f\u5426\u4e3a\u56de\u8f66\u952e<\/span><\/p>\n<p><span style=\"color: #0000d0;\">je<\/span> dir_read_done\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u662f\u5219\u8df3\u5230\u8bfb\u53d6\u7ed3\u675f<\/span><\/p>\n<p><span style=\"color: #0000d0;\">cmp<\/span> <span style=\"color: #ff0000;\">eax<\/span>,8\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u662f\u5426\u4e3a\u9000\u683c\u952e<\/span><\/p>\n<p><span style=\"color: #0000d0;\">jnz<\/span> dir_nobsl\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u4e0d\u662f\u5219\u8df3\u5230\u00a0nobsl<\/span><\/p>\n<p><span style=\"color: #0000d0;\">cmp<\/span> <span style=\"color: #ff0000;\">edi<\/span>,[filestr]<\/p>\n<p><span style=\"color: #0000d0;\">jz<\/span> dir_fun<\/p>\n<p><span style=\"color: #0000d0;\">sub<\/span> <span style=\"color: #ff0000;\">edi<\/span>,1<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> [<span style=\"color: #ff0000;\">edi<\/span>],<span style=\"color: #ff00ff;\">byte<\/span> 32<\/p>\n<p><span style=\"color: #0000d0;\">call<\/span> print_dir\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u663e\u793a\u5b57\u7b26\u4e32<\/span><\/p>\n<p><span style=\"color: #0000d0;\">jmp<\/span> dir_fun\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u7ee7\u7eed\u8bfb\u53d6<\/span><\/p>\n<p>dir_nobsl:<\/p>\n<p><span style=\"color: #0000d0;\">cmp<\/span> <span style=\"color: #ff0000;\">al<\/span>,95\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u5224\u65ad\u662f\u5426\u4e3a\u5c0f\u5199<\/span><\/p>\n<p><span style=\"color: #0000d0;\">jbe<\/span> dir_cok\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u662f\u5219\u8df3\u5230\u00a0cok<\/span><\/p>\n<p><span style=\"color: #0000d0;\">sub<\/span> <span style=\"color: #ff0000;\">al<\/span>,32\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u4e0d\u662f\u5219\u5c06\u00a0ascii\u00a0\u51cf\u53bb\u00a032<\/span><\/p>\n<p>dir_cok:<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> [<span style=\"color: #ff0000;\">edi<\/span>],<span style=\"color: #ff0000;\">al<\/span> <span style=\"color: #008000;\">;\u00a0\u6dfb\u52a0\u5230\u5b57\u7b26\u4e32<\/span><\/p>\n<p><span style=\"color: #0000d0;\">call<\/span> print_dir\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u663e\u793a\u5b57\u7b26\u4e32<\/span><\/p>\n<p><span style=\"color: #0000d0;\">add<\/span> <span style=\"color: #ff0000;\">edi<\/span>,1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u5df2\u8bfb\u53d6\u5b57\u7b26\u6570\u91cf<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">esi<\/span>,[dir]\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u8bfb\u5165\u5b57\u7b26\u4e32\u5730\u5740<\/span><\/p>\n<p><span style=\"color: #0000d0;\">add<\/span> <span style=\"color: #ff0000;\">esi<\/span>,6\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u52a0\u4e0a\u00a06<\/span><\/p>\n<p><span style=\"color: #0000d0;\">cmp<\/span> <span style=\"color: #ff0000;\">esi<\/span>,<span style=\"color: #ff0000;\">edi<\/span> <span style=\"color: #008000;\">;\u00a0\u6bd4\u8f83<\/span><\/p>\n<p><span style=\"color: #0000d0;\">jnz<\/span> dir_fun\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u672a\u5230\u6700\u5927\u957f\u5ea6<\/span><\/p>\n<p>dir_read_done:\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u8bfb\u53d6\u7ed3\u675f<\/span><\/p>\n<p><span style=\"color: #0000d0;\">call<\/span> print_dir\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u663e\u793a\u5b57\u7b26\u4e32<\/span><\/p>\n<p><span style=\"color: #0000d0;\">jmp<\/span> still\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u4e8b\u4ef6\u5faa\u73af<\/span><\/p>\n<p><span style=\"color: #008000;\">;==========================================================<\/span><\/p>\n<p>print_dir:<\/p>\n<p><span style=\"color: #008000;\">;\u663e\u793a\u8def\u5f84<\/span><\/p>\n<p><span style=\"color: #0000d0;\">pusha<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">eax<\/span>,13\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u753b\u5e95\u7eb9<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">ebx<\/span>,55*65536+31*6<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">ecx<\/span>,[ya]<\/p>\n<p><span style=\"color: #0000d0;\">shl<\/span> <span style=\"color: #ff0000;\">ecx<\/span>,16<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">cx<\/span>,12<\/p>\n<p><span style=\"color: #0000d0;\">sub<\/span> <span style=\"color: #ff0000;\">ecx<\/span>,2*65536<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">edx<\/span>,0xeeeeee<\/p>\n<p><span style=\"color: #0000d0;\">int<\/span> 0x40<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">eax<\/span>,4\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u663e\u793a\u8def\u5f84<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">edx<\/span>,[dir]<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">ebx<\/span>,56*65536<\/p>\n<p><span style=\"color: #0000d0;\">add<\/span> <span style=\"color: #ff0000;\">ebx<\/span>,[ya]<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">ecx<\/span>,0x444444<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">esi<\/span>,6<\/p>\n<p><span style=\"color: #0000d0;\">int<\/span> 0x40<\/p>\n<p><span style=\"color: #0000d0;\">popa<\/span><\/p>\n<p><span style=\"color: #0000d0;\">ret<\/span><\/p>\n<p><span style=\"color: #008000;\">;==========================================================<\/span><\/p>\n<p>print_file:<\/p>\n<p><span style=\"color: #008000;\">;\u663e\u793a\u6587\u4ef6\u540d<\/span><\/p>\n<p><span style=\"color: #0000d0;\">pusha<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">eax<\/span>,13\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u753b\u5e95\u7eb9<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">ebx<\/span>,55*65536+31*6<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">ecx<\/span>,[yb]<\/p>\n<p><span style=\"color: #0000d0;\">shl<\/span> <span style=\"color: #ff0000;\">ecx<\/span>,16<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">cx<\/span>,12<\/p>\n<p><span style=\"color: #0000d0;\">sub<\/span> <span style=\"color: #ff0000;\">ecx<\/span>,2*65536<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">edx<\/span>,0xeeeeee<\/p>\n<p><span style=\"color: #0000d0;\">int<\/span> 0x40<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">eax<\/span>,4\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u663e\u793a\u6587\u4ef6\u540d<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">edx<\/span>,[filestr]<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">ebx<\/span>,56*65536<\/p>\n<p><span style=\"color: #0000d0;\">add<\/span> <span style=\"color: #ff0000;\">ebx<\/span>,[yb]<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">ecx<\/span>,0x444444<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">esi<\/span>,30<\/p>\n<p><span style=\"color: #0000d0;\">int<\/span> 0x40<\/p>\n<p><span style=\"color: #0000d0;\">popa<\/span><\/p>\n<p><span style=\"color: #0000d0;\">ret<\/span><\/p>\n<p><span style=\"color: #008000;\">;==========================================================<\/span><\/p>\n<p><span style=\"color: #008000;\">;\u00a0\u00a0\u00a0*********************************************<\/span><\/p>\n<p><span style=\"color: #008000;\">;\u00a0\u00a0\u00a0*******\u00a0\u00a0WINDOW\u00a0DEFINITIONS\u00a0AND\u00a0DRAW\u00a0********<\/span><\/p>\n<p><span style=\"color: #008000;\">;\u00a0\u00a0\u00a0*********************************************<\/span><\/p>\n<p>draw_window:<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">eax<\/span>,12\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0function\u00a012:tell\u00a0os\u00a0about\u00a0windowdraw<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">ebx<\/span>,1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a01,\u00a0start\u00a0of\u00a0draw<\/span><\/p>\n<p><span style=\"color: #0000d0;\">int<\/span> 0x40<\/p>\n<p><span style=\"color: #008000;\">;\u00a0DRAW\u00a0WINDOW<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">eax<\/span>,0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0function\u00a00\u00a0:\u00a0define\u00a0and\u00a0draw\u00a0window<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">ebx<\/span>,1*65536+250\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0[x\u00a0start]\u00a0*65536\u00a0+\u00a0[x\u00a0size]<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">ecx<\/span>,[winy]\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0[y\u00a0start]\u00a0*65536\u00a0+\u00a0[y\u00a0size]<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">edx<\/span>,0x03ffffff\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0color\u00a0of\u00a0work\u00a0area\u00a0RRGGBB,8-&gt;color\u00a0gl<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">esi<\/span>,0x805080d0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0color\u00a0of\u00a0grab\u00a0bar\u00a0\u00a0RRGGBB,8-&gt;color\u00a0gl<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">edi<\/span>,0x005080d0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0color\u00a0of\u00a0frames\u00a0\u00a0\u00a0\u00a0RRGGBB<\/span><\/p>\n<p><span style=\"color: #0000d0;\">int<\/span> 0x40<\/p>\n<p><span style=\"color: #008000;\">;\u00a0WINDOW\u00a0LABEL<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">eax<\/span>,4\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0function\u00a04\u00a0:\u00a0write\u00a0text\u00a0to\u00a0window<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">ebx<\/span>,8*65536+8\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0[x\u00a0start]\u00a0*65536\u00a0+\u00a0[y\u00a0start]<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">ecx<\/span>,0x10ddeeff\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0font\u00a01\u00a0&amp;\u00a0color\u00a0(\u00a00xF0RRGGBB\u00a0)<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">edx<\/span>,labelt\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0pointer\u00a0to\u00a0text\u00a0beginning<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">esi<\/span>,labellen-labelt<span style=\"color: #008000;\">;\u00a0text\u00a0length<\/span><\/p>\n<p><span style=\"color: #0000d0;\">int<\/span> 0x40<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">eax<\/span>,8\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u8def\u5f84\u8f93\u5165\u00a0id=5<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">ebx<\/span>,13*65536+40<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">ecx<\/span>,50*65536+12<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">edx<\/span>,5<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">esi<\/span>,0xaabbcc<\/p>\n<p><span style=\"color: #0000d0;\">int<\/span> 0x40<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">eax<\/span>,8\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u6587\u4ef6\u540d\u8f93\u5165\u00a0id=2<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">ebx<\/span>,13*65536+40<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">ecx<\/span>,66*65536+12<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">edx<\/span>,2<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">esi<\/span>,0xaabbcc<\/p>\n<p><span style=\"color: #0000d0;\">int<\/span> 0x40<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">eax<\/span>,8\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u786e\u5b9a\u00a0id=3<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">ebx<\/span>,128*65536+48<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">ecx<\/span>,84*65536+18<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">edx<\/span>,3<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">esi<\/span>,0xaabbcc<\/p>\n<p><span style=\"color: #0000d0;\">int<\/span> 0x40<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">eax<\/span>,8\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u53d6\u6d88\u00a0id=4<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">ebx<\/span>,182*65536+48<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">ecx<\/span>,84*65536+18<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">edx<\/span>,4<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">esi<\/span>,0xaabbcc<\/p>\n<p><span style=\"color: #0000d0;\">int<\/span> 0x40<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">ebx<\/span>,13*65536+34\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u63d0\u793a\u4fe1\u606f<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">ecx<\/span>,0x666666<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">edx<\/span>,txttxt<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">esi<\/span>,30<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">eax<\/span>,4<\/p>\n<p><span style=\"color: #0000d0;\">int<\/span> 0x40<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">eax<\/span>,4\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0Path\u6309\u94ae\u6587\u672c<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">ebx<\/span>,21*65536+53<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">ecx<\/span>,0x666666<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">edx<\/span>,txtdir<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">esi<\/span>,4<\/p>\n<p><span style=\"color: #0000d0;\">int<\/span> 0x40<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">ebx<\/span>,21*65536+69\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0File\u6309\u94ae\u6587\u672c<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">ecx<\/span>,0x444444<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">edx<\/span>,txtfile<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">esi<\/span>,4<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">eax<\/span>,4<\/p>\n<p><span style=\"color: #0000d0;\">int<\/span> 0x40<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">ebx<\/span>,140*65536+89\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0\u786e\u5b9a\u53d6\u6d88\u6309\u94ae\u6587\u672c<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">ecx<\/span>,0x444444<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">edx<\/span>,txtbutton<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">esi<\/span>,13<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">eax<\/span>,4<\/p>\n<p><span style=\"color: #0000d0;\">int<\/span> 0x40<\/p>\n<p><span style=\"color: #0000d0;\">call<\/span> print_dir<\/p>\n<p><span style=\"color: #0000d0;\">call<\/span> print_file<\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">eax<\/span>,12\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a0function\u00a012:tell\u00a0os\u00a0about\u00a0windowdraw<\/span><\/p>\n<p><span style=\"color: #0000d0;\">mov<\/span> <span style=\"color: #ff0000;\">ebx<\/span>,2\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #008000;\">;\u00a02,\u00a0end\u00a0of\u00a0draw<\/span><\/p>\n<p><span style=\"color: #0000d0;\">int<\/span> 0x40<\/p>\n<p><span style=\"color: #0000d0;\">ret<\/span><\/p>\n<p><span style=\"color: #008000;\">;\u00a0DATA\u00a0AREA<\/span><\/p>\n<p>tcolor\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #ff00ff;\">dd<\/span> 0x000000<\/p>\n<p>txttxt\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #ff00ff;\">db<\/span> <span style=\"color: #808080;\">'\u8bf7\u8f93\u5165\u8981\u8fd0\u884c\u7a0b\u5e8f\u7684\u8def\u5f84\u548c\u6587\u4ef6\u540d'<\/span>,<span style=\"color: #808080;\">'x'<\/span><\/p>\n<p>txtdir\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #ff00ff;\">db<\/span> <span style=\"color: #808080;\">'Path'<\/span>,<span style=\"color: #808080;\">'x'<\/span><\/p>\n<p>txtfile\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #ff00ff;\">db<\/span> <span style=\"color: #808080;\">'File'<\/span>,<span style=\"color: #808080;\">'x'<\/span><\/p>\n<p>txtbutton\u00a0\u00a0\u00a0<span style=\"color: #ff00ff;\">db<\/span> <span style=\"color: #808080;\">'\u786e\u5b9a\u00a0\u00a0\u00a0\u00a0\u00a0\u53d6\u6d88'<\/span>,<span style=\"color: #808080;\">'x'<\/span><\/p>\n<p>screenysize\u00a0<span style=\"color: #ff00ff;\">dw<\/span> 0x0<\/p>\n<p>winy\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #ff00ff;\">dd<\/span> 0x0<\/p>\n<p>labelt:<\/p>\n<p><span style=\"color: #ff00ff;\">db<\/span> <span style=\"color: #808080;\">'\u8fd0\u884c'<\/span><\/p>\n<p>labellen:<\/p>\n<p>I_END:<\/p>\n<p class=\"articletags\">\u6807\u7b7e\uff1a<a title=\"\u67e5\u770b\u5173\u4e8e \u201cHotRun\u201d \u7684\u6240\u6709\u6587\u7ae0\" href=\".\/?tag=HotRun\">HotRun<\/a> <a title=\"\u67e5\u770b\u5173\u4e8e \u201c\u6c47\u7f16\u201d \u7684\u6240\u6709\u6587\u7ae0\" href=\".\/?tag=%E6%B1%87%E7%BC%96\">\u6c47\u7f16<\/a> <a title=\"\u67e5\u770b\u5173\u4e8e \u201cMenuetOS\u201d \u7684\u6240\u6709\u6587\u7ae0\" href=\".\/?tag=MenuetOS\">MenuetOS<\/a><\/p>\n<p class=\"alignright colorgray\">[\u672c\u65e5\u5fd7\u7531 xujiwei \u4e8e 2005-07-22 06:24 PM \u7f16\u8f91]<\/p>\n<p class=\"post-comments\">Comments (0), Views (2955), Pings (0), <a href=\"#commenttitle\">Leave a response!<\/a><\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>;\u00a0Made\u00a0by\u00a0HotHeart ;\u00a0http:\/\/www.xujiwei. &hellip;<\/p>\n<p class=\"read-more\"><a href=\"https:\/\/xujiwei.com\/blog\/2005\/07\/menuetos-hotrun-0-4-code-comments\/\">\u7ee7\u7eed\u9605\u8bfb &raquo;<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[5],"tags":[80,90,88],"_links":{"self":[{"href":"https:\/\/xujiwei.com\/blog\/wp-json\/wp\/v2\/posts\/135"}],"collection":[{"href":"https:\/\/xujiwei.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/xujiwei.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/xujiwei.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/xujiwei.com\/blog\/wp-json\/wp\/v2\/comments?post=135"}],"version-history":[{"count":0,"href":"https:\/\/xujiwei.com\/blog\/wp-json\/wp\/v2\/posts\/135\/revisions"}],"wp:attachment":[{"href":"https:\/\/xujiwei.com\/blog\/wp-json\/wp\/v2\/media?parent=135"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xujiwei.com\/blog\/wp-json\/wp\/v2\/categories?post=135"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xujiwei.com\/blog\/wp-json\/wp\/v2\/tags?post=135"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}