macro BeginProgram { use32 org 0x0 db 'MENUET01' dd 0x01 dd __start dd __end dd 0x10000 ;__memory dd 0x10000 ;__stack dd 0x0 ; dd __params dd 0x0 __start: } macro EndProgram { align 32 rb 2048 __end: ;org 0x10000 __stack: __memory: } macro mButton nn,crgb,x,y,dx,dy { mov eax,8 ; äãªæ¨ï 8: ®¯à¥¤¥«¨âì ¨ ¢ë¢¥á⨠ª®¯ªã mov ebx,x*65536+dx ; [x ç «ìë©] *65536 + [x à §¬¥à] mov ecx,y*65536+dy ; [y ç «ìë©] *65536 + [y à §¬¥à] mov edx,nn ; ¨¤¥â¨ä¨ª â®à ª®¯ª¨ =1 mov esi,crgb ;0x116611 ; 梥⠪®¯ª¨ RRGGBB int 0x40 } macro LoopBegin lab,begi { push ecx ; ECX->STACK store mov ecx,begi lab: push ecx ; ECX->STACK counter } macro LoopEnd lab,endi { pop ecx ;ECX<-STACK counter inc ecx cmp ecx,endi jne lab pop ecx ;ECX<-STACK restore } ;------------------------------------ ; constants ;-----------------------梥â:0xRRGGBB cBLACK = 0x000000 ; ç¥àë© cRED = 0xFF0000 ; ªà áë© cYELLOW = 0x3FFFF00 ; ¦¥«âë© cGREEN = 0x00FF00 ; §¥«¥ë© cNAVY = 0x0000FF ; ᨨ© cMAGENTA = 0xFF00FF ; ¬ «¨®¢ë© cBLUE = 0x00FFFF ; £®«ã¡®© cWHITE = 0xFFFFFF ; ¡¥«ë© cBROWN = 0x554433 ; ;------------------------------- cMAGENTAl = 0xB800B8 ; magenta cVIOLETl = 0xF800F8 ; 䨮«¥â®¢ë©