Ana Francisca Postado Setembro 14, 2023 em 20:36 Compartilhar Postado Setembro 14, 2023 em 20:36 Novamente no meu drama estudando assembly, cheguei no assunto das instruções aritméticas e bem começou a dar nós na minha cabeça para variar. Um código em específico do conteúdo que estou estudando não tá fazendo muito sentido para mim, veja: section .text global _start ;must be declared for using gcc _start: ;tell linker entry point mov eax,'3' sub eax, '0' mov ebx, '4' sub ebx, '0' add eax, ebx add eax, '0' mov [sum], eax mov ecx,msg mov edx, len mov ebx,1 ;file descriptor (stdout) mov eax,4 ;system call number (sys_write) int 0x80 ;call kernel mov ecx,sum mov edx, 1 mov ebx,1 ;file descriptor (stdout) mov eax,4 ;system call number (sys_write) int 0x80 ;call kernel mov eax,1 ;system call number (sys_exit) int 0x80 ;call kernel section .data msg db "The sum is:", 0xA,0xD len equ $ - msg segment .bss sum resb 1 Logo no começo do código começou a ficar sem sentido o bagulho, essa parte de: mov eax, '3' (por que c@r@lhos eu to movendo um o 3 entre aspas simples para o registrador eax?) Citar Link para o comentário Compartilhar em outros sites More sharing options...
Fernando Mercês Postado Setembro 16, 2023 em 01:32 Compartilhar Postado Setembro 16, 2023 em 01:32 Oi @Ana Francisca, Você tá usando o NASM né? Ele suporta "Character Strings", ou seja, você escreve no fonte como string e ele compila como char (número). Ou seja, '3' vai gerar o número 0x33, que é o código do texto '3' na tabela ASCII. Dá uma olhada para entender mais: Se quiser o número 3 mesmo, então é só remover as aspas simples. O mesmo se aplica para os demais números. PS.: Em C isso também funciona com um caractere só. Por exemplo, char c = 'A' vai por o valor 0x41 na variável c. Valeu. 2 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Ana Francisca Postado Setembro 19, 2023 em 20:32 Autor Compartilhar Postado Setembro 19, 2023 em 20:32 Ahhh ta, faz sentido, é que no tutorial que tô vendo conforme o conteúdo vai avançando ele vai colocando coisas que não foram mostradas, provavelmente para fazer os estudantes quebrarem ainda mais a cabeça. Muito obrigado pela ajuda. 🤗 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.