DEV Community

Cover image for Executando Assembly com QEMU no WSL
Kailane Felix
Kailane Felix

Posted on • Updated on

Executando Assembly com QEMU no WSL

Instalar o WSL 2

Apenas execute o comando abaixo no prompt de comando do Windows:

wsl --install
Enter fullscreen mode Exit fullscreen mode

Para isso funcionar, o WSL precisa estar na versão 2. Você pode verificar rodando o seguinte comando no no prompt de comando do Windows:

wsl -l -v
Enter fullscreen mode Exit fullscreen mode

A saída esperada é o número 2 na coluna Version:

Saída esperada do comando

Caso esteja versão certa, sorria e passe pra próxima fase! Caso contrário, atualize o WSL.

Para fazer a atualização do WSL 1 para o WSL 2, use o comando: wsl --set-version <distro name> 2 substituindo pela distribuição do Linux que você deseja atualizar. Use wsl --set-version Ubuntu-20.04 2 definirá sua distribuição do Ubuntu 20.04 para usar o WSL 2.

Atualizar o sistema do WSL

Antes de instalar os programas necessários, precisamos atualizar o Ubuntu que está rodando no WSL. Para fazer isso, execute o seguinte comando no prompt dentro do WSL:

sudo apt update && sudo apt upgrade
Enter fullscreen mode Exit fullscreen mode

Você pode executar esse comando de vez em quando para atualizar os programas já instalados.

Instalar o nasm

O Netwide Assembler (nasm), é um montador e desmontador que suporta as arquiteturas IA-32 e x86-64. Ele é responsável por transformar os códigos em assembly para linguagem de máquina. Para instalar, basta executar o seguinte comando:

sudo apt install nasm
Enter fullscreen mode Exit fullscreen mode

Instalar o qemu

O QEMU é um emulador e virtualizador de máquinas de código aberto e genérico. Para instalar o QEMU, execute o seguinte comando:

sudo apt install qemu qemu-system-x86
Enter fullscreen mode Exit fullscreen mode

Isso instala o qemu e o suporte para emular x86 (i386 e x86_64).

Compilar

nasm -f bin input.asm -o output.bin
qemu-system-i386 output.bin
Enter fullscreen mode Exit fullscreen mode

Erros comuns e como resolver:

Se você executa o programa, janelinha do QEMU não abre e você se depara com um erro como esse:

Mensagem de erro

Siga os seguintes passos:

Instalar e configurar o VcXsrv

Baixe o instalador do VcXsrv e conclua a instalação do programa. Ele nos permitirá abrir janelas do Linux pelo WSL como janelas do Windows, assim poderemos executar nossos códigos com uma interface gráfica.

Para configurar, abra o aplicativo e avance na configuração padrão, atenção para deixar a opção 'Disable Access Control' marcada.

Lembre-se de manter o programa aberto e rodando na hora de compilar o programa.

Depois disso, executar os seguintes comandos no terminal WSL (somente uma vez):

echo "export DISPLAY=\$(awk '/nameserver/{print \$2; exit;}' /etc/resolv.conf):0.0" >> ~/.bashrc
source ~/.bashrc
echo $DISPLAY
Enter fullscreen mode Exit fullscreen mode

O resultado se parecerá com isso : 172.18.0.1:0.0 ou isso 192.168.32.1:0.0.

Execute seu programa e seja feliz :)

Top comments (0)