[tutorial] seksen: emulador 8086/186

postagem de conteudo sobre programação para arquitetura x86 e x64
Post Reply
User avatar
Kodo no Kami
Admin
Admin
Posts: 725
Joined: Fri Jan 02, 2015 1:56 pm
Contact:

[tutorial] seksen: emulador 8086/186

Post by Kodo no Kami » Thu Mar 22, 2018 6:19 am

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.

Image

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.

Image

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

Image

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)

Code: Select all

 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

Code: Select all

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)

Image

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

Image

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

by kodo no kami
Image

que desagradavel ~ mirai kuriyama

Post Reply

Return to “x86 e x64”