<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Kailane Felix</title>
    <description>The latest articles on DEV Community by Kailane Felix (@kailanefelix).</description>
    <link>https://dev.to/kailanefelix</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F813664%2F2d16741c-1b3b-402a-a81e-e8119194799c.jpg</url>
      <title>DEV Community: Kailane Felix</title>
      <link>https://dev.to/kailanefelix</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kailanefelix"/>
    <language>en</language>
    <item>
      <title>Executando Assembly com QEMU no WSL</title>
      <dc:creator>Kailane Felix</dc:creator>
      <pubDate>Fri, 11 Feb 2022 21:57:09 +0000</pubDate>
      <link>https://dev.to/kailanefelix/executando-assembly-com-qemu-no-wsl-2i9j</link>
      <guid>https://dev.to/kailanefelix/executando-assembly-com-qemu-no-wsl-2i9j</guid>
      <description>&lt;h3&gt;
  
  
  Instalar o &lt;a href="https://docs.microsoft.com/pt-br/windows/wsl/install" rel="noopener noreferrer"&gt;WSL 2&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Apenas execute o comando abaixo no prompt de comando do Windows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;wsl --install
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;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:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;wsl -l -v
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A saída esperada é o número 2 na coluna Version:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuwx4qraazvnzkom32c3u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuwx4qraazvnzkom32c3u.png" alt="Saída esperada do comando"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Caso esteja versão certa, sorria e passe pra próxima fase! Caso contrário, &lt;a href="https://docs.microsoft.com/pt-br/windows/wsl/install#upgrade-version-from-wsl-1-to-wsl-2" rel="noopener noreferrer"&gt;atualize o WSL&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Para fazer a atualização do WSL 1 para o WSL 2, use o comando: &lt;code&gt;wsl --set-version &amp;lt;distro name&amp;gt; 2&lt;/code&gt; substituindo  pela distribuição do Linux que você deseja atualizar. Use &lt;code&gt;wsl --set-version Ubuntu-20.04 2&lt;/code&gt; definirá sua distribuição do Ubuntu 20.04 para usar o WSL 2.&lt;/p&gt;

&lt;h3&gt;
  
  
  Atualizar o sistema do WSL
&lt;/h3&gt;

&lt;p&gt;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:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt update &amp;amp;&amp;amp; sudo apt upgrade
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Você pode executar esse comando de vez em quando para atualizar os programas já instalados.&lt;/p&gt;

&lt;h3&gt;
  
  
  Instalar o nasm
&lt;/h3&gt;

&lt;p&gt;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:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt install nasm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Instalar o qemu
&lt;/h3&gt;

&lt;p&gt;O QEMU é um emulador e virtualizador de máquinas de código aberto e genérico. Para instalar o QEMU, execute o seguinte comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt install qemu qemu-system-x86
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Isso instala o qemu e o suporte para emular x86 (i386 e x86_64).&lt;/p&gt;

&lt;h3&gt;
  
  
  Compilar
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nasm -f bin input.asm -o output.bin
qemu-system-i386 output.bin
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Erros comuns e como resolver:
&lt;/h2&gt;

&lt;p&gt;Se você executa o programa, janelinha do QEMU não abre e você se depara com um erro como esse:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsvzd58leuiz4x0uyb110.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsvzd58leuiz4x0uyb110.png" alt="Mensagem de erro"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Siga os seguintes passos:&lt;/p&gt;

&lt;h3&gt;
  
  
  Instalar e configurar o &lt;a href="https://sourceforge.net/projects/vcxsrv/" rel="noopener noreferrer"&gt;VcXsrv&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;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.&lt;/p&gt;

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

&lt;p&gt;Lembre-se de manter o programa aberto e rodando na hora de compilar o programa.&lt;/p&gt;

&lt;p&gt;Depois disso, executar os seguintes comandos no terminal WSL (somente uma vez):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;echo "export DISPLAY=\$(awk '/nameserver/{print \$2; exit;}' /etc/resolv.conf):0.0" &amp;gt;&amp;gt; ~/.bashrc
source ~/.bashrc
echo $DISPLAY
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O resultado se parecerá com isso : 172.18.0.1:0.0 ou isso 192.168.32.1:0.0.&lt;/p&gt;

&lt;p&gt;Execute seu programa e seja feliz :)&lt;/p&gt;

</description>
      <category>wsl</category>
      <category>assembly</category>
      <category>qemu</category>
      <category>windows</category>
    </item>
  </channel>
</rss>
