walter fetter lages universidade federal do rio grande do ... › ~fetter › eng04476 ›...
TRANSCRIPT
![Page 1: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/1.jpg)
IA32Walter Fetter [email protected]
Universidade Federal do Rio Grande do Sul
Escola de Engenharia
Departamento de Engenharia Elétrica
Copyright (c) Walter Fetter Lages – p.1
![Page 2: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/2.jpg)
Introdução
• 80386DX, 80386SX• 80486DX, 80486SX, 80486DX2, 80486DX4• Intel Pentium, Pentium-MMX• Intel Pentium Pro, Pentium II, Celeron• Intel Pentium III, Celeron• Intel Pentium 4, Pentium 4 D, Celeron• Core Duo, Centrino• Intel Core 2 Duo, Core 2 Quad, Centrino
• EM64T, x8664• EM64T 6= IA64
Copyright (c) Walter Fetter Lages – p.2
![Page 3: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/3.jpg)
Introdução
• AMD 5x86, K5, 6x86• AMD K6, K6II, K6III• AMD Athlon, Duron• Athlon XP, Semprom, Turion• AMD Athlon 64, Turion 64
• AMD64, x8664• AMD64 ≈ EM64T
• AMD Athlon 64 X2, Turion 64 X2• AMD64, x8664
• Transmeta Crusoé• Cyrix 5x86, M1
Copyright (c) Walter Fetter Lages – p.3
![Page 4: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/4.jpg)
Diagrama de Blocos DX4
Copyright (c) Walter Fetter Lages – p.4
![Page 5: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/5.jpg)
Sinais DX4
Copyright (c) Walter Fetter Lages – p.5
![Page 6: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/6.jpg)
Ciclo de Leitura Externa DX4
Copyright (c) Walter Fetter Lages – p.6
![Page 7: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/7.jpg)
Modos de Operação
• Modo protegido• Modo virtual 86
• Emulação do modo real por uma tarefa demodo protegido
• Modo real• Modo original do 8086• Modo default
• Modo de gerenciamento de sistema• Introduzido com o 80386SL• Utilizado para função de economia de energia• Endereçamento similar ao modo real
Copyright (c) Walter Fetter Lages – p.7
![Page 8: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/8.jpg)
Níveis de Privilégio
Copyright (c) Walter Fetter Lages – p.8
![Page 9: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/9.jpg)
Verificação de Privilégios
Copyright (c) Walter Fetter Lages – p.9
![Page 10: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/10.jpg)
Ambiente de Execução Básico
Copyright (c) Walter Fetter Lages – p.10
![Page 11: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/11.jpg)
Registradores de Uso Geral
Copyright (c) Walter Fetter Lages – p.11
![Page 12: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/12.jpg)
Registradores de Segmento
Copyright (c) Walter Fetter Lages – p.12
![Page 13: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/13.jpg)
Flags
Copyright (c) Walter Fetter Lages – p.13
![Page 14: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/14.jpg)
Ambiente de Sistema
Copyright (c) Walter Fetter Lages – p.14
![Page 15: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/15.jpg)
Registradores de Controle
Copyright (c) Walter Fetter Lages – p.15
![Page 16: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/16.jpg)
Registradores de Controle
PG: Paging
CD: Cache disable
NW: Not write-through
AM: Aligment mask
WP: Write protect
NE: Numeric error
ET: Extension type
TS: Task switched
EM: Emulation
MP: Monitor coprocessor
PE: Protection enableCopyright (c) Walter Fetter Lages – p.16
![Page 17: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/17.jpg)
Registradores de Controle
PCD: Page-level cache disable
PWT: Page-leve write-through
VME: Virtual-8086 mode extensions
PVI: Protected-mode virtual interrupts
TSD: Time stamp disable
DE: Debugging extensions
PSE: Page size extensions
PAE: Physical address extension
MCE: Machine-check enable
PGE: Page global enale
PCE: Performance-monitoring conter enableCopyright (c) Walter Fetter Lages – p.17
![Page 18: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/18.jpg)
Relocação
• Em sistemas multitarefa, cada tarefa terá umendereço inicial diferente. Como oprogramador/compilador/linker saberá oendereço inicial (e endereços de subrotinas,dados, etc...) da tarefa?• Problema da relocação• Gerar apenas código com endereços relativos
• Código relocável• Relocação durante a carga da tarefa na
memória
Copyright (c) Walter Fetter Lages – p.18
![Page 19: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/19.jpg)
Segmentação
• Associa-se a cada área de memória um valor debase e um valor de limite
• base=endereço inicial• limite=endereço máximo ou tamanho• Todas as tarefas são codificadas assumindo que a
sua área de memória começa em 0• Quando a tarefa é selecionada para executar, base
e limite são carregados pelo sistema operacionalem registradores especiais na CPU
Copyright (c) Walter Fetter Lages – p.19
![Page 20: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/20.jpg)
Segmentação
• Endereço físico = offset + base• Soma feita por hardware a cada acesso à
memória• Endereços são verificados quanto ao limite
• Uma tarefa não pode acessar a área das outras
Copyright (c) Walter Fetter Lages – p.20
![Page 21: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/21.jpg)
Exemplo
• 64kB de memória total• Programa 1
• Tamanho de 16kB• Carregado no endereço físico 1000h
• Programa 2• Tamanho de 32kB• Carregado no endereço físico 6000h
• Ambos acessam o endereço lógico 3000h• Tabela de segmentos no endereço físico 0400h
Copyright (c) Walter Fetter Lages – p.21
![Page 22: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/22.jpg)
Segmentação
• O seletor e descritor de segmento são controladospelo sistema operacional
• O offset é controlado pelo programa de aplicação• Proteção
• Usualmente o descritor de segmento temalgums bits associados que são utilizados paradeterminar as características de proteção dosegmento
• Permissões de leitura, escrita, execução• Cache de descritor de segmento
• Evita dois acessos a memória• Alterado apenas quando o registrador de
seletor de segmento é alteradoCopyright (c) Walter Fetter Lages – p.22
![Page 23: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/23.jpg)
Modelo Flat
Copyright (c) Walter Fetter Lages – p.23
![Page 24: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/24.jpg)
Modelo Flat Protegido
Copyright (c) Walter Fetter Lages – p.24
![Page 25: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/25.jpg)
Multi-segmentos
Copyright (c) Walter Fetter Lages – p.25
![Page 26: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/26.jpg)
Segmentação na IA32
• Local Descriptor Table (LDT)• Global Descriptor Table (GDT)
Copyright (c) Walter Fetter Lages – p.26
![Page 27: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/27.jpg)
GDT e LDT
Copyright (c) Walter Fetter Lages – p.27
![Page 28: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/28.jpg)
Segmentação na IA32
Copyright (c) Walter Fetter Lages – p.28
![Page 29: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/29.jpg)
Seletor de Segmento na IA32
Copyright (c) Walter Fetter Lages – p.29
![Page 30: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/30.jpg)
Descritor de Segmento
Copyright (c) Walter Fetter Lages – p.30
![Page 31: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/31.jpg)
Segmentação no Modo V86
• Semelhante à segmentação no 8086• Seletores são utilizados como base dos segmentos
Copyright (c) Walter Fetter Lages – p.31
![Page 32: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/32.jpg)
Memória Virtual
• Paginação• Falta de página• Page-table
• Endereço• Virtual• Físico
Copyright (c) Walter Fetter Lages – p.32
![Page 33: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/33.jpg)
Tabela de Páginas
Copyright (c) Walter Fetter Lages – p.33
![Page 34: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/34.jpg)
Hardware de Paginação
• Usualmente a tabela de páginas é mantida emmemória e não em registradores• Registrador de base da tabela de páginas• Translation look-aside buffer (TLB)
• Evita dois acessos a memória• Páginas também podem ter bits de proteção
associados• Bit de presença/ausência
Copyright (c) Walter Fetter Lages – p.34
![Page 35: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/35.jpg)
Páginas de 4MB
Copyright (c) Walter Fetter Lages – p.35
![Page 36: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/36.jpg)
Páginas de 4KB
Copyright (c) Walter Fetter Lages – p.36
![Page 37: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/37.jpg)
Segmentação e Paginação
Copyright (c) Walter Fetter Lages – p.37
![Page 38: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/38.jpg)
Physical Address Extension
Copyright (c) Walter Fetter Lages – p.38
![Page 39: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/39.jpg)
Páginas de 2MB
Copyright (c) Walter Fetter Lages – p.39
![Page 40: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/40.jpg)
Page Size Extension
Copyright (c) Walter Fetter Lages – p.40
![Page 41: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/41.jpg)
Mapeamento Segmentos/Páginas• Segmentos mapeados em páginas ou não• Mapeamento de segmentos em páginas simplifica
o gerenciamento
Copyright (c) Walter Fetter Lages – p.41
![Page 42: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/42.jpg)
Proteção de I/O
• Existe um nível de privilégio de I/O• Apenas processos com nível de privilégio
menor ou igual podem executar instruções deI/O
• Associado a cada processo pode existir umbitmap de permissões de I/O• Apenas as portas habilitadas podem ser
acessadas• Hardware Virtual
• Virtualização de dispositivos
Copyright (c) Walter Fetter Lages – p.42
![Page 43: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/43.jpg)
I/O Permission Bit Map
Copyright (c) Walter Fetter Lages – p.43
![Page 44: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/44.jpg)
Coprocessador (FPU)
• Registradores e opcodes ponto flutuante• Na IA32 opera em notação polonesa reversa• A partir do 80486DX passou a ser FPU
Copyright (c) Walter Fetter Lages – p.44
![Page 45: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/45.jpg)
Registradores FPU
Copyright (c) Walter Fetter Lages – p.45
![Page 46: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/46.jpg)
Controle FPU
Copyright (c) Walter Fetter Lages – p.46
![Page 47: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/47.jpg)
Status FPU
Copyright (c) Walter Fetter Lages – p.47
![Page 48: Walter Fetter Lages Universidade Federal do Rio Grande do ... › ~fetter › eng04476 › ia32.pdf · • Modo virtual 86 • Emulação do modo real por uma tarefa de modo protegido](https://reader035.vdocuments.site/reader035/viewer/2022070804/5f0345557e708231d408627f/html5/thumbnails/48.jpg)
Exemplo FPU
.intel_syntax noprefix
.text
.global sum
# float sum(float a,float b)
sum:
push ebp
mov ebp,esp
finit
wait
fld dword ptr [ebp+8] # a
fadd dword ptr [ebp+12] # b
fwait
pop ebp
ret
Copyright (c) Walter Fetter Lages – p.48