cfcfcsf
unknown
plain_text
a year ago
5.0 kB
3
Indexable
.data formatScanf: .asciz "%d\n" formatPrintf: .asciz "%d\n" slash: .asciz "\n" m: .space 4 n: .space 4 p: .space 4 k: .space 4 i: .space 4 j: .space 4 S: .space 500 Ss: .space 500 cell: .space 4 nrv: .space 4 .text .global main main: # Citeste m pushl $m pushl $formatScanf call scanf popl %ebx popl %ebx # Citeste n pushl $n pushl $formatScanf call scanf popl %ebx popl %ebx # Citeste p pushl $p pushl $formatScanf call scanf popl %ebx popl %ebx movl $0, %ecx for_vii: movl %ecx, %eax cmpl %eax, p je evolutii_cont # Citeste i pushl $i pushl $formatScanf call scanf popl %ebx popl %ebx # Citeste j pushl $j pushl $formatScanf call scanf popl %ebx popl %ebx movl i, %eax incl %eax xorl %edx, %edx movl n, %ebx addl $2, %ebx mull %ebx incl %eax addl j, %eax lea S, %edi movl $1, (%edi, %eax, 4) incl %ecx jmp for_vii evolutii_cont: movl $0, %ecx evolutii: # Citeste k pushl $k pushl $formatScanf call scanf popl %ebx popl %ebx movl %ecx, %eax cmpl %eax, k je out movl $1, i for_line: movl i, %eax cmpl m, %eax jg transpunere movl $1, j for_column: movl i, %eax cmpl m, %eax jg cont_line movl i, %eax xor %edx, %edx movl n, %ebx addl $2, %ebx mull %ebx addl j, %eax lea S, %edi movl (%edi, %eax, 4), %ebx movl %ebx, cell movl $0, nrv # i-1, j-1 movl i, %eax xor %edx, %edx decl %eax mull n addl j, %eax decl %eax lea S, %edi movl (%edi, %eax, 4), %edx addl %edx, nrv # i-1, j movl i, %eax xor %edx, %edx decl %eax mull n addl j, %eax lea S, %edi movl (%edi, %eax, 4), %edx addl %edx, nrv # i-1, j+1 movl i, %eax xor %edx, %edx decl %eax mull n addl j, %eax incl %eax lea S, %edi movl (%edi, %eax, 4), %edx addl %edx, nrv # i, j+1 movl i, %eax xor %edx, %edx mull n addl j, %eax incl %eax lea S, %edi movl (%edi, %eax, 4), %edx addl %edx, nrv # i, j-1 movl i, %eax xor %edx, %edx mull n addl j, %eax decl %eax lea S, %edi movl (%edi, %eax, 4), %edx addl %edx, nrv # i+1, j+1 movl i, %eax xor %edx, %edx incl %eax mull n addl j, %eax incl %eax lea S, %edi movl (%edi, %eax, 4), %edx addl %edx, nrv # i+1, j movl i, %eax xor %edx, %edx incl %eax mull n addl j, %eax lea S, %edi movl (%edi, %eax, 4), %edx addl %edx, nrv # i+1, j-1 movl i, %eax xor %edx, %edx incl %eax mull n addl j, %eax decl %eax lea S, %edi movl (%edi, %eax, 4), %edx addl %edx, nrv cmpl $0, nrv je cell_moarta jmp cell_vie cont_column: incl j jmp for_column cont_line: incl i jmp for_line cell_vie: movl nrv, %eax cmpl $3, %eax je cell_invie cmpl $2, %eax je cell_invie jmp cell_moare cell_moarta: movl nrv, %eax cmpl $3, %eax je cell_invie jmp cell_moare cell_invie: movl i, %eax xor %edx, %edx mull n addl j, %eax lea Ss, %edi movl $1, (%edi, %eax, 4) jmp cont_column cell_moare: movl i, %eax xor %edx, %edx mull n addl j, %eax lea Ss, %edi movl $0, (%edi, %eax, 4) jmp cont_column transpunere: movl $1, i for_line_2: movl i, %eax cmpl m, %eax jg cont_evolutie movl $1, j for_column_2: movl j, %eax cmpl n, %eax jg cont_line_2 movl i, %eax xor %edx, %edx movl n, %ebx addl $2, %ebx mull %ebx addl j, %eax lea Ss, %edi movl (%edi, %eax, 4), %ebx lea S, %edi movl %ebx, (%edi, %eax, 4) incl j jmp for_column_2 cont_line_2: incl i jmp for_line_2 cont_evolutie: incl %ecx jmp evolutii out: movl $1, i for_line_3: movl i, %eax cmpl m, %eax jg exit movl $1, j for_column_3: movl j, %eax cmpl n, %eax jg cont_out movl $1, %ebx movl $0, %edx addl $2, %ebx mull %ebx addl j, %eax lea S, %edi movl (%edi, %eax, 4), %ebx pushl %ebx pushl $formatPrintf call printf popl %ecx popl %ecx pushl $0 call fflush popl %ecx incl j jmp for_column_3 cont_out: movl $4, %eax movl $1, %ebx movl $slash, %ecx movl $2, %edx int $0x80 incl i jmp for_line_3 exit: mov $1, %eax mov $0, %ebx int $0x80
Editor is loading...
Leave a Comment