Assembly Programozłs

Total Page:16

File Type:pdf, Size:1020Kb

Assembly Programozłs ASSEMBLY PROGRAMOZÁS AJÁNLOTT IRODALOM 1)Pethő Ádám: Assembly alapismeretek 1. kötet, Számalk, Budapest, 1992 2)Peter Norton-John Socha: Az IBM PC Assembly nyelvű programozása, Novotrade, Budapest, 1991 3)Peter Norton: Az IBM PC programozása, Műszaki Könyvkiadó, Budapest, 1992 4)László József: A VGA-kártya programozása Pascal és Assembly nyelven, ComputerBooks, Budapest, 1994 5)Abonyi Zsolt: PC hardver kézikönyv 6)Dr. Kovács Magda: 32 bites mikroprocesszorok 80386/80486 I. és II. kötet, LSI, Budapest 1 TARTALOM 1 AZ ASSEMBLY NYELV TULAJDONSÁGAI, JELENTŐSÉGE. 9 2 A PC-K HARDVERÉNEK FELÉPÍTÉSE.................................13 3 SZÁMRENDSZEREK, GÉPI ADATÁBRÁZOLÁS, ARITMETIKA ÉS LOGIKA.......................................................... 16 4 A 8086-OS PROCESSZOR JELLEMZŐI, SZOLGÁLTATÁSAI. 24 4.1 Memóriakezelés.........................................................................25 4.2 Regiszterek................................................................................ 26 4.3 Adattípusok................................................................................30 4.4 Memóriahivatkozások, címzési módok..................................... 31 4.4.1 Közvetlen címzés................................................................................................ 31 4.4.2 Báziscímzés.........................................................................................................31 4.4.3 Indexcímzés.........................................................................................................32 4.4.4 Bázis+relatív címzés........................................................................................... 32 4.4.5 Index+relatív címzés...........................................................................................32 4.4.6 Bázis+index címzés.............................................................................................32 4.4.7 Bázis+index+relatív címzés................................................................................33 4.5 Veremkezelés.............................................................................34 4.6 I/O, megszakítás-rendszer......................................................... 38 5 AZ ASSEMBLY NYELV SZERKEZETE, SZINTAXISA.........39 6 A 8086-OS PROCESSZOR UTASÍTÁSKÉSZLETE.................46 6.1 Prefixek......................................................................................47 6.1.1 Szegmensfelülbíráló prefixek............................................................................. 47 6.1.2 Buszlezáró prefix................................................................................................ 47 6.1.3 Sztringutasítást ismétlő prefixek.........................................................................47 6.2 Utasítások.................................................................................. 48 6.2.1 Adatmozgató utasítások......................................................................................48 6.2.2 Egész számos aritmetika..................................................................................... 49 6.2.3 Bitenkénti logikai utasítások (Boole-műveletek)............................................... 49 6.2.4 Bitléptető utasítások............................................................................................49 6.2.5 Sztringkezelő utasítások..................................................................................... 50 2 6.2.6 Binárisan kódolt decimális (BCD) aritmetika.................................................... 50 6.2.7 Vezérlésátadó utasítások.....................................................................................50 6.2.8 Rendszervezérlő utasítások.................................................................................51 6.2.9 Koprocesszor-vezérlő utasítások........................................................................ 51 6.2.10 Speciális utasítások...........................................................................................51 7 VEZÉRLÉSI SZERKEZETEK MEGVALÓSÍTÁSA................ 53 7.1 Szekvenciális vezérlési szerkezet.............................................. 55 7.2 Számlálásos ismétléses vezérlés................................................60 7.3 Egyszerű és többszörös szelekciós vezérlés.............................. 65 7.4 Eljárásvezérlés........................................................................... 73 8 A TURBO DEBUGGER HASZNÁLATA.................................. 79 9 SZÁMOLÁS ELŐJELES SZÁMOKKAL, BITMŰVELETEK. 84 9.1 Matematikai kifejezések kiértékelése........................................84 9.2 Bitforgató utasítások..................................................................89 9.3 Bitmanipuláló utasítások........................................................... 93 10 AZ ASSEMBLY NYELV KAPCSOLATA MAGAS SZINTŰ NYELVEKKEL, PARAMÉTERÁTADÁS FORMÁI....................97 10.1 Paraméterek átadása regisztereken keresztül...........................97 10.2 Paraméterek átadása globális változókon keresztül................ 99 10.3 Paraméterek átadása a vermen keresztül............................... 102 10.4 Lokális változók megvalósítása.............................................107 11 MŰVELETEK SZTRINGEKKEL.......................................... 109 12 AZ .EXE ÉS A .COM PROGRAMOK KÖZÖTTI KÜLÖNBSÉGEK, A PSP.............................................................118 12.1 A DOS memóriakezelése.......................................................118 12.2 Általában egy programról......................................................121 12.3 Ahogy a DOS indítja a programokat..................................... 124 12.4 .COM állományok................................................................. 127 12.5 Relokáció............................................................................... 129 12.6 .EXE állományok...................................................................133 13 SZOFTVER-MEGSZAKÍTÁSOK...........................................135 13.1 Szövegkiíratás, billentyűzet-kezelés......................................137 3 13.2 Szöveges képernyő kezelése, számok hexadecimális alakban kiírása.............................................................................................140 13.3 Munka állományokkal........................................................... 146 13.4 Grafikus funkciók használata................................................ 150 14 MEGSZAKÍTÁS-ÁTDEFINIÁLÁS, HARDVER- MEGSZAKÍTÁSOK, REZIDENS PROGRAM, KAPCSOLAT A PERIFÉRIÁKKAL, HARDVER-PROGRAMOZÁS.................. 154 14.1 Szoftver-megszakítás átirányítása......................................... 156 14.2 Az időzítő (timer) programozása...........................................163 14.3 Rezidens program (TSR) készítése, a szöveges képernyő közvetlen elérése............................................................................170 15 KIVÉTELEK............................................................................174 16 OPTIMALIZÁLÁS MÓDJAI................................................. 178 16.1 Sebességre optimalizálás....................................................... 178 16.2 Méretre optimalizálás............................................................ 184 17 ÚJABB ARCHITEKTÚRÁK.................................................. 188 17.1 Dokumentálatlan lehetőségek................................................204 17.2 A numerikus koprocesszor szolgáltatásai..............................218 17.2.1 Adatmozgató utasítások..................................................................................233 17.2.2 Alap aritmetikai utasítások............................................................................. 235 17.2.3 Összehasonlító utasítások............................................................................... 239 17.2.4 Transzcendentális utasítások.......................................................................... 242 17.2.5 Konstansbetöltő utasítások............................................................................. 245 17.2.6 Koprocesszor-vezérlő utasítások.................................................................... 245 17.3 Az Intel 80186-os processzor újdonságai..............................253 17.3.1 Változások az utasításkészletben....................................................................253 17.3.2 Új utasítások....................................................................................................255 17.3.3 Új kivételek.....................................................................................................258 17.4 Az Intel 80286-os processzoron megjelent új szolgáltatások...... 259 17.4.1 Változások az utasításkészletben....................................................................259 17.4.2 Új prefixek...................................................................................................... 260 17.4.3 Új utasítások....................................................................................................261 17.4.4 Új üzemmódok................................................................................................264 17.4.5 Változások a kivétel-kezelésben.....................................................................266 17.4.6 Új kivételek.....................................................................................................267 4 17.4.7 Változások a regiszterkészletben....................................................................273 17.4.8 Új regiszterek.................................................................................................
Recommended publications
  • Semiconductor Contract Manufacturing Services Worldwide, 1998-1999
    Perspective Semiconductor Contract Manufacturing Services Worldwide Market Analysis Semiconductor Contract IVIanufacturing Wafer Pricing Trends: October 1998 Abstract: in the third of three surveys of semiconductor contract manufacturing wafer prices conducted in 1998, Dataquest observes continuing price declines. Prices are reported for 150mm and 200mm wafers, categorized by minimum feature size and number of metal interconnect levels, as well as special process options. Results are compared with those of previous surveys dating back almost three years. Finally, a consensus view of short-term price projections is presented and discussed in relation to current supply and demand dynamics within the semiconductor foundry market. By James F. Hines Foundry Wafer Prices: More Deciines, but Some Firming at the Lagging Edge Fovindry-processed wafer prices declined in leading-edge technology categories and increased in some of the more mature technologies in the J period from June to October 1998. The current results of Dataquest's survey Lii of semiconductor contract manufachiring (SCM) wafer prices mark two years D of pricing pressure as the industry struggles under a stubborn oversupply N condition. Survey results include the following: Z UJ • Average prices for ISOmtn wafers ranged from $498 to $623, compared > _J with $449 to $650 in June 1998. CL < > • Prices for 200mm wafers, which generally represent the leading-edge technologies, averaged $870 to $2,241, compared with $917 to $2,611 in O < June 1998. oLU ^ < • Average prices for 0.25-micron
    [Show full text]
  • Evolution Des X86befehlssatzes Und Seiner Erweiterungen
    Technische Universität Dresden Evolution des x86-Befehlssatzes und seiner Erweiterungen Peter Ebert Dresden, 15.07.2009 Einführung · Überblick & Historie · Konkurrierende Befehlssatzarchitekture n · Befehlsarten · Registerstruktur · x87 15.07.2009 Evolution des x86-Befehlssatzes und seiner Erweiterungen 2/24 Übersicht & Historie · IBM 1981: erster PC · x86-Architektur verwendet einen CISC-Befehlssatz · alle Prozessoren seit dem Pentium Pro sind aber hybride CISC/RISC-Prozessoren 1978 1. Gen.: 8086 1982 2. Gen.: 80286 1985 3. Gen.: 80386 IA-32 1989 4. Gen.: 80486 1993 5. Gen.: Pentium MMX 1995 6. Gen.: P2, P3 3DNow!, SSE 1999 7. Gen.: Athlon (XP), P4 SSE2 2003 8. Gen.: Opteron x86-64 15.07.2009 Evolution des x86-Befehlssatzes und seiner Erweiterungen 3/24 Konkurrierende Befehlssatzarchitekturen · ARM (Acorn Risc Machine) RISC-Architektur 1983 vom englischen Computerhersteller Acorn. Einsatz vor allem im eingebetteten Bereich z.B.: Mobiltelefonen, PDAs, Routern, iPod, iPhone, Internet Tablets von Nokia und den neueren PDAs von ASUS, Konsolen wie der Nintendo DS, der GP2X und die Pandora. · PowerPC (Performance optimization with enhanced RISC Performance Chip) 1991 durch ein Konsortium aus Apple, IBM und Motorola. z.B.: Nintendo GameCube und Wii, Xbox 360 von Microsoft, Playstation 3 von Sony und in vielen eingebetteten Systemen. Auch benutzen PKW und Produkte in der Luft- und Raumfahrt · SPARC (Scalable Processor ARChitecture) Von Sun Microsystems entwickelt ab 1985 und vermarktete ab 1987, offene Architektur, 1995 64-Bit-Erweiterung (UltraSparc) 15.07.2009 Evolution des x86-Befehlssatzes und seiner Erweiterungen 4/24 Befehlsarten · Transferbefehlen werden Daten innerhalb des Systems bewegt. Die Daten werden dabei nur kopiert, d. h. bleiben an ihrem Quellort unverändert.
    [Show full text]
  • Computer Architectures an Overview
    Computer Architectures An Overview PDF generated using the open source mwlib toolkit. See http://code.pediapress.com/ for more information. PDF generated at: Sat, 25 Feb 2012 22:35:32 UTC Contents Articles Microarchitecture 1 x86 7 PowerPC 23 IBM POWER 33 MIPS architecture 39 SPARC 57 ARM architecture 65 DEC Alpha 80 AlphaStation 92 AlphaServer 95 Very long instruction word 103 Instruction-level parallelism 107 Explicitly parallel instruction computing 108 References Article Sources and Contributors 111 Image Sources, Licenses and Contributors 113 Article Licenses License 114 Microarchitecture 1 Microarchitecture In computer engineering, microarchitecture (sometimes abbreviated to µarch or uarch), also called computer organization, is the way a given instruction set architecture (ISA) is implemented on a processor. A given ISA may be implemented with different microarchitectures.[1] Implementations might vary due to different goals of a given design or due to shifts in technology.[2] Computer architecture is the combination of microarchitecture and instruction set design. Relation to instruction set architecture The ISA is roughly the same as the programming model of a processor as seen by an assembly language programmer or compiler writer. The ISA includes the execution model, processor registers, address and data formats among other things. The Intel Core microarchitecture microarchitecture includes the constituent parts of the processor and how these interconnect and interoperate to implement the ISA. The microarchitecture of a machine is usually represented as (more or less detailed) diagrams that describe the interconnections of the various microarchitectural elements of the machine, which may be everything from single gates and registers, to complete arithmetic logic units (ALU)s and even larger elements.
    [Show full text]
  • Assembly Programoz S
    ASSEMBLY PROGRAMOZÁS AJÁNLOTT IRODALOM 1)Pethő Ádám: Assembly alapismeretek 1. kötet, Számalk, Budapest, 1992 2)Peter Norton-John Socha: Az IBM PC Assembly nyelvű programozása, Novotrade, Budapest, 1991 3)Peter Norton: Az IBM PC programozása, Műszaki Könyvkiadó, Budapest, 1992 4)László József: A VGA-kártya programozása Pascal és Assembly nyelven, ComputerBooks, Budapest, 1994 5)Abonyi Zsolt: PC hardver kézikönyv 6)Dr. Kovács Magda: 32 bites mikroprocesszorok 80386/80486 I. és II. kötet, LSI, Budapest 1 TARTALOM 1 AZ ASSEMBLY NYELV TULAJDONSÁGAI, JELENTŐSÉGE. 9 2 A PC-K HARDVERÉNEK FELÉPÍTÉSE.................................13 3 SZÁMRENDSZEREK, GÉPI ADATÁBRÁZOLÁS, ARITMETIKA ÉS LOGIKA.......................................................... 16 4 A 8086-OS PROCESSZOR JELLEMZŐI, SZOLGÁLTATÁSAI. 24 4.1 Memóriakezelés.........................................................................25 4.2 Regiszterek................................................................................ 26 4.3 Adattípusok................................................................................30 4.4 Memóriahivatkozások, címzési módok..................................... 31 4.4.1 Közvetlen címzés................................................................................................ 31 4.4.2 Báziscímzés.........................................................................................................31 4.4.3 Indexcímzés.........................................................................................................32 4.4.4 Bázis+relatív
    [Show full text]
  • 2002 Annual Report United Microelectronics Corporation
    United Microelectronics Corporation 2002 Annual Report Corporate Information Spokesperson Chitung Liu Finance Division Director 886 (2) 2700 6999 [email protected] Deputy Spokesperson Sandy Yen The Chairman and President’s Office Senior Manager 886 (2) 2700 6999 [email protected] Sheng Yui Wang Finance Division Deputy Director 886 (2) 2700 6999 [email protected] Printed on March 25, 2003 United Microelectronics Corporation 2002 Annual Report Annual Report Contents 4 Letter to Shareholders 8 Corporate Overview 32 Operations Overview 50 Unconsolidated Financial Review 92 Consolidated Financial Review 138 Review and Analysis of Financial Position, Operating Results, and Risk Management and Evaluation 144 Special Disclosures 156 US GAAP Adjusted Financial Statements 2 3 Corporate Overview Financial Review Review and Analysis of Financial Position, Operating 9 Corporate Profile Unconsolidated Financial Review Results, and Risk Manage- ment and Evaluation 11 Corporate Organization 51 Condensed Balance Sheets 18 Capital and Shares 52 Condensed Statements of 139 Analysis of Financial Position Income 24 Corporate Bonds 140 Analysis of Operating Results 53 Financial Analysis 27 Preferred Stock 141 Liquidity Analysis 54 Supervisors’ Report 28 American Depositary 142 Major Capital Expenditures Receipts 55 Report of Independent and Sources of Funding Auditors 30 Employee Stock Option 143 Analysis for Investment Certificates 56 Balance Sheets 143 Risk Management and 58 Statements of Income Evaluation 59 Statements of Changes in Operations Overview
    [Show full text]
  • X87 X87 Is a Floating Point-Related Subset of the X86 Architecture Instruction Set
    x87 x87 is a floating point-related subset of the x86 architecture instruction set. It originated as an extension of the 8086 instruction set in the form of optional floating point coprocessors that worked in tandem with corresponding x86 CPUs. These microchips had names ending in "87". Like other extensions to the basic instruction set, x87-instructions are not strictly needed to construct working programs, but provide hardware and microcode implementations of common numerical tasks, allowing these tasks to be performed much faster than corresponding machine code routines can. The x87 instruction set includes instructions for basic floating point operations such as addition, subtraction and comparison, but also for more complex numerical operations, such as the computation of the tangent function and its inverse, for example. Most x86 processors since the Intel 80486 have had these x87 instructions implemented in the main CPU but the term is sometimes still used to refer to that part of the instruction set. Before x87 instructions were standard in PCs, compilers or programmers had to use rather slow library calls to perform floating-point operations, a method that is still common in (low-cost) embedded systems. Description The x87 registers form an 8-level deep non-strict stack structure ranging from ST(0) to ST(7) with registers that can be directly accessed by either operand, using an offset relative to the top, as well as pushed and popped. (This scheme may be compared to how a stack frame may be both pushed, popped and indexed.) There are instructions to push, calculate, and pop values on top of this stack; monadic operations (FSQRT, FPTAN etc.) then implicitly address the topmost ST(0) while dyadic operations (FADD, FMUL, FCOM, etc.) implicitly address ST(0) and ST(1).
    [Show full text]
  • 80387 Coprocessor Instruction Set
    80387 coprocessor instruction set Continue 80x87 is capable of multiplying, sharing, adding, subtracting, finding sqrt and calculating transcendental functions and logariths. Data types include 16-, 32- and 64-bit signed integers; 18-digit BCD data; and 32-, 64- and 80-bit (advanced accuracy) floating point numbers. DW, dd and dq directives are used to declare signed storage of integrators, while dd, dq and dt are used for floating point. Conversion from decimal to floating point is made: Conversion of the decimal number into binary. The normalization of the binary number. Calculate a biased figure. Keep the number in floating point format. Bias is 0x7F, 0x3FF and 0x3FFF for 3 types of floating current. Special rules: Number 0 is stored as all 0s (except for the bit mark). In/- Infinity is stored as logic 1s in the exhibitor, with significand all 0s. The bit of the sign is used to represent infinity. NAN (non- number) is an invalid floating point result that has all 1s in the indicator with significand it's not all zeros. Conversion from floating point to decimal is carried out: Separate the sign-bit, biased indicator, and significand. Transform a biased exhibitor into a true exhibitor, subtracting bias. Write the number as a normalized binary number. Transform it into a de-normalized binary number. Conversion of de-normalized binary numbers into decimal numbers. The 80x87 follows 68 different instructions. The basic structure of the co-processor. Registers in the coprocessor stack always contain 80-bit extended accurate data. These memories, of course, can take other views. Thus, transformations occur during translations.
    [Show full text]