Linguagem Assembly Para I386 E X86-64

Total Page:16

File Type:pdf, Size:1020Kb

Linguagem Assembly Para I386 E X86-64 Linguagem Assembly para i386 e x86-64 Versão 0.8.5 © 2015,2017 por Frederico Lamberti Pissarra 3 de março de 2017 Título: Linguagem Assembly para i386 e x86-64 Autor: Frederico Lamberti Pissarra Ano de publicação: 2017 Este material é protegido pela licença GFDL 1.3: Linguagem Assembly para i386 e x86-64 Copyright (C) 2014-2016 by Frederico Lamberti Pissarra A permissão de cópia, distribuição e/ou modificação deste documento é garantida sob os termos da licença “GNU Free Documentation License, Version 1.3” ou versão mais recente publicada pela Free Software Foundation. O texto integral da licença pode ser lido no link https://www.gnu.org/licenses/fdl.html. É importante, no entanto, advertir ao leitor que este material encontra-se em processo de produção. Trata-se, então, de um rascunho e não reflete o material finalizado. Índice Introdução 1 Dicas de como ler este livro 1 Sobre o tamanho de blocos 2 Ferramentas do ofício 2 Por que diabos precisamos de um compilador C? 2 Sobre o modo preferido de operação do processador 3 Capítulo 1 - Conceitos Básicos 5 O que são números? 5 Escrevendo números de bases diferentes 5 Explicando melhor a notação posicional 5 Quanto menor a base, maior é o número 6 Mais sobre os significados dos “lados” de um número... 7 Aritmética inteira 7 Carry e “borrow” são complementares 9 Adição e subtração com sinais 9 Modos de operação dos processadores 386 ou superiores 10 Organização da memória do seu programa 10 Organização da memória do seu PC 12 Registradores 13 Registradores nas arquiteturas i386 e x86-64 14 Segmentos de memória 15 Problemas com ponteiros “longínquos” no modo real 16 Registradores que selecionam “segmentos” da memória 16 Seletores “default” 18 Instruções 19 “Tipos” em assembly 19 A pilha, funções e os registradores RSP e RBP 20 Registrador RFLAGS 22 Retorno de valores booleanos em C e Assembly 23 Um pouco mais sobre endereços (usando ponteiros) 24 Um pouco mais sobre seletores default e a derreferenciação de ponteiros 25 A área “doce” da pilha 25 Diferenças entre endereços de 32 bits e 64 bits 25 Capítulo 2 - A linguagem Assembly 27 Informando o modo de operação para o compilador 28 Especificando os “segmentos” da memória usados pelo programa 28 Declarando símbolos 29 Diferentes sabores de assembly 29 Sabores de compiladores 30 A linguagem assembly 30 Tipos de instruções 32 Usando RFLAGS para tomar decisões 32 Comparando desigualdades 33 Loops 34 Capítulo 3 – Assembly e outras linguagens 37 Portabilidade é um problema! 37 Convenções de chamada 37 A convenção “cdecl” e o modo i386 38 Registradores que devem ser preservados entre chamadas de funções 39 Armazenamento temporário “local” na pilha 39 Instruções especiais para lidar com prólogos e epílogos 40 Parâmetros em ponto flutuante 41 A convenção de chamada para o modo x86-64 41 Registradores que devem ser preservados entre chamadas (x86-64) 41 E quanto a convenção PASCAL? 42 O assembly inline 42 Descritores, no assembly inline 44 Combinando descritores 45 Usando o “sabor” Intel na linguagem assembly inline 45 E os registradores estendidos, de R8 até R15? 46 Labels “relativos” dentro do código assembly 46 Capítulo 4 – Instruções 47 As diferentes instruções de multiplicação inteiras 47 E quanto às divisões? 47 NEG e NOT 48 INC e DEC não são tão boas assim 48 Realizando cálculos simples com uma única instrução 48 A limitação de MOV e a cópia de strings 49 Existem duas instruções MOVSD?! 49 Preenchendo um array 50 Movimentações e preenchimentos de strings nas arquiteturas modernas 50 Comparações e buscas de strings 50 O prefixo REP pode ser usado para alinhamento de código 52 Outras instruções de movimentação interessantes 52 Porque a instrução LOOP nunca é usada pelo GCC? 52 XLAT é outra instrução “inútil” 53 Trocando valores em uma tacada só... 53 Outras instruções que “travam” o barramento 53 “Comparação” lógica 54 Invertendo bits individuais e zerando registradores 55 Deslocando e rodando 55 Contando bits zerados e setados de um lado ou de outro 57 Capítulo 5 – Ponto flutuante 59 Números, em ponto flutuante 59 Maneiras de lidar com ponto flutuante 60 Usando o co-processador matemático 60 A pilha do x87 61 Exemplo de calculos com o x87 62 O x87 tem algumas constantes “built-in” 62 Equações “built in” 63 Fazendo comparações no modo x87 64 Usando SIMD no modo escalar 64 Comparação de valores escalares usando SSE 66 Convertendo valores 66 O tipo “long double” 66 Capítulo 6 – SIMD Vetorizado 69 Realizando 4 operações com floats em uma tacada só 69 Um aviso sobre a carga de registradores XMM via MOVAPS 70 Embaralhando um registrador 70 Exemplo de uso de SSE: O produto vetorial 71 Desempacotamento, outro tipo de embaralhamento 73 SSE 2, 3 e 4 73 SSE não é a única extensão SIMD 74 Capítulo 7 – Performance 75 Contando ciclos 75 Latência e throughput 75 Micro-fusão e macro-fusão 77 Dividir ou multiplicar? 78 Evite multiplicações e divisões inteiras! 80 Evite usar instruções para o coprocessador x87! 81 Nem sempre o compilador faz o que você quer 81 Os efeitos do “branch prediction” 83 Dando dicas ao processador sobre saltos condicionais 84 Quantos mais dados você manipular, pior a performance 85 Códigos grandes também geram problemas com o cache! 86 Se puder, evite usar os registradores estendidos, no modo x86-64 86 Os acessos à memória também podem ser reordenados 87 Medindo a performance 87 Calculando o “ganho” ou “perda” de performance 90 Apêndice A – Se você é uma Maria “Gasolina”... 91 Usando o GAS 91 Comentários são iniciados com # 91 Instruções contém o tamanho dos operandos 91 Prefixos REP, REPZ e REPNZ são “instruções” separadas 92 A ordem dos operandos é contrária a usada no sabor Intel 92 Uma vantagem do sabor AT&T 92 Valores imediatos 92 Obtendo o endereço atual 92 Os modos de endereçamento são especificados de forma diferente 93 Saltos e chamadas de funções 93 Algumas diretivas do compilador 94 Códigos em 16, 32 e 64 bits 95 Labels têm “tipos” e “tamanhos” 95 Definindo dados 95 Alinhamento de dados e código 95 Exportando e importando símbolos 96 Algumas diretivas especiais 96 Macros 96 Introdução Em todo material técnico relacionado com a linguagem Assembly costumo escrever a mesma ladainha, massageando o meu ego. O leitor que me perdoe, mas o que vai ai embaixo não será exceção... Sou o autor do, hoje nem tão famoso assim, “Curso de Assembly da RBT”. Escrevi 26 capítulos sobre o assunto, em 1994, e fiz certo sucesso na grande rede. Infelizmente o curso está meio caduco, obsoleto, e merece uns retoques e adições. Os capítulos que seguem são a minha tentativa de explicar melhor e mais profundamente o que é assembly, bem como fornecer algum material de referência e um pouco de como funciona aquele chip da placa-mãe que você lambuza de pasta térmica e coloca um grande cooler em cima. Outro aviso importante é sobre o foco deste texto. O leitor não encontrará informações importantes aqui que permitam o desenvolvimento, por exemplo, de um sistema operacional. Não falarei quase nada sobre registradores de controle, inicialização do processador, multi-threading (e multi- processing), interfaces com a BIOS, etc. O que mostro aqui é a linguagem assembly e seu uso no userspace. Dicas de como ler este livro É tradicional, em textos desse tipo, que a introdução contenha material essencial para o bom entendimento das partes mais “hardcore”. Coisas como base numéricas e um pouquinho de conceitos de eletrônica digital... Vamos a elas logo no próximo capítulo, mas antes, precisamos ter certeza que falamos a mesma língua e usamos as mesmas ferramentas do ofício... Tentei seguir alguns padrões para facilitar sua leitura: • Negritos são usados para ressaltar alguma informação que pode passar desapercebida pelo leitor, bem como a introdução de algum termo técnico que, mais tarde, aparecerá numa formatação mais “normal”; • Aspas também são usadas como recurso de chamada de atenção, ou para tornar algo mais (no caso de uma piada) ou menos (no caso de eu querer dizer exatamente o que a palavra significa) ambíguo. Usar aspas é uma mania minha... assim como usar reticências...; • Palavras em itálico são usadas em termos estrangeiros, na maioria das vezes; • Códigos fonte, palavras reservadas de uma linguagem e referências a um código fonte no texto explicativo usam fonte mono espaçada; • Às vezes textos aparecerão dentro de uma caixa cinzenta: Como este aqui, por exemplo! Ela é outro desses recursos usados para chamar sua atenção para uma explicação importante. Existem outras táticas estilísticas para ajudar na leitura: Todos os códigos fonte, nomes de símbolos e referências a códigos fonte são escritas em caracteres minúsculos. Faço isso porque tanto a linguagem C quanto o NASM são case sensitive. Isso significa que nomes de variáveis como abc, abC, aBc ou Abc não são a mesma variável. O outro motivo é pessoal. Sou um sujeito sensível e sempre que leio códigos escritos em letras maiúsculas acho que estão gritando comigo e fico muito nervoso (especialmente se vejo uma burrada no código!)... 1 Nomes de registradores poderão aparecer tanto em letras minúsculas quanto maiúsculas. O último caso serve como destaque estilístico, para não tornar as sentenças confusas ao leitor. Sobre o tamanho de blocos Você observará que ao informar tamanhos de blocos usarei a abreviação “KiB” ao invés da mais tradicional “kB”. Existe uma diferença... O Sistema Internacional de unidades, mantido pela ISO, especifica que o prefixo “k” significa multiplicar a unidade por 10³. Acontece que 1 “quilobyte” não é exatamente igual a 1000 bytes. Existe um prefixo específico para esse tipo de grandeza, cuja base numérica é baseada em 2: O “kibibyte”.
Recommended publications
  • Versa 2700 Series Service and Reference Guide
    SOLD BY laptopia2005 DO NOT RESELL!! PROPRIETARY NOTICE AND LIABILITY DISCLAIMER The information disclosed in this document, including all designs and related materials, is the valuable property of NEC Computer Systems Division, Packard Bell NEC, Inc. (NECCSD, PBNEC) and/or its licensors. NECCSD and/or its licensors, as appropriate, reserve all pat- ent, copyright and other proprietary rights to this document, including all design, manufactur- ing, reproduction, use, and sales rights thereto, except to the extent said rights are expressly granted to others. The NECCSD product(s) discussed in this document are warranted in accordance with the terms of the Warranty Statement accompanying each product. However, actual performance of each such product is dependent upon factors such as system configuration, customer data, and operator control. Since implementation by customers of each product may vary, the suitability of specific product configurations and applications must be determined by the customer and is not warranted by NECCSD. To allow for design and specification improvements, the information in this document is subject to change at any time, without notice. Reproduction of this document or portions thereof without prior written approval of NECCSD is prohibited. NEC is a registered trademark, Versa is a U.S. registered trademark, VersaGlide, and PortBar are trademarks, and UltraCare is a U.S. registered service mark of NEC Corporation, used under license. FaxFlash is a service mark of NEC Computer Systems Division (NECCSD), Packard Bell NEC, Inc. All other product, brand, or trade names used in this publication are the property of their respective owners. Second Printing — November 1997 Copyright 1997 NEC Computer Systems Division, Packard Bell NEC, Inc.
    [Show full text]
  • 3. Das LPC-Interface 3.1
    PCTEC14 Seite 1 3. Das LPC-Interface 3.1. Grundlagen 3.1.1. Einsatzgebiet LPC = Low Pin Count Interface Specification (= “Interface mit geringer Anschlußzahl”). Das LPC-Interface ist ein synchroner Zeitmultiplex-Bus, an den vorzugsweise PC-typische “Standard- und Klein-Peripherie” angeschlossen werden soll. Das betrifft Floppy-Disk-Controller, Tastatur-Controller, Realzeituhr, Schnittstellen-Controller, Audio-Hardware, Systemverwaltungseinrichtungen usw. sowie ROM-Speicheranordnungen (für POST, BIOS, Systemverwaltung usw.). LPC ist ein Interface zwischen Schaltkreisen auf jeweils einer einzigen Leiterplatte (vorzugsweise: auf einem PC-Motherboard); Steckplätze (Slots) sind nicht vorgesehen. LPC soll den bisher als Schaltkreis-Interface verwendeten ISA- bzw. X-Bus ablösen (Abbildungen 3.1 bis 3.3). Die LPC-Spezifikation wurde von Intel entwickelt und 1997 erstmals veröffentlicht (sie ist im Internet zugänglich). Die Entwicklungsziele: # etwas Moderneres als den ISA- oder X-Bus, # beträchtliche Verringerung der Leitungs- und Anschlußzahlen (Kostensenkung), # funktionelle Abwärtskompatibilität zum ISA- bzw. X-Bus (LPC soll dieselben Zugriffe ausführen können: Speicherzugriffe, E-A-Zugriffe, DMA-Betrieb, Busmasterbetrieb, Unterstützung von Wartezuständen, Interruptsignalisierung), # Unterstützung des gesamten linearen Speicheradreßraums (4 GBytes), # Unterstützung von Sonderfunktionen und -betriebsarten (Stromsparsteuerung, Systemverwaltung), # synchrone Arbeitsweise, # Datenraten und Latenzzeiten in derselben Größenordnung wie beim ISA- bzw. X-Bus (LPC muß nicht “schneller” sein; eine Datenrate von 1...2 MBytes/s genügt vollkommen), # Unterstützung weiterer (moderner) Bussysteme (z. B. USB) ist nicht erforderlich (an ein LPC-Interface werden grundsätzlich keine USB-Controller o. dergl. angeschlossen). Abbildung 3.1 Herkömmliches Motherboard mit X-Bus (nach: Intel) Erklärung: Die in der Abbildung dargestellten Speicher- und E-A-Schaltkreise werden herkömmlicherweise direkt an den ISA- Bus oder an den X-Bus angeschlossen.
    [Show full text]
  • Pentium III Processor Active Thermal Management Techniques
    Pentium® III Processor Active Thermal Management Techniques Application Note August 2000 Order Number: 273405-001 Information in this document is provided in connection with Intel® products. No license, express or implied, by estoppel or otherwise, to any intellectual property rights is granted by this document. Except as provided in Intel's Terms and Conditions of Sale for such products, Intel assumes no liability whatsoever, and Intel disclaims any express or implied warranty, relating to sale and/or use of Intel products including liability or warranties relating to fitness for a particular purpose, merchantability, or infringement of any patent, copyright or other intellectual property right. Intel products are not intended for use in medical, life saving, or life sustaining applications. Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any features or instructions marked “reserved” or “undefined.” Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. The Pentium® III processor may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Contact your local Intel sales office or your distributor to obtain the latest specifications and before placin g your product order. Copies of documents which have an ordering number and are referenced in this document, or other Intel literature may be obtained by calling 1-800- 548-4725 or by visiting Intel's website at http://www.intel.com. Copyright © Intel Corporation, 2000 *Third-party brands and names are the property of their respective owners.
    [Show full text]
  • Intel Pentium III Processor
    Intel® Pentium® III Processor – Low Power/440BX AGPset Design Guide December 2002 Order Number: 273532-002 INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL® PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL’S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. Intel products are not intended for use in medical, life saving, life sustaining applications. Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any features or instructions marked “reserved” or “undefined.” Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. The Intel® Pentium® III Processor – Low Power/440BX AGPset, 82443BX Host Bridge/Controller, and 82371EB PCI-to-ISA/IDE Xcelerated Controller may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request. Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order. Copies of documents which have an ordering number and are referenced in this document, or other Intel literature may be obtained by calling 1-800-548-4725 or by visiting Intel's website at http://www.intel.com.
    [Show full text]
  • Blancco Erasure Sw 4.10 Hardware Support
    BLANCCO ERASURE SW 4.10 HARDWARE SUPPORT Blancco Ltd Länsikatu 15 FIN-80110 JOENSUU, FINLAND [email protected] Tel. +358-207-433-850 [email protected] Tel. +358-207-433-860 Fax +358-207-433-859 PAGE 1/74 Blancco Erasure SW v4.10 hardware support 30/06/2009 TABLE OF CONTENTS Mass storage controllers ....................................................................................................10 SCSI ......................................................................................................................................10 Adaptec .......................................................................................................................... 10 Advanced Micro Devices [AMD] ..................................................................................... 12 Advanced System Products, Inc..................................................................................... 12 Areca Technology Corp. .................................................................................................12 Artop Electronic Corp......................................................................................................12 BusLogic......................................................................................................................... 12 DTC Technology Corp. ...................................................................................................12 Digital Equipment Corporation ........................................................................................ 12 Future Domain Corp.
    [Show full text]
  • Oracle VM Virtualbox Programming Guide
    Oracle VM VirtualBox R Programming Guide and Reference Version 5.0.0_BETA1 c 2004-2015 Oracle Corporation http://www.virtualbox.org Contents 1 Introduction 20 1.1 Modularity: the building blocks of VirtualBox................... 20 1.2 Two guises of the same “Main API”: the web service or COM/XPCOM...... 21 1.3 About web services in general............................ 22 1.4 Running the web service............................... 23 1.4.1 Command line options of vboxwebsrv................... 23 1.4.2 Authenticating at web service logon.................... 24 2 Environment-specific notes 26 2.1 Using the object-oriented web service (OOWS)................... 26 2.1.1 The object-oriented web service for JAX-WS................ 26 2.1.2 The object-oriented web service for Python................ 28 2.1.3 The object-oriented web service for PHP................. 29 2.2 Using the raw web service with any language................... 29 2.2.1 Raw web service example for Java with Axis............... 29 2.2.2 Raw web service example for Perl..................... 30 2.2.3 Programming considerations for the raw web service.......... 31 2.3 Using COM/XPCOM directly............................. 35 2.3.1 Python COM API.............................. 35 2.3.2 Common Python bindings layer...................... 35 2.3.3 C++ COM API............................... 36 2.3.4 Event queue processing........................... 37 2.3.5 Visual Basic and Visual Basic Script (VBS) on Windows hosts...... 38 2.3.6 C binding to VirtualBox API........................ 38 3 Basic VirtualBox concepts; some examples 46 3.1 Obtaining basic machine information. Reading attributes............. 46 3.2 Changing machine settings: Sessions........................ 46 3.3 Launching virtual machines............................
    [Show full text]
  • Oracle VM Virtualbox Programming Guide and Reference
    Oracle VM VirtualBox R Programming Guide and Reference Version 4.1.24 c 2004-2012 Oracle Corporation http://www.virtualbox.org Contents 1 Introduction 16 1.1 Modularity: the building blocks of VirtualBox................... 16 1.2 Two guises of the same “Main API”: the web service or COM/XPCOM...... 17 1.3 About web services in general............................ 18 1.4 Running the web service............................... 19 1.4.1 Command line options of vboxwebsrv................... 19 1.4.2 Authenticating at web service logon.................... 20 2 Environment-specific notes 22 2.1 Using the object-oriented web service (OOWS)................... 22 2.1.1 The object-oriented web service for JAX-WS................ 22 2.1.2 The object-oriented web service for Python................ 24 2.1.3 The object-oriented web service for PHP................. 25 2.2 Using the raw web service with any language................... 25 2.2.1 Raw web service example for Java with Axis............... 25 2.2.2 Raw web service example for Perl..................... 26 2.2.3 Programming considerations for the raw web service.......... 27 2.3 Using COM/XPCOM directly............................. 31 2.3.1 Python COM API.............................. 31 2.3.2 Common Python bindings layer...................... 31 2.3.3 C++ COM API............................... 32 2.3.4 Event queue processing........................... 33 2.3.5 Visual Basic and Visual Basic Script (VBS) on Windows hosts...... 34 2.3.6 C binding to XPCOM API.......................... 34 3 Basic VirtualBox concepts; some examples 39 3.1 Obtaining basic machine information. Reading attributes............. 39 3.2 Changing machine settings. Sessions........................ 39 3.3 Launching virtual machines............................
    [Show full text]
  • Versa 6220/30 Series Service and Reference Manual
    SOLD BY laptopia2005 DO NOT RESELL!! PROPRIETARY NOTICE AND LIABILITY DISCLAIMER The information disclosed in this document, including all designs and related materials, is the valuable property of NEC Computer Systems Division, Packard Bell NEC, Inc. (NECCSD, PBNEC) and/or its licensors. NECCSD and/or its licensors, as appropriate, re- serve all patent, copyright and other proprietary rights to this document, including all de- sign, manufacturing, reproduction, use, and sales rights thereto, except to the extent said rights are expressly granted to others. The NECCSD product(s) discussed in this document are warranted in accordance with the terms of the Warranty Statement accompanying each product. However, actual performance of each such product is dependent upon factors such as system configuration, customer data, and operator control. Since implementation by customers of each product may vary, the suitability of specific product configurations and applications must be determined by the customer and is not warranted by NECCSD. To allow for design and specification improvements, the information in this document is subject to change at any time, without notice. Reproduction of this document or portions thereof without prior written approval of NECCSD is prohibited. FaxFlash is a service mark of NEC Computer Systems Division (NECCSD), Packard Bell NEC, Inc. NEC is a registered trademark, Versa is a U.S. registered trademark, MiniDock, VersaBay, VersaGlide, and PortBar are trademarks, and UltraCare is a U.S. registered service mark of NEC Corporation, used under license. All other product, brand, or trade names used in this publication are the property of their respective owners. First Printing — January 1998 Copyright 1998 NEC Computer Systems Division, Packard Bell NEC, Inc.
    [Show full text]
  • Smartmodule SM586PC
    TECHNICAL USER'S MANUAL FOR: smartModule SM586PC Nordstrasse 11/F CH- 4542 Luterbach Tel.: ++41 (0)32 681 58 00 Fax: ++41 (0)32 681 58 01 Email: [email protected] Homepage: http://www.digitallogic.com DIGITAL-LOGIC AG SM586PC Manual V1.0 COPYRIGHT 1999- 2001 BY DIGITAL- LOGIC AG No part of this document may be reproduced, transmitted, transcribed, stored in a retrieval system, in any form or by any means, electronic, mechanical, optical, manual, or otherwise, without the prior written permis- sion of DIGITAL-LOGIC AG. The software described herein, together with this document, are furnished under a license agreement and may be used or copied only in accordance with the terms of that agreement. ATTENTION: All information in this manual and the product are subject to change without prior notice. REVISION HISTORY: Prod.-Serialnumber: Product BIOS Doc. Date/Vis: Modification: From: To: Version Version Version Remarks, News, Attention: V0.9 01.2001 KUF Initial Version V1.3 V1.0 10.2001 KUF Revised Version, Preliminary PRODUCT REGISTRATION: Please register your product under: http://www.digitallogic.com -> SUPPORT -> Product Registration After registration, you will receive driver & software updates, errata information, customer information and news from DIGITAL-LOGIC AG products automatically. Table of Contents 1 PREFACE...........................................................................................................5 1.1 How to use this manual...........................................................................................................5
    [Show full text]
  • Mobile Intel Pentium III Processor/440MX Chipset Platform
    Mobile Intel® Pentium® III Processor/440MX Chipset Platform Design Guide May 2002 Order Number: 273504-002 Information in this document is provided in connection with Intel® products. No license, express or implied, by estoppel or otherwise, to any intellectual property rights is granted by this document. Except as provided in Intel’s Terms and Conditions of Sale for such products, Intel assumes no liability whatsoever, and Intel disclaims any express or implied warranty, relating to sale and/or use of Intel products including liability or warranties relating to fitness for a particular purpose, merchantability, or infringement of any patent, copyright or other intellectual property right. Intel products are not intended for use in medical, life saving, or life sustaining applications. Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any features or instructions marked “reserved” or “undefined.” Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. The 440MX chipset may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request. Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order. Copies of documents which have an ordering number and are referenced in this document, or other Intel literature may be obtained by calling 1-800-548-4725 or by visiting Intel's website at http://www.intel.com.
    [Show full text]
  • Download It to a Target System Where It Is Executed As the Local OS
    ENABLING USER-MODE PROCESSES IN THE TARGET OS FOR CSC 159 OPERATING SYSTEM PRAGMATICS A Project Presented to the faculty of the Department of Computer Science California State University, Sacramento Submitted in partial satisfaction of the requirements for the degree of MASTER OF SCIENCE in Computer Science by Michael Bradley Colson SPRING 2018 © 2018 Michael Bradley Colson ALL RIGHTS RESERVED ii ENABLING USER-MODE PROCESSES IN THE TARGET OS FOR CSC 159 OPERATING SYSTEM PRAGMATICS A Project by Michael Bradley Colson Approved by: __________________________________, Committee Chair Dr. Weide Chang __________________________________, Second Reader Dr. Yuan Cheng ____________________________ Date iii Student: Michael Bradley Colson I certify that this student has met the requirements for format contained in the University format manual, and that this project is suitable for shelving in the Library and credit is to be awarded for the project. __________________________, Graduate Coordinator ___________________ Dr. Jinsong Ouyang Date Department of Computer Science iv Abstract of ENABLING USER-MODE PROCESSES IN THE TARGET OS FOR CSC 159 OPERATING SYSTEM PRAGMATICS by Michael Bradley Colson One of the main responsibilities of an Operating System (OS) is to ensure system stability and security. Most OSes utilize mechanisms built into the CPU hardware to prevent user-mode processes from altering the state of the system or accessing protected spaces and hardware I/O ports. A process should only read from or write to memory addresses in its address space. In order to accomplish the above, the CPU is typically designed to operate in two or more modes with different privilege levels. The OS typically runs in the mode with highest privilege level, which enables it to execute any instruction and gives it access to all the memory in the system.
    [Show full text]
  • NEC Versa 2600 Series Service Guide Art Copy Version
    SOLD BY laptopia2005 DO NOT RESELL!! NEC Versa 2600 Series Service Guide Art Copy Version SOLD BY laptopia2005 DO NOT RESELL!! SOLD BY laptopia2005 DO NOT RESELL!! PROPRIETARY NOTICE AND LIABILITY DISCLAIMER The information disclosed in this document, including all designs and related materials, is the valuable property of NEC Computer Systems Division, Packard Bell NEC, Inc. (NECCSD, PBNEC) and/or its licensors. NECCSD and/or its licensors, as appropriate, re- serve all patent, copyright and other proprietary rights to this document, including all de- sign, manufacturing, reproduction, use, and sales rights thereto, except to the extent said rights are expressly granted to others. The NECCSD product(s) discussed in this document are warranted in accordance with the terms of the Warranty Statement accompanying each product. However, actual performance of each such product is dependent upon factors such as system configuration, customer data, and operator control. Since implementation by customers of each product may vary, the suitability of specific product configurations and applications must be determined by the customer and is not warranted by NECCSD. To allow for design and specification improvements, the information in this document is subject to change at any time, without notice. Reproduction of this document or portions thereof without prior written approval of NECCSD is prohibited. NEC is a registered trademark of NEC Corporation; Versa is a U.S. registered trademark of NEC Technologies, Inc.; all are used under license by NEC Computer Systems Division (NECCSD), Packard Bell NEC, Inc. All other product, brand, or trade names used in this publication are the trademarks or registered trademarks of their respective trademark owners.
    [Show full text]