x86 assembly mini-course - bruno evangelista€¦ ·  · 2010-06-08tasm - turbo assembler...

46
x86 Assembly Mini-Course Bruno P. Evangelista [email protected] Part 1

Upload: nguyenxuyen

Post on 23-May-2018

248 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

x86 Assembly Mini-Course

Bruno P. Evangelista

[email protected]

Part 1

Page 2: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Introdução

Assembly é uma linguagem de programação debaixo nível em formato mnemonico

Ela possibilita trabalhar diretamente com oprocessador da máquina, executando operações quemuitas vezes não são possíveis em linguagens dealto nível

x86 Assembly Course – p.1/26

Page 3: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Porque utilizar?

Muito utilizado no desenvolvimento de aplicativosque exigem resposta em tempo real

Tirar proveito de conjuntos de instruções específicasdos processadores: SSE, SSE2, SSE3, 3DNOW,outros

Obter conhecimento do funcionamento do hardware,visando desenvolver softwares de melhor qualidade

x86 Assembly Course – p.2/26

Page 4: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Utilização em softwares

Muitas vezes os aplicativos precisam de umdesempenho maior em partes críticas do código

Nesses techos devem ser utilizados algoritmosotimizados, com baixa ordem de complexidade

Mesmo com o uso de um algoritmo adequado, podenão ser possível atingir o tempo de respostanecessário

Nesses casos, podemos tentar melhorar aperformance utilizando otimizações de baixo nível

x86 Assembly Course – p.3/26

Page 5: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Problemas

Otimizações de baixo nível não podem serprogramadas em linguagens de alto nível comoC/C++ ou Java

Quando fazemos otimizações de baixo nível,estamos confiando mais em nós mesmo, que nocompilador para fazer a geração de código

Muitas vezes otimizações de baixo nível não são asolução para gargalos no desempenho, sendonecessário trocar a ordem de complexidade doalgoritmo utilizado

x86 Assembly Course – p.4/26

Page 6: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Ferramentas utilizadas

Principais:Editor de código- Não existem IDEs com grandes recursos, devidoas limitações da linguagemMontador

Utilitários:DepuradorEditor hexadecimal

x86 Assembly Course – p.5/26

Page 7: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Montadores

Um dos primos do compilador

O papel do montador é transformar os mnemonicos emcódigo de máquina

Existem vários montadores para a linguagemAssembly:

MASM - Microsoft AssemblerNASM - Netwide Assembler(Versões para diferentes plataformas)TASM - Turbo Assembler (Borland)

x86 Assembly Course – p.6/26

Page 8: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Depurador

Ferramenta extremamente importante para encontrarerros cometidos durante a programação

Erros cometidos durante a programação geralmentetravam a máquina, não sendo possível detecta-locom facilidade

Um erro cometido na 10 linha de código geralmentesó é percebido centenas de linhas para frente, longede onde o erro foi cometido

x86 Assembly Course – p.7/26

Page 9: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Editor hexadecimal

Ferramente importante para trabalhar com arquivosbinários

Utilizada para editar e modificar informaçõesinternas de arquivos binários

x86 Assembly Course – p.8/26

Page 10: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Inlining Assembly

Algumas linguagens possuem mecanismos parapermitir a inserção de códigos assembly dentrolinguagem

Com isso podemos ter maior controle do nosoaplicativo, não precisando manter modulos externosem Assembly que devam ser linkados juntos com aaplicação

x86 Assembly Course – p.9/26

Page 11: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Inlining Assembly

Exemplo do uso de código Assembly na linguagemC/C++

__asm() {

pusha

xor ax, ax

popa

}

x86 Assembly Course – p.10/26

Page 12: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Arquitetura 8086

CPU Registradores de 16 bitsMemória Memória limitada a 1MB

Dividida em segmentos 64kbSomente modo realBytes na memória não possuemendereço únicoOrganização little endian

x86 Assembly Course – p.11/26

Page 13: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Arquitetura 8086

