se119 Posted September 6, 2021 at 04:44 AM Share Posted September 6, 2021 at 04:44 AM Fala galera blz ? To exatamente nessa pág do livro https://mentebinaria.gitbook.io/assembly/a-base e não consigo criar a PoC. To usando o ubuntu 21.04 x86-64 em VM Na tentativa de criar a PoC eu já fiz main.c:#include <stdio.h> int assembly (void); int main (void) { printf("Resultado: %d\n"), assembly()); return 0; } e assembly.asm:bits 64 global_assembly: assembly: mov eax, 777 ret até ai blz, criei tbm: nasm assembly.asm -f elf64gcc -c main.c -o main.o tudo conforme o roteiro .... Mas .. Na última parte:gcc assembly.o main.o -o test -no-pie .... recebo:/usr/bin/ld: main.o: na função "main": main.c:(.text+0x9): referência não definida para "assembly" collect2: error: ld returned 1 exit status valeuuu ! Quote Link to comment Share on other sites More sharing options...
Felipe.Silva Posted September 6, 2021 at 12:17 PM Share Posted September 6, 2021 at 12:17 PM A linha `global_assembly:` deveria ser global seguido de assembly. Onde global é uma diretiva que será explicada posteriormente, e assembly seria o nome do rótulo logo abaixo (será explicado também). bits 64 global assembly assembly: mov eax, 777 ret Quote Link to comment Share on other sites More sharing options...
se119 Posted September 6, 2021 at 10:28 PM Author Share Posted September 6, 2021 at 10:28 PM Se eu colocar global assembly sem o _ ele não compila .o mensagem de erro: error: parser: instruction expected Quote Link to comment Share on other sites More sharing options...
Felipe.Silva Posted September 7, 2021 at 02:17 PM Share Posted September 7, 2021 at 02:17 PM Você copiou e colou o código que te passei ou redigitou tudo? Se for o segundo caso, cole seu código aqui para eu ver (por completo). Ah, quando for exibir uma mensagem de erro é melhor mostrar ela por completo. Cada linha e cada letra. Pode até tirar um print do terminal também se quiser. Só com essa mensagem aí é impossível eu dizer o que está errado. Eu preciso das duas coisas: A mensagem de erro completa e o código completo que você escreveu. Uma dica quando for colar o código aqui, clique nesse botão com o símbolo "<>" que ele formata o texto como código: Quote Link to comment Share on other sites More sharing options...
se119 Posted September 8, 2021 at 12:16 AM Author Share Posted September 8, 2021 at 12:16 AM Peço desculpas pelo intervalo entre as mensagens. Já tava com o print de erro, mas, fiz mais uma tentativa, após sua última mensagem.. Apaguei tudo, de novo, e refiz o código. Dei uma olhada e tinha um erro de digitação. Erro de principiante XD! Muito obrigado pela força! Segue...THANKS.!! Tudo certo, muito obrigado!!! Quote Link to comment Share on other sites More sharing options...
uma Fruta muito Loka Posted November 22, 2021 at 09:16 PM Share Posted November 22, 2021 at 09:16 PM Em 07/09/2021 em 11:17, Felipe.Silva disse: olá vc consegue me ajudar a transforma esse código em ass if (k == 0) f = i + j; else if (k == 1) f = g - h; else if (k == 2) f = g + h; else if (k == 3) f = i – j; Quote Link to comment Share on other sites More sharing options...
Emir_Fadul Posted March 25, 2023 at 03:58 PM Share Posted March 25, 2023 at 03:58 PM Em 07/09/2021 em 10:17, Felipe.Silva disse: Você copiou e colou o código que te passei ou redigitou tudo? Se for o segundo caso, cole seu código aqui para eu ver (por completo). Ah, quando for exibir uma mensagem de erro é melhor mostrar ela por completo. Cada linha e cada letra. Pode até tirar um print do terminal também se quiser. Só com essa mensagem aí é impossível eu dizer o que está errado. Eu preciso das duas coisas: A mensagem de erro completa e o código completo que você escreveu. Uma dica quando for colar o código aqui, clique nesse botão com o símbolo "<>" que ele formata o texto como código: Mesmo erro aconteceu comigo, pois quando uso o win64 gera o arquivo assembly.obj.... Quote Link to comment Share on other sites More sharing options...
bandmn Posted August 21, 2024 at 02:07 PM Share Posted August 21, 2024 at 02:07 PM Em 06/09/2021 em 07:44, se119 disse: Fala galera blz ? To exatamente nessa pág do livro https://mentebinaria.gitbook.io/assembly/a-base e não consigo criar a PoC. To usando o ubuntu 21.04 x86-64 em VM Na tentativa de criar a PoC eu já fiz main.c: #include <stdio.h> int assembly (void); int main (void) { printf("Resultado: %d\n"), assembly()); return 0; } e assembly.asm: bits 64 global_assembly: assembly: mov eax, 777 ret até ai blz, criei tbm: nasm assembly.asm -f elf64 gcc -c main.c -o main.o tudo conforme o roteiro .... Mas .. Na última parte: gcc assembly.o main.o -o test -no-pie .... recebo: /usr/bin/ld: main.o: na função "main": main.c:(.text+0x9): referência não definida para "assembly" collect2: error: ld returned 1 exit status valeuuu ! pix-bet E aí, tranquilo? Já passei por algo parecido. Pelo erro que você mencionou, parece que o compilador não está encontrando a definição da função 'assembly'. O problema pode estar relacionado ao nome da função no arquivo assembly.asm. Notei que você declarou 'global_assembly:', mas deveria ser apenas 'global assembly' (sem o underline). Isso deve resolver o problema. Tente fazer essa correção e veja se compila sem erros. Espero que ajude Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.