* MAGIC SQUARE N EQU 7 MAGIC EQU 1000 START ENT3 N mov ebx,N ENT5 0,3 mov edx,ebx ENTA 0 ENTX 0,3 7 ebx DIV =2= shr 1 STA TEMP LD1 TEMP Start column = 3 mov esi,ebx ; shr esi,1 ENT2 0,1 3 mov edi,esi INC2 1 Start row = 4 inc edi ENTA 0,3 ebx STA TEMP MUL TEMP ebx*ebx STX TEMP LD3 TEMP 49 imul ebx,ebx INC3 1 inc ebx ST3 FINI 50 mov (fini),ebx ENT3 0 xor ebx,ebx NXT INC3 1 inc ebx CMP3 FINI 50 cmp ebx,(fini) JE PRINT je print M2 ENT4 0,1 mov ecx,esi ENTA 0,2 mov eax,edi ST5 TEMP MUL TEMP imul eax,edx STX TEMP LDA TEMP ST4 TEMP ecx ADD TEMP STA TEMP LD6 TEMP magic+eax+ecx ENTA 0 CMPA MAGIC,6 cmp (magic+eax+ecx),0; numbered? JE M1 DEC1 1 dec esi J1NN M3 jns magic3 ENT1 0,5 mov esi,edx DEC1 1 dec esi M3 INC2 1 inc edi ST5 TEMP CMP2 TEMP cmp edi,edx JNE M4 jne magic4 ENT2 0 mov edi,0 M4 JMP M2 jmp magic2 M1 ST3 MAGIC,6 INC1 1 inc esi ST5 TEMP CMP1 TEMP cmp esi,edx JNE M5 ENT1 0 mov esi,0 M5 INC2 1 inc edi ST5 TEMP CMP2 TEMP cmp edi,edx JNE NXT ENT2 0 mov edi,0 JMP NXT PRINT HLT END START