Endereçamento de memória

Endereço = 16 ∗ segmento + offset

Memória endereçável: 220 = 1MB

x86 Assembly Course – p.12/26

Page 14: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Arquitetura 8086

Mapeamento da memória

0x00000 - 0x003FF Tabela de interrupções (ISR)0x00400 - 0x005FF Área de BIOS (BDA)0x00600 - 0x9FFFF Área livre0xA0000 - 0xAFFFF Memória de vídeo EGA/VGA0xB0000 - 0xB7FFF Memória de texto monocromático0xB8000 - 0xBFFFF Memória de vídeo CGA0xC0000 - 0xDFFFF ROM instalada0xE0000 - 0xFDFFF ROM fixa0xFE000 - 0xFFFFF ROM da BIOS

x86 Assembly Course – p.13/26

Page 15: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Arquitetura 80386

CPU Registradores de 32 bitsMemória Memória limitada a 4GB

Modo real e protegidoBytes na memória possuemendereço únicoOrganização little endian

x86 Assembly Course – p.14/26

Page 16: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Sintaxes de comando

Intel AT&Tmov eax, 1 movl $1, %eaxmov ebx, 0ffh movl $0xff, %ebxint 80h int $0x80mov eax, [ebx] movl (%ebx), %eaxmov eax, [ebx+3] movl 3(%ebx), %eax

x86 Assembly Course – p.15/26

Page 17: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Diretiva de dados

Diretivas de dados são utilizadas para definir espaçona memória

Existem duas diretivas de dados

Diretivas de dados DescriçãoRESX Define espaço para memóriaDX Define espaço para memória

e inicializa a área

O símbolo X deve ser trocado pelo tipo de dadodesejado

x86 Assembly Course – p.16/26

Page 18: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Diretiva de dados

Tipos de dado Letra Tamanho(bits)byte B 8word W 16double word D 32quad word Q 64ten bytes T 80

x86 Assembly Course – p.17/26

Page 19: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Registradores

A arquitetura 8086 possui 14 registradores de 16bits, sendo:

4 de propósito geral5 de offset para acesso a memória4 de segmento para acesso a memória1 registrador de flags

x86 Assembly Course – p.18/26

Page 20: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Registradores

Registradores de propósito geral

Registrador Propósito geralAX AcumuladorBX BaseCX ContadorDX Dados

x86 Assembly Course – p.19/26

Page 21: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Registradores

Registradores de offset para acesso a memória

Registrador OffsetIP Instruction pointerSP Stack pointerBP Base pointerSI Source IndexDI Destination Index

x86 Assembly Course – p.20/26

Page 22: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Registradores

Registradores de segmento para acesso a memória

Registrador SegmentoCS Code segmentSS Stack SegmentDS Data SegmentES Extra segment

x86 Assembly Course – p.21/26

Page 23: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Registradores

Registrador de flags

Flags DescriçãoOF Overflow flagDF Direction flagIF Interrupt flagTF Trap flagSF Sign flagZF Zero flagAF Auniliary flagPF Parity flagCF Carry flag

x86 Assembly Course – p.22/26

Page 24: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Registradores

A arquitetura 80386 possui registradores de 32 bitsque extendem os registradores anteriores mantendocompatibilidade

Os registradores de 32 bits possuem o prefíxo “E”

Não acessível 16b

AX 16b︷ ︸︸ ︷

AH 8b AL 8b︸ ︷︷ ︸

EAX 32b

x86 Assembly Course – p.23/26

Page 25: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Instruções

Instrução Descriçãomov Move dadosadd Adição aritméticasub Subtração aritméticapush Empilhapop Desempilhajmp Salto incondicionalint Interrupçãocall Chamada

x86 Assembly Course – p.24/26

Page 26: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Interrupções

São chamadas de funções externas

A tabela interrupções se encontram no início damemória, e é chamada ISR(Interrupt ServiceRoutine)

A ISR possui o endereço das funções de cadainterrupção, contendo o segmento e offset de cadauma delas

Quando o comando: int 21h é executado, estamosna verdade saltando para o endereço de memóriaque contêm o código da interrupção

x86 Assembly Course – p.25/26

Page 27: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Interrupções da BIOS

Interrupção Descrição10h Escreve caracter13h Reseta drive

Lê do discoEscreve no disco

16h Lê caracter18h Chama “Basic”19h Reseta

x86 Assembly Course – p.26/26

Page 28: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

x86 Assembly Mini-Course

Bruno P. Evangelista

[email protected]

Part 3

Page 29: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Sistema de arquivos

Quando trabalhamos com arquivos, necessitamos deum mecanismo capaz de manipular os mesmos,chamado sistema de arquivos

O sistema de arquivos deve disponibilizar asoperações necessárias para manipulação arquivos,como:

ListarLeituraGravação

x86 Assembly CoursePart III – p.1/18

Page 30: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Qual sistema utilizar?

Atualmente existem diversos sistemas de arquivos,cada um para um propósito específico

FAT12, FAT32, NTFSVFAT, EXT3, EXT3, REISER

Os sistemas de arquivos são desenvolvidos baseadono dispositivo que será utilizado

Alguns formatos não são adequados paradispositivos de pequenos porte, pois utilizam muitoespaço para fazer o gerênciamento dos arquivos

x86 Assembly CoursePart III – p.2/18

Page 31: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Qual sistema utilizar?

Um sistema de arquivos simples pode ser facilmentecriado, no entanto, não isso demanda tempo

Ao utilizarmos um sistema já existente, podemosfazer uso das diversas ferramentas e recursosdisponíveis para o mesmo

x86 Assembly CoursePart III – p.3/18

Page 32: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Sistema FAT12

FAT12 é um sistema de arquivos TODO

Na FAT12 existe um ponteiro para o primeiro blocode cada arquivo e para cada bloco lido existe, umponteiro para o próximo bloco

O sistema FAT12 é formado por:Duas cópias da tabela de alocação dearquivos(FAT)Tabela de entrada de arquivosDados dos arquivos

x86 Assembly CoursePart III – p.4/18

Page 33: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Estrutura da FAT12

Dos 2.880 setores disponíveis, 1 é utilizado paraboot, 32 para cabeçalhos, e o resto para dados

Setor Utilização Espaço0 Boot sector 512b1-9 FAT Copy 1 4,5kb10-18 FAT Copy 2 4,5kb19-32 Root Directory 7kb33-2879 Data 1,39mb

x86 Assembly CoursePart III – p.5/18

Page 34: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Cabeçalho do boot para FAT12

A FAT12 utiliza o ínicio do setor de boot para guardaras configurações do dispositivo e verificar se osistema é válido

OSID db ’EVANG_OS’bytesPerSector dw 0x0200sectorsPerCluster db 0x01leadingSectors dw 0x0001numFAT db 0x02maxRootDirEntries dw 0x00E0totalSectors dw 0x0B40mediaType db 0x0F0

x86 Assembly CoursePart III – p.6/18

Page 35: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Cabeçalho do boot para FAT12

sectorsPerFAT dw 0x0009sectorsPerTrack dw 0x0012numberOfHeads dw 0x0002hiddenSectors dd 0x00000000totalSectors2 dd 0x00000000driveNumber db 0x00reserved db 0x00bootSignaure db 0x29volumeID dd 0x26185454volumeLabel db ’EVANG_OSbbb’volumeLabel db ’OST4bbbbbbb’FATID db ’FAT12bbb’ x86 Assembly CoursePart III – p.7/18

Page 36: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Endereçamento da FAT12

Cada entrada da tabela FAT possui 12 bits

Com isso temos 212 = 4096(4kb) possíveis

endereços de setor

Na FAT12 cada setor possúi 512 bytes

O que disponibiliza um endereçamento total de 2mb

x86 Assembly CoursePart III – p.8/18

Page 37: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Entradas da FAT

Cada entrada da FAT12 possui 12 bits

Por isso para acessar cada entrada é necessário lerdois bytes, mas apenas 1 byte e meio é utilizado

Por causa disso é preciso um tratamento especialpara as entradas na FAT

x86 Assembly CoursePart III – p.9/18

Page 38: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Entradas da FAT

Trecho da FAT exibida em hexadecimal, cadacaracter representa um nibble de 4 bits

01 23 45 67 89

Endereço 0 endereço: 0 1 2

Endereço 1 endereço: 3 4 5

Endereço 2 endereço: 6 7 8

x86 Assembly CoursePart III – p.10/18

Page 39: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Entradas de arquivo

Para localizarmos os arquivos em disco é necessárioconsultar a tabela de arquivos

Byte Descrição0-7 Nome do arquivo8-10 Extensão11 Atributos12-21 Reservados22-23 Hora24-25 Data26-27 Endereço do primeiro cluster28-31 Tamanho do arquivo

x86 Assembly CoursePart III – p.11/18

Page 40: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Modos de endereçamento

O tipo de endereçamento utilizado pela FAT12 édiferente do utilizado pela controladora do disco

Basicamente existem dois tipos de endereçamentoCHS - Cylinder, Head, SectorLBA - Logical block address

A controladora do disco trabalha com oendereçamento CHS

x86 Assembly CoursePart III – p.12/18

Page 41: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Modos de endereçamento

A BIOS possui interrupções para trabalhar com LBA,no entando o código utilizado é grande, por issogeralmente é utilizado o endereçamento CHS noboot

Para acessarmos o endereço do arquivo énecessário então fazer uma conversão entre os tiposde arquivo, como ilustra o desenho abaixo

FAT12 −→ LBA −→ CHS

x86 Assembly CoursePart III – p.13/18

Page 42: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Transformação LBA para CHS

Sector = LBA % SectorsPerTrack + 1

Head = (LBA / SectorsPerTrack) % NumberOfHeads

Cylinder = (LBA / SectorsPerTrack) /NumberOfHeads

x86 Assembly CoursePart III – p.14/18

Page 43: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Transformação FAT para LBA

O FAT começa a endereçar a partir da área livre,setor 33 (0 a 32 estão ocupados)

Mas é importante lembrar que os dois primeirosendereços de entrada do FAT são reservadas

Então o endereço do bloco 33 na FAT12 é 2

Portanto para converter um FAT para LBA bastasomar 31 ao número do bloco

x86 Assembly CoursePart III – p.15/18

Page 44: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Funções básicas do driver

FAT12 STARTCarrega todos os cabeçalhos do sistema para amemória, em uma área segura

FAT12 READCarrega um arquivo pelo nome, e grava em umaárea disponível da memória

LBA READCarrega um setor LBA para a memória

x86 Assembly CoursePart III – p.16/18

Page 45: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Testando o driver

Crie vários arquivos com 512 caracteres, cada umformado por uma sequência do mesmo caracter

aaaaaaaabbbbbbbb

Execute a operação de leitura e em seguida deexibição para cada um dos arquivos e veja se oresultado está correto

Concatene os arquivos em grupos de 3, tamanho1.5kb, e execute a operação de leitura e exibiçãonovamente

Se após vários testes tudo ocorreu bem, seu sistemade arquivos está funcionando corretamente

x86 Assembly CoursePart III – p.17/18

Page 46: x86 Assembly Mini-Course - Bruno Evangelista€¦ ·  · 2010-06-08TASM - Turbo Assembler (Borland) x86 Assembly Course – p.6/26. ... Arquitetura 8086 CPU Registradores de 16 bits

Informações adicionais

Google - www.google.comUm dos seus melhores amigos, não deixe deperguntar para ele! =D

Intel - www.intel.comDisponibiliza manual sobre a arquitetura x86,além de várias ferramentas para desenvolvedores

x86 Assembly CoursePart III – p.18/18