nested loop Assembly code -


for (int = 0; < vec1.length; i++) {         (int j = 0; j < vec2.length; j++) {            if(vec1[i]==vec2[j]){                add=true;                cont++;                (int k = 0; k < cont; k++) {                    if(vec2[j]==vec3[k]){                        add=false;                    }                                        }                if(add==true){                    vec3[cont+1]=vec2[j];                }            }          }      } 

i'd translate pseudocode java correct assembly 32-bit system. can me?

i´m doing this, ignore comments in foreign language don´t know how third loop in addvec3, , condition after

global ptrvec1, ptrvec2, ptrvec3 .section .text .global   comuns #int comuns(void) comuns: movl $0, %eax # iniciar eax 0 movl $0, %ebx # primeiro ciclo movl $0, %ecx # segundo ciclo movl $0, %edx # ciclo vetor3 movl $ptrvec1, %ebp #endereco vetor1 movl $ptrvec2, %edi #endereco vetor2 movl $ptrvec3, %esi # resultado  ciclo: cmpl $14, %ebx # compara para fim ciclo je fim movl (%ebp), %esp # move inteiro ptrvec1 para esp  ciclo2: cmpl $14,%ecx # compara para fim ciclo2 je incrementarciclo # se igual incrementa ciclo movl (%edi), %eax cmpl %eax, %esp #compara inteiro de esp com inteiro de edi je adicionaravetor3 # se igual adiciona vetor3 em esi jmp incrementarciclo2 # se nao incrementao ciclo2  incrementarciclo: movl $0, %ecx # segundo ciclo 0 incl %ebx # incrementa ciclo addl $4, %ebp # passa para proximo inteiro vetor 1 jmp ciclo # passar para o ciclo  incrementarciclo2:  addl $4, %edi # passa para o proximo inteiro de vetor 2 incl %ecx # incrementa ciclo 2 jmp ciclo2   addvec3:    fim: movl %edx,%eax ret 

the objective have 2 vec , compare them,if there repeated numbers check if numbers aren't in vec3 , add them.

if you've got not enough registers store variables, use memory:

.section .data      i: .int 0     j: .int 0     k: .int 0     add: .int 0     cont: .int 0  .section .text  comuns:     movl $0, (i)     ciclo1:         cmpl $14, (i) # compara para fim ciclo         jae endciclo1          movl $0, (j)         ciclo2:             cmpl $14, (j) # compara para fim ciclo2             jae endciclo2 # se igual incrementa ciclo              ...             movl $1, (add)             incl (cont)             ...              movl $0, (k)             ciclo3:                 mov (cont), %eax                 cmp %eax, (k)                 jae endciclo3                  ...                  incl (k)                 jmp ciclo3                  endciclo3:              ...              incl (j)             jmp ciclo2          endciclo2:          ...          incl (i)         jmp ciclo1      endciclo1:  fim:     movl (cont),%eax     ret 

Comments

Popular posts from this blog

javascript - Slick Slider width recalculation -

jsf - PrimeFaces Datatable - What is f:facet actually doing? -

angular2 services - Angular 2 RC 4 Http post not firing -