seksen: emulador 8086/186

Discussão em 'Dicas e tutoriais' iniciado por kodo no kami, 22 Março 2018.

  1. kodo no kami
    Offline

    kodo no kami Membro Conhecido

    Afiliado:
    16 Dezembro 2015
    Mensagens:
    228
    Sexo:
    Masculino
    Avaliações:
    +299 / -0
    Bom galera nesse pequeno tutorial vamos dar uma rapida olhada no emulador chamado seksen. O seksen é um emulador da arquitetura x86, sendo mais especifico ele emula os processadores 8086 e 80186. Podemos baixar o seksen no sourceforge no seguinte link

    sourceforge

    o seksen é um emulador feito em java então é necessário o java instalado na maquina para conseguir rodar ele, esse emulador não compila os codigos apenas executa os binários então vamos precisar também de um compilador para gerar os programas da arquitetura x86 (no meu caso vou esta utilizando o nasm que é um compilador assembly muito conhecido). Depois de baixar e executar nos deparamos com uma aba onde podemos selecionar o processador, criar ou abrir uma maquina pronta.

    [​IMG]

    depois de escolher o processador e apertar em "create" vai aparecer uma nova janela, onde a aba central mostra os codigos carregados na memoria (lembrando que o 8086 funciona apenas em modo real já que o modo protegido surgiu a partir dos processadores 286/386), na aba superior da esquerda temos os registradores, na aba inferior temos algumas opções como log, output, memory e etc.

    [​IMG]

    para a gente carragar o nosso binario apertamos no menu "File", selecionamos o tipo do nosso binario (podendo ser elks, binario puro, e intel), procuramos o binario na maquina, e por fim escolhemos o endereço de memoria onde sera carregado aquele binario

    [​IMG]

    para esse exemplo vou criar um simples programa onde nele é setado valores em dois registradores (AX e BX), depois é feito a adição entre esses registradores e por fim armazenando em um endereço de memoria especifico (não vou ensinar asm nesse tutorial XD, caso tenha interesse tem um ebook meu ensinando o básico de asm para arquitetura x86 ou quem sabe um futuro tutorial especifico para isso \o)

    Código (Forge Crash):
     org 0x0
    mov ax,0x10
    mov bx,0x5
    add ax,bx
    mov [0x20],ax
    hlt
    no nasm especificamos o argumento -f bin para compilar um binario puro

    Código (Forge Crash):
    nasm -f bin kodo.asm -o kodo.bin
    depois de carregar o nosso binario no emulador vai esta naquele endereço de memoria especificado (no meu caso joguei no endereço 0000:0000)

    [​IMG]

    para rodar o programa apertamos no menu "run", depois basta apertar na opção "step" para rodar passo a passo ou em "run" para rodar o programa sem pausa (nesse caso para parar usamos a opção "stop" ou colocamos uma instrução hlt no nosso código ~ outra forma ainda é colocar um breakpoint). Podemos notar que os registradores assim como a memoria vai sendo modificada conforme a logica do nosso código

    [​IMG]

    bom galera esse tutorial é bem pequeno apenas para mostrar um pouco desse emulador ^^

    by kodo no kami
     
    • Gostei Gostei x 1
    • Top Top x 1
    Última edição: 22 Março 2018

Compartilhe esta Página