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.
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.
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
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)
no nasm especificamos o argumento -f bin para compilar um binario puro
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)
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
bom galera esse tutorial é bem pequeno apenas para mostrar um pouco desse emulador ^^
by kodo no kami
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.
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.
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
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:
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:
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)
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
bom galera esse tutorial é bem pequeno apenas para mostrar um pouco desse emulador ^^
by kodo no kami