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
Post a Comment