Teaching X86 assembly language programming with MS visual studio

Size: px
Start display at page:

Download "Teaching X86 assembly language programming with MS visual studio"

Transcription

1 Teaching X86 assembly language programming with MS visual studio Dr. S. S. Limaye Principal, Jhulelal Institute of Technology, Nagpur, India ; Abstract: In many colleges, 8086 assembly language practicals are still conducted using the outdated MASM on DOS platform. This paper describes how to use Microsoft Visual Studio for teaching assembly language programming of Intel 80X86 processor and its derivatives like Pentium. It also illustrates how to integrate assembly program into a C program. Keywords : Pentium, 80X86, learning assembly language, Visual studio, Microsoft 1 Introduction 1.1 Why learn assembly language? The UG syllabus for any electronics or computer science course usually includes X86 assembly language programming. This is important because it gives the student, a thorough understanding of the hardware. Moreover, programs written in assembly language are faster to execute and consume less memory space. Also, you have full control over the machine, which is needed for writing I/O drivers or boot loaders. Microsoft corp. itself writes critical sections of code in assembly. In general, the difficulty level of assembly level programming is high. Therefore, things like GUI (Graphical User Interface) should be better left to the high level languages and special cases should be dealt with assembly. Writing a console program in assembly is fairly simple as we shall see shortly. 1.2 Why Visual Studio? Earlier, the standard packages for X86 programming were MASM and DEBUG under DOS. Unfortunately Microsoft stopped supporting MASM after 1991 and proper documentation for advanced versions of processors is not available. However the visual studio can be used for assembly language development without any change. It is high time that we stop using the obsolete packages and switch over to modern IDEs. Today MS Visual Studio is a standard development tool useful for various programming languages. By using Visual Studio, we can not only re use the skills for other languages, but also make integration into other languages easier. We are able to call an assembly program from C and vice versa. Also, the disassembly mode in Visual Studio lets you to see how your C instructions are converted to assembly. MASM has now been renamed as ML and is shipped with visual studio. However there are user groups like MASM32 who have kept MASM alive and have created useful libraries.

2 2 Changes from DOS based assembler and debugger MASM was designed for the real mode 8086 having 64K sized segments. We used SEGMENT and ASSUME directives for defining segments. It does not work in the protected mode in which windows runs. Here, we need to use MODEL, CODE and DATA directives. The segment registers are initialized by the OS when the program starts and they should not be disturbed. We use the FLAT memory model in which all segments overlap and are of size 4 GB. In MASM, when the program was over, it could be terminated by calling INT 21 Function 0. It does not work in windows because the system calls are dynamically linked. A simple way to terminate a program is to use debug break, i.e. INT 3. It is not a clean way but it works. A better way is to invoke Exit Process call from the kernel32 library though it requires some work. We will study it in later examples. We need to remember that in FLAT model, all offsets are 32 bits and hence all base and index registers must be 32 bits, i.e. we should always use EBX, EBP, ESP, ESI, EDI rather than BX, BP, SP, SI, DI. The string oriented instructions MOVSB, MOVSW, MOVSD must use ESI, EDI and ECX rather than SI, DI and CX. 3 Assembly Program skeleton A typical Pentium program has following skeleton..686p ; Pentium Pro or later.model flat, stdcall ;Use windows API calling convention.data <Data declarations>.code <Program> The first line indicates Pentium Pro instruction set. The other choices are 386, 486 or 586. The second line uses a flat model, i.e. it uses all near pointers and overlapping segments of 4GB each. There exist some other models but they are complicated to use, and we will not discuss them here. The second parameter stdcall indicates that we will use windows API calling convention. i.e. it pushes the arguments on the stack from right to left and stack popping is done

3 by the called program. STDCALL is useful even if you are not calling windows API because otherwise the linker mangles the procedure names( start becomes _start). The third line reserves a 4K stack. The fourth line specifies no case mapping, i.e. upper case and lower case symbols are treated differently. This is necessary to avoid confusion when we are using windows API. The fifth line starts the data segment. Define your data elements with DB or DW directives here. The next line marks the beginning of code segment. Enter the program here. It starts with the start lable. The last line is end and it specifies start as the entry point. 4 Examples 4.1 Example 1: Stand alone assembly program - Addition of two numbers Start Visual studio. From main menu, select New>Project. In the project dialog box, select Visual C++ > Win32 in the left pane and Win32 console application in the right pane. Enter tut1 as project name and press OK. Press the NEXT button on the application wizard window and in the next screen, click the check box labelled Create empty project. Then click FINISH. In the explorer pane on the left side, right click on Source files. From pop up menu, select Add> New item. In the dialog box, click on C++ source file. Enter file name as main.asm. Click the Add button. Visual Studio does not know how to handle asm files, so, in the solution explorer pane, right click on the tut1 entry and in the POP up menu, select Custom build rules. In the dialog box, assert the checkbox for Microsoft Macro Assembler and press OK. Enter following program in the editor pane..686p ; Pentium Pro or later.model flat, stdcall ;Use windows API calling convention n1 dw 5 n2 dw 6 n3 dw? mov ax,n1 add ax,n2 mov n3,ax int 3 Click the build tool button. If there are errors, then correct them and build again till errors are removed. Place cursor on the line next to start label. Right click and in pop up menu, select Breakpoint > Insert Breakpoint. Note that we cannot set the break point on the start line. Press the run button. The program will halt at the break point. Invoke registers window, memory window and disassembly window through menu DEBUG>Windows. You can step through the program with the step button and watch how registers and memory change.

4 4.2 Example 2: Search a substring in a string The problem is to find the offset of the key string Computer in the given message and place it in the EBX register. If the key is absent in the message, then EBX should return 0FFFFFFFFH. The program uses CMPS instruction to compare the key string with various substrings of the message starting at an offset specified by the EBX register. If the key is not found till the offset reaches 12, then the program terminates with 0FFFFFFFFH in the EBX register. Enter the following program..686p ; Pentium Pro or later.model flat, stdcall ;Use windows API calling convention ;Program to find where "Computer" is located in message message db "Trash","Computer","Garbage" key db "Computer" mov ebx,0 ;Initially, offset =0 cmpr: mov esi,offset message;esi at start of message add esi,ebx ;ebx holds offset from start mov edi,offset key ;edi points to search key mov ecx,8 ;count of chars in key repe cmpsb ; compare 8 chars. Z is set if match found jz found ;match found inc ebx cmp ebx,12 js cmpr ;Not yet reached end of message mov ebx,0ffffffffh ;key not found in message found: int 3 Let us now learn how to create listing and map files. In the solution explorer, right click on the tut2 entry and select properties. The property pages dialog pops up. In its left pane, click on the + sign to the left of Microsoft Macro Assembler entry to expand the branch. Select listing File. In the right pane, click on the Assembled code Listing file and enter file name as $(InputName).lst. In the left pane, expand the Linker entry by clicking the + sign and select debugging. In the right pane, click on Generate map file option and change to yes. Click on map file name and enter it as $(InputName).map. Build and debug the project as before. 4.3 Example 3 Separate out even and odd numbers 20 numbers are stored at array called buffer. Copy all even numbers to array even and all odd numbers to array odd. The program is self explainatory and it is given below. Note that we have used a segment directive DATA? To define uninitialized data arrays odd and even. We could have included them in the DATA segment but it would have forced the loader to initialize them to 0, making the program inefficient.

5 .MODEL flat, stdcall ;Use windows API calling convention ;Program to sort odd and even numbers ExitProcess PROTO :DWORD buffer db 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20? evn db 20 dup(?) ;even array will be stored here odd db 20 dup(?) ;odd array will be stored here mov esi,offset evn ; esi at start of even mov edi,offset odd ;edi points to odd array mov ebx,offset buffer ;bx points to input array mov ecx,20 ;count of chars in buffer L1: mov al,[ebx] ;Get a byte from buffer ror al,1 ;Get a0 in Cy jc got_odd ;Cy is set for odd numbers rol al,1 ;restore al mov [esi],al ;Store in odd array inc bx ;increment source pointer inc esi ;increment even destination pointer jmp loop_end ; got_odd: rol al,1 ;restore al mov [edi],al ;Store in odd array inc bx inc edi loop_end: loop L1 ;Decrement ecx and go back over: invoke ExitProcess, Example 4: Using system calls. In the above program, replace int 3 with ExitProcess, 0 ExitProcess is an external system call. We need to define it using PROTO directive similar to the declaration of a function in C. Add following line before data segment declaration. ExitProcess PROTO :DWORD The linker binds it to the appropriate function in kernel32.dll. The program now gracefully exits with following message. The program '[0x808] tut3.exe: Native' has exited with code 0 (0x0). To read and write on the console, we will use functions StdIn and StdOut. But before using them, we first need to do some work. Create a directory C:\MASM 32 and download MASM32 package into it from This is a huge package. If you are not bothered about the disk space, then leave the entire package there but we need only two files from it - C:\MASM

6 32\lib\masm32.lib and C:\MASM 32\include\masm32.inc. Give following commmands before the DATA declaration. includelib C:\masm32\lib\masm32.lib include C:\masm32\include\masm32.inc The masm32.inc file contains the necessary PROTO directives for StdIn and StdOut. The includelib command causes the linker to search the masm32.lib for the object modules of StdIn and StdOut. The console message output can be achieved by following command. invoke StdOut,ADDR message; Where message is address of buffer (0 terminated) The console message input can be achieved by following command. invoke StdIn,ADDR buffer,100 ;Read upto 100 characters and store at buffer Following code illustrates the usage. prompt db "Enter something and press ENTER",13,10,0 Found db "Key found",0? buffer db 100 dup(?) invoke StdOut,ADDR prompt ;Send messsage to console invoke StdIn,ADDR buffer,100 ;Read upto 100 chars from keyboard and ;store in buffer How about invoking a windows style messagebox? It is quite simple using the MessageBoxA function in the user32.lib. Since this library is already in the search path of visual studio linker, we don t need to write a includelib statement. Define a proto like this. MessageBoxA PROTO :DWORD,:DWORD,:DWORD,:DWORD You can invoke it with the command invoke MessageBoxA, 0, addr message, addr Found, 0 The message string is printed in the body and the Found string is the title. 4.5 Example 5 Calling assembly program from C We will write a small program asm_add for adding two integers. The program will be called from a C program listed below. extern int add(int x, int y); main() { int a=5,b=3,c; c=asm_add(a,b); } The assembly program listing is given below..586 ; Use instructions for Pentium class machines.model FLAT, C ;Use the flat memory model. Use C calling conventions.stack ;Define a stack segment of 1KB (Not req for this example).data ;Create a near data segment.(not required for this example).code ;Indicates the start of a code segment. asm_add PROC ;Define procedure push ebp ;Save base pointer mov ebp,esp ;Copy ESP to EBP mov eax,[ebp+8] ;Get a add eax,[ebp+12] ;Add b

7 pop ebp ;Restore base pointer ret ;return asm_add ENDP END Conclusion A methodolgy for teaching 80X86 assembler using Microsoft Visual Studio has been presented. Integration of assembly module in a C program is also explained. This will make the students more upto date with latest technology.

8. MACROS, Modules, and Mouse

8. MACROS, Modules, and Mouse 8. MACROS, Modules, and Mouse Background Macros, Modules and the Mouse is a combination of concepts that will introduce you to modular programming while learning how to interface with the mouse. Macros

More information

Computer Organization and Assembly Language

Computer Organization and Assembly Language Computer Organization and Assembly Language Lecture 8 - Strings and Arrays Introduction We already know that assembly code will execute significantly faster than code written in a higher-level language

More information

Character Translation Methods

Character Translation Methods Supplement to: Irvine, Kip R. Assembly Language for Intel-Based Computers, 4th Edition. This file may be duplicated or printed for classroom use, as long as the author name, book title, and copyright notice

More information

A Tiny Guide to Programming in 32-bit x86 Assembly Language

A Tiny Guide to Programming in 32-bit x86 Assembly Language CS308, Spring 1999 A Tiny Guide to Programming in 32-bit x86 Assembly Language by Adam Ferrari, ferrari@virginia.edu (with changes by Alan Batson, batson@virginia.edu and Mike Lack, mnl3j@virginia.edu)

More information

esrever gnireenigne tfosorcim seiranib

esrever gnireenigne tfosorcim seiranib esrever gnireenigne tfosorcim seiranib Alexander Sotirov asotirov@determina.com CanSecWest / core06 Reverse Engineering Microsoft Binaries Alexander Sotirov asotirov@determina.com CanSecWest / core06 Overview

More information

Hacking Techniques & Intrusion Detection. Ali Al-Shemery arabnix [at] gmail

Hacking Techniques & Intrusion Detection. Ali Al-Shemery arabnix [at] gmail Hacking Techniques & Intrusion Detection Ali Al-Shemery arabnix [at] gmail All materials is licensed under a Creative Commons Share Alike license http://creativecommonsorg/licenses/by-sa/30/ # whoami Ali

More information

Quick Start Tutorial. Using the TASKING* Software Development Tools with the Intel 8x930 Family Evaluation Board

Quick Start Tutorial. Using the TASKING* Software Development Tools with the Intel 8x930 Family Evaluation Board Quick Start Tutorial Using the TASKING* Software Development Tools with the Intel 8x930 Family Evaluation Board This explains how to use the TASKING Microsoft* Windows*-based software development tools

More information

Faculty of Engineering Student Number:

Faculty of Engineering Student Number: Philadelphia University Student Name: Faculty of Engineering Student Number: Dept. of Computer Engineering Final Exam, First Semester: 2012/2013 Course Title: Microprocessors Date: 17/01//2013 Course No:

More information

Introduction to the use of the environment of Microsoft Visual Studio 2008

Introduction to the use of the environment of Microsoft Visual Studio 2008 Steps to work with Visual Studio 2008 1) Start Visual Studio 2008. To do this you need to: a) Activate the Start menu by clicking the Start button at the lower-left corner of your screen. b) Set the mouse

More information

Lecture 7: Machine-Level Programming I: Basics Mohamed Zahran (aka Z) mzahran@cs.nyu.edu http://www.mzahran.com

Lecture 7: Machine-Level Programming I: Basics Mohamed Zahran (aka Z) mzahran@cs.nyu.edu http://www.mzahran.com CSCI-UA.0201-003 Computer Systems Organization Lecture 7: Machine-Level Programming I: Basics Mohamed Zahran (aka Z) mzahran@cs.nyu.edu http://www.mzahran.com Some slides adapted (and slightly modified)

More information

Computer Organization and Architecture

Computer Organization and Architecture Computer Organization and Architecture Chapter 11 Instruction Sets: Addressing Modes and Formats Instruction Set Design One goal of instruction set design is to minimize instruction length Another goal

More information

5nine Hyper-V Commander

5nine Hyper-V Commander 5nine Hyper-V Commander 5nine Hyper-V Commander provides a local graphical user interface (GUI), and a Framework to manage Hyper-V R2 server and various functions such as Backup/DR, HA and P2V/V2V. It

More information

Systems Design & Programming Data Movement Instructions. Intel Assembly

Systems Design & Programming Data Movement Instructions. Intel Assembly Intel Assembly Data Movement Instruction: mov (covered already) push, pop lea (mov and offset) lds, les, lfs, lgs, lss movs, lods, stos ins, outs xchg, xlat lahf, sahf (not covered) in, out movsx, movzx

More information

CS412/CS413. Introduction to Compilers Tim Teitelbaum. Lecture 20: Stack Frames 7 March 08

CS412/CS413. Introduction to Compilers Tim Teitelbaum. Lecture 20: Stack Frames 7 March 08 CS412/CS413 Introduction to Compilers Tim Teitelbaum Lecture 20: Stack Frames 7 March 08 CS 412/413 Spring 2008 Introduction to Compilers 1 Where We Are Source code if (b == 0) a = b; Low-level IR code

More information

How to test and debug an ASP.NET application

How to test and debug an ASP.NET application Chapter 4 How to test and debug an ASP.NET application 113 4 How to test and debug an ASP.NET application If you ve done much programming, you know that testing and debugging are often the most difficult

More information

Compute Cluster Server Lab 3: Debugging the parallel MPI programs in Microsoft Visual Studio 2005

Compute Cluster Server Lab 3: Debugging the parallel MPI programs in Microsoft Visual Studio 2005 Compute Cluster Server Lab 3: Debugging the parallel MPI programs in Microsoft Visual Studio 2005 Compute Cluster Server Lab 3: Debugging the parallel MPI programs in Microsoft Visual Studio 2005... 1

More information

64-Bit NASM Notes. Invoking 64-Bit NASM

64-Bit NASM Notes. Invoking 64-Bit NASM 64-Bit NASM Notes The transition from 32- to 64-bit architectures is no joke, as anyone who has wrestled with 32/64 bit incompatibilities will attest We note here some key differences between 32- and 64-bit

More information

Debugging Windows Applications with IDA WinDbg Plugin Copyright 2011 Hex-Rays SA

Debugging Windows Applications with IDA WinDbg Plugin Copyright 2011 Hex-Rays SA Debugging Windows Applications with IDA WinDbg Plugin Copyright 2011 Hex-Rays SA Quick overview: The Windbg debugger plugin is an IDA Pro debugger plugin that uses Microsoft's debugging engine (dbgeng)

More information

Using Example Projects, Code and Scripts to Jump-Start Customers With Code Composer Studio 2.0

Using Example Projects, Code and Scripts to Jump-Start Customers With Code Composer Studio 2.0 Application Report SPRA766 - June 2001 Using Example Projects, Code and Scripts to Jump-Start Customers With Code Composer Studio 2.0 Steve White, Senior Applications Code Composer Studio, Applications

More information

How To Use A Computer With A Screen On It (For A Powerbook)

How To Use A Computer With A Screen On It (For A Powerbook) page 44,100 TITLE ASMXMPLE Video equ 10h ;video functions interrupt number Keyboard equ 16h ;keyboard functions interrupt number DOS equ 21h ;call DOS interrupt number PrtSc equ 5h ;Print Screen Bios interrupt

More information

2) Write in detail the issues in the design of code generator.

2) Write in detail the issues in the design of code generator. COMPUTER SCIENCE AND ENGINEERING VI SEM CSE Principles of Compiler Design Unit-IV Question and answers UNIT IV CODE GENERATION 9 Issues in the design of code generator The target machine Runtime Storage

More information

Hypercosm. Studio. www.hypercosm.com

Hypercosm. Studio. www.hypercosm.com Hypercosm Studio www.hypercosm.com Hypercosm Studio Guide 3 Revision: November 2005 Copyright 2005 Hypercosm LLC All rights reserved. Hypercosm, OMAR, Hypercosm 3D Player, and Hypercosm Studio are trademarks

More information

vtcommander Installing and Starting vtcommander

vtcommander Installing and Starting vtcommander vtcommander vtcommander provides a local graphical user interface (GUI) to manage Hyper-V R2 server. It supports Hyper-V technology on full and core installations of Windows Server 2008 R2 as well as on

More information

Chapter 3: Operating-System Structures. System Components Operating System Services System Calls System Programs System Structure Virtual Machines

Chapter 3: Operating-System Structures. System Components Operating System Services System Calls System Programs System Structure Virtual Machines Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines Operating System Concepts 3.1 Common System Components

More information

Operating Systems. and Windows

Operating Systems. and Windows Operating Systems and Windows What is an Operating System? The most important program that runs on your computer. It manages all other programs on the machine. Every PC has to have one to run other applications

More information

ASSEMBLY PROGRAMMING ON A VIRTUAL COMPUTER

ASSEMBLY PROGRAMMING ON A VIRTUAL COMPUTER ASSEMBLY PROGRAMMING ON A VIRTUAL COMPUTER Pierre A. von Kaenel Mathematics and Computer Science Department Skidmore College Saratoga Springs, NY 12866 (518) 580-5292 pvonk@skidmore.edu ABSTRACT This paper

More information

Off-by-One exploitation tutorial

Off-by-One exploitation tutorial Off-by-One exploitation tutorial By Saif El-Sherei www.elsherei.com Introduction: I decided to get a bit more into Linux exploitation, so I thought it would be nice if I document this as a good friend

More information

Using Microsoft Visual Studio 2010. API Reference

Using Microsoft Visual Studio 2010. API Reference 2010 API Reference Published: 2014-02-19 SWD-20140219103929387 Contents 1... 4 Key features of the Visual Studio plug-in... 4 Get started...5 Request a vendor account... 5 Get code signing and debug token

More information

Appendix K Introduction to Microsoft Visual C++ 6.0

Appendix K Introduction to Microsoft Visual C++ 6.0 Appendix K Introduction to Microsoft Visual C++ 6.0 This appendix serves as a quick reference for performing the following operations using the Microsoft Visual C++ integrated development environment (IDE):

More information

Assembly Language: Function Calls" Jennifer Rexford!

Assembly Language: Function Calls Jennifer Rexford! Assembly Language: Function Calls" Jennifer Rexford! 1 Goals of this Lecture" Function call problems:! Calling and returning! Passing parameters! Storing local variables! Handling registers without interference!

More information

Exceptions in MIPS. know the exception mechanism in MIPS be able to write a simple exception handler for a MIPS machine

Exceptions in MIPS. know the exception mechanism in MIPS be able to write a simple exception handler for a MIPS machine 7 Objectives After completing this lab you will: know the exception mechanism in MIPS be able to write a simple exception handler for a MIPS machine Introduction Branches and jumps provide ways to change

More information

For Introduction to Java Programming, 5E By Y. Daniel Liang

For Introduction to Java Programming, 5E By Y. Daniel Liang Supplement H: NetBeans Tutorial For Introduction to Java Programming, 5E By Y. Daniel Liang This supplement covers the following topics: Getting Started with NetBeans Creating a Project Creating, Mounting,

More information

CS3600 SYSTEMS AND NETWORKS

CS3600 SYSTEMS AND NETWORKS CS3600 SYSTEMS AND NETWORKS NORTHEASTERN UNIVERSITY Lecture 2: Operating System Structures Prof. Alan Mislove (amislove@ccs.neu.edu) Operating System Services Operating systems provide an environment for

More information

1 Intel Smart Connect Technology Installation Guide:

1 Intel Smart Connect Technology Installation Guide: 1 Intel Smart Connect Technology Installation Guide: 1.1 System Requirements The following are required on a system: System BIOS supporting and enabled for Intel Smart Connect Technology Microsoft* Windows*

More information

VirtualXP Users Guide

VirtualXP Users Guide VirtualXP Users Guide Contents Chapter 1: Introduction... 2 Chapter 2: Install and Uninstall VirtualXP... 3 2.1 System Requirement... 3 2.2 Installing VirtualXP... 3 2.3 Uninstalling VirtualXP... 3 Chapter

More information

Hotpatching and the Rise of Third-Party Patches

Hotpatching and the Rise of Third-Party Patches Hotpatching and the Rise of Third-Party Patches Alexander Sotirov asotirov@determina.com BlackHat USA 2006 Overview In the next one hour, we will cover: Third-party security patches _ recent developments

More information

How to use the VMware Workstation / Player to create an ISaGRAF (Ver. 3.55) development environment?

How to use the VMware Workstation / Player to create an ISaGRAF (Ver. 3.55) development environment? Author Janice Hong Version 1.0.0 Date Mar. 2014 Page 1/56 How to use the VMware Workstation / Player to create an ISaGRAF (Ver. 3.55) development environment? Application Note The 32-bit operating system

More information

Example of Standard API

Example of Standard API 16 Example of Standard API System Call Implementation Typically, a number associated with each system call System call interface maintains a table indexed according to these numbers The system call interface

More information

Lecture 27 C and Assembly

Lecture 27 C and Assembly Ananda Gunawardena Lecture 27 C and Assembly This is a quick introduction to working with x86 assembly. Some of the instructions and register names must be check for latest commands and register names.

More information

10 STEPS TO YOUR FIRST QNX PROGRAM. QUICKSTART GUIDE Second Edition

10 STEPS TO YOUR FIRST QNX PROGRAM. QUICKSTART GUIDE Second Edition 10 STEPS TO YOUR FIRST QNX PROGRAM QUICKSTART GUIDE Second Edition QNX QUICKSTART GUIDE A guide to help you install and configure the QNX Momentics tools and the QNX Neutrino operating system, so you can

More information

3 IDE (Integrated Development Environment)

3 IDE (Integrated Development Environment) Visual C++ 6.0 Guide Part I 1 Introduction Microsoft Visual C++ is a software application used to write other applications in C++/C. It is a member of the Microsoft Visual Studio development tools suite,

More information

Windows Assembly Programming Tutorial

Windows Assembly Programming Tutorial JEFF HUANG (huang6@uiuc.edu) December 10, 2003 Windows Assembly Programming Tutorial Version 1.02 Copyright 2003, Jeff Huang. All rights reserved. by Jeff Huang Table of Contents Introduction... 2 Why

More information

JetBrains ReSharper 2.0 Overview Introduction ReSharper is undoubtedly the most intelligent add-in to Visual Studio.NET 2003 and 2005. It greatly increases the productivity of C# and ASP.NET developers,

More information

BIGPOND ONLINE STORAGE USER GUIDE Issue 1.1.0-18 August 2005

BIGPOND ONLINE STORAGE USER GUIDE Issue 1.1.0-18 August 2005 BIGPOND ONLINE STORAGE USER GUIDE Issue 1.1.0-18 August 2005 PLEASE NOTE: The contents of this publication, and any associated documentation provided to you, must not be disclosed to any third party without

More information

Intel NUC. Installing Microsoft Windows* 7 from USB Flash Drives onto USB 3.0 Computers

Intel NUC. Installing Microsoft Windows* 7 from USB Flash Drives onto USB 3.0 Computers Intel NUC Installing Microsoft Windows* 7 from USB Flash Drives onto USB 3.0 Computers July 2015 1 Introduction 1.1 Document Scope The following document details the installation of a non-xhci operating

More information

CONFIGURING MICROSOFT SQL SERVER REPORTING SERVICES

CONFIGURING MICROSOFT SQL SERVER REPORTING SERVICES CONFIGURING MICROSOFT SQL SERVER REPORTING SERVICES TECHNICAL ARTICLE November/2011. Legal Notice The information in this publication is furnished for information use only, and does not constitute a commitment

More information

Code Composer Studio Getting Started Guide

Code Composer Studio Getting Started Guide Code Composer Studio Getting Started Guide Literature Number: SPRU509 May 2001 Printed on Recycled Paper IMPORTANT NOTICE Texas Instruments and its subsidiaries (TI) reserve the right to make changes to

More information

DsPIC HOW-TO GUIDE Creating & Debugging a Project in MPLAB

DsPIC HOW-TO GUIDE Creating & Debugging a Project in MPLAB DsPIC HOW-TO GUIDE Creating & Debugging a Project in MPLAB Contents at a Glance 1. Introduction of MPLAB... 4 2. Development Tools... 5 3. Getting Started... 6 3.1. Create a Project... 8 3.2. Start MPLAB...

More information

Microsoft Office Access 2007 Basics

Microsoft Office Access 2007 Basics Access(ing) A Database Project PRESENTED BY THE TECHNOLOGY TRAINERS OF THE MONROE COUNTY LIBRARY SYSTEM EMAIL: TRAININGLAB@MONROE.LIB.MI.US MONROE COUNTY LIBRARY SYSTEM 734-241-5770 1 840 SOUTH ROESSLER

More information

Operating System Installation Guide

Operating System Installation Guide Operating System Installation Guide This guide provides instructions on the following: Installing the Windows Server 2008 operating systems on page 1 Installing the Windows Small Business Server 2011 operating

More information

MS Access Lab 2. Topic: Tables

MS Access Lab 2. Topic: Tables MS Access Lab 2 Topic: Tables Summary Introduction: Tables, Start to build a new database Creating Tables: Datasheet View, Design View Working with Data: Sorting, Filtering Help on Tables Introduction

More information

Introduction to Eclipse

Introduction to Eclipse Introduction to Eclipse Overview Eclipse Background Obtaining and Installing Eclipse Creating a Workspaces / Projects Creating Classes Compiling and Running Code Debugging Code Sampling of Features Summary

More information

Lenovo Online Data Backup User Guide Version 1.8.14

Lenovo Online Data Backup User Guide Version 1.8.14 Lenovo Online Data Backup User Guide Version 1.8.14 Contents Chapter 1: Installing Lenovo Online Data Backup...5 Downloading the Lenovo Online Data Backup Client...5 Installing the Lenovo Online Data

More information

VMWare Workstation 11 Installation MICROSOFT WINDOWS SERVER 2008 R2 STANDARD ENTERPRISE ED.

VMWare Workstation 11 Installation MICROSOFT WINDOWS SERVER 2008 R2 STANDARD ENTERPRISE ED. VMWare Workstation 11 Installation MICROSOFT WINDOWS SERVER 2008 R2 STANDARD ENTERPRISE ED. Starting Vmware Workstation Go to the start menu and start the VMware Workstation program. *If you are using

More information

Compiler Construction

Compiler Construction Compiler Construction Lecture 1 - An Overview 2003 Robert M. Siegfried All rights reserved A few basic definitions Translate - v, a.to turn into one s own language or another. b. to transform or turn from

More information

SatTerm-G SOFTWARE MANUAL FOR A3LA-IG

SatTerm-G SOFTWARE MANUAL FOR A3LA-IG TN2004-70-V3.2 SatTerm-G SOFTWARE MANUAL FOR A3LA-IG Version 3.2 December 6, 2004 Copyright 2004 by NAL Research Corporation The specifications in this document are subject to change at NAL Research s

More information

CSC 2405: Computer Systems II

CSC 2405: Computer Systems II CSC 2405: Computer Systems II Spring 2013 (TR 8:30-9:45 in G86) Mirela Damian http://www.csc.villanova.edu/~mdamian/csc2405/ Introductions Mirela Damian Room 167A in the Mendel Science Building mirela.damian@villanova.edu

More information

CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson

CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson CS 3530 Operating Systems L02 OS Intro Part 1 Dr. Ken Hoganson Chapter 1 Basic Concepts of Operating Systems Computer Systems A computer system consists of two basic types of components: Hardware components,

More information

Introduction to Microsoft Access 2003

Introduction to Microsoft Access 2003 Introduction to Microsoft Access 2003 Zhi Liu School of Information Fall/2006 Introduction and Objectives Microsoft Access 2003 is a powerful, yet easy to learn, relational database application for Microsoft

More information

Unpacked BCD Arithmetic. BCD (ASCII) Arithmetic. Where and Why is BCD used? From the SQL Server Manual. Packed BCD, ASCII, Unpacked BCD

Unpacked BCD Arithmetic. BCD (ASCII) Arithmetic. Where and Why is BCD used? From the SQL Server Manual. Packed BCD, ASCII, Unpacked BCD BCD (ASCII) Arithmetic The Intel Instruction set can handle both packed (two digits per byte) and unpacked BCD (one decimal digit per byte) We will first look at unpacked BCD Unpacked BCD can be either

More information

Guide to SATA Hard Disks Installation and RAID Configuration

Guide to SATA Hard Disks Installation and RAID Configuration Guide to SATA Hard Disks Installation and RAID Configuration 1. Guide to SATA Hard Disks Installation... 2 1.1 Serial ATA (SATA) Hard Disks Installation... 2 2. Guide to RAID Configurations... 3 2.1 Introduction

More information

USBSPYDER08 Discovery Kit for Freescale MC9RS08KA, MC9S08QD and MC9S08QG Microcontrollers User s Manual

USBSPYDER08 Discovery Kit for Freescale MC9RS08KA, MC9S08QD and MC9S08QG Microcontrollers User s Manual USBSPYDER08 Discovery Kit for Freescale MC9RS08KA, MC9S08QD and MC9S08QG Microcontrollers User s Manual Copyright 2007 SofTec Microsystems DC01197 We want your feedback! SofTec Microsystems is always on

More information

5-Bay Raid Sub-System Smart Removable 3.5" SATA Multiple Bay Data Storage Device User's Manual

5-Bay Raid Sub-System Smart Removable 3.5 SATA Multiple Bay Data Storage Device User's Manual 5-Bay Raid Sub-System Smart Removable 3.5" SATA Multiple Bay Data Storage Device User's Manual www.vipower.com Table of Contents 1. How the SteelVine (VPMP-75511R/VPMA-75511R) Operates... 1 1-1 SteelVine

More information

Microsoft Visual Studio 2010 Instructions For C Programs

Microsoft Visual Studio 2010 Instructions For C Programs Microsoft Visual Studio 2010 Instructions For C Programs Creating a NEW C Project After you open Visual Studio 2010, 1. Select File > New > Project from the main menu. This will open the New Project dialog

More information

Windows PowerShell Essentials

Windows PowerShell Essentials Windows PowerShell Essentials Windows PowerShell Essentials Edition 1.0. This ebook is provided for personal use only. Unauthorized use, reproduction and/or distribution strictly prohibited. All rights

More information

StruxureWare Power Monitoring 7.0.1

StruxureWare Power Monitoring 7.0.1 StruxureWare Power Monitoring 7.0.1 Installation Guide 7EN02-0308-01 07/2012 Contents Safety information 5 Introduction 7 Summary of topics in this guide 7 Supported operating systems and SQL Server editions

More information

Software Vulnerabilities

Software Vulnerabilities Software Vulnerabilities -- stack overflow Code based security Code based security discusses typical vulnerabilities made by programmers that can be exploited by miscreants Implementing safe software in

More information

INSTALLING MICROSOFT SQL SERVER AND CONFIGURING REPORTING SERVICES

INSTALLING MICROSOFT SQL SERVER AND CONFIGURING REPORTING SERVICES INSTALLING MICROSOFT SQL SERVER AND CONFIGURING REPORTING SERVICES TECHNICAL ARTICLE November 2012. Legal Notice The information in this publication is furnished for information use only, and does not

More information

Intel 8086 architecture

Intel 8086 architecture Intel 8086 architecture Today we ll take a look at Intel s 8086, which is one of the oldest and yet most prevalent processor architectures around. We ll make many comparisons between the MIPS and 8086

More information

LC-3 Assembly Language

LC-3 Assembly Language LC-3 Assembly Language Programming and tips Textbook Chapter 7 CMPE12 Summer 2008 Assembly and Assembler Machine language - binary Assembly language - symbolic 0001110010000110 An assembler is a program

More information

Operating System Structures

Operating System Structures COP 4610: Introduction to Operating Systems (Spring 2015) Operating System Structures Zhi Wang Florida State University Content Operating system services User interface System calls System programs Operating

More information

Developing applications under CODE COMPOSER STUDIO

Developing applications under CODE COMPOSER STUDIO Developing applications under CODE COMPOSER STUDIO 1. General Overview Code Composer Studio (CCS ) is a very efficient instrument for the fast development of applications that are written for the DSP families

More information

Knocker main application User manual

Knocker main application User manual Knocker main application User manual Author: Jaroslav Tykal Application: Knocker.exe Document Main application Page 1/18 U Content: 1 START APPLICATION... 3 1.1 CONNECTION TO DATABASE... 3 1.2 MODULE DEFINITION...

More information

Core Protection for Virtual Machines 1

Core Protection for Virtual Machines 1 Core Protection for Virtual Machines 1 Comprehensive Threat Protection for Virtual Environments. Installation Guide e Endpoint Security Trend Micro Incorporated reserves the right to make changes to this

More information

USER MANUAL FOR. autocue.com

USER MANUAL FOR. autocue.com USER MANUAL FOR WINDOWS autocue.com Contents Install the QStart software Registering QStart Using your Starter Series Prompter Prompt output Dual screens Enable a prompt monitor Change the size Change

More information

S7 for Windows S7-300/400

S7 for Windows S7-300/400 S7 for Windows S7-300/400 A Programming System for the Siemens S7 300 / 400 PLC s IBHsoftec has an efficient and straight-forward programming system for the Simatic S7-300 and ern controller concept can

More information

DS-5 ARM. Using the Debugger. Version 5.7. Copyright 2010, 2011 ARM. All rights reserved. ARM DUI 0446G (ID092311)

DS-5 ARM. Using the Debugger. Version 5.7. Copyright 2010, 2011 ARM. All rights reserved. ARM DUI 0446G (ID092311) ARM DS-5 Version 5.7 Using the Debugger Copyright 2010, 2011 ARM. All rights reserved. ARM DUI 0446G () ARM DS-5 Using the Debugger Copyright 2010, 2011 ARM. All rights reserved. Release Information The

More information

Getting Started with the LabVIEW Mobile Module Version 2009

Getting Started with the LabVIEW Mobile Module Version 2009 Getting Started with the LabVIEW Mobile Module Version 2009 Contents The LabVIEW Mobile Module extends the LabVIEW graphical development environment to Mobile devices so you can create applications that

More information

Team Foundation Server 2010, Visual Studio Ultimate 2010, Team Build 2010, & Lab Management Beta 2 Installation Guide

Team Foundation Server 2010, Visual Studio Ultimate 2010, Team Build 2010, & Lab Management Beta 2 Installation Guide Page 1 of 243 Team Foundation Server 2010, Visual Studio Ultimate 2010, Team Build 2010, & Lab Management Beta 2 Installation Guide (This is an alpha version of Benjamin Day Consulting, Inc. s installation

More information

Integrated Virtual Debugger for Visual Studio Developer s Guide VMware Workstation 8.0

Integrated Virtual Debugger for Visual Studio Developer s Guide VMware Workstation 8.0 Integrated Virtual Debugger for Visual Studio Developer s Guide VMware Workstation 8.0 This document supports the version of each product listed and supports all subsequent versions until the document

More information

DiskPulse DISK CHANGE MONITOR

DiskPulse DISK CHANGE MONITOR DiskPulse DISK CHANGE MONITOR User Manual Version 7.9 Oct 2015 www.diskpulse.com info@flexense.com 1 1 DiskPulse Overview...3 2 DiskPulse Product Versions...5 3 Using Desktop Product Version...6 3.1 Product

More information

SonicWALL CDP 5.0 Microsoft Exchange InfoStore Backup and Restore

SonicWALL CDP 5.0 Microsoft Exchange InfoStore Backup and Restore SonicWALL CDP 5.0 Microsoft Exchange InfoStore Backup and Restore Document Scope This solutions document describes how to configure and use the Microsoft Exchange InfoStore Backup and Restore feature in

More information

Eclipse installation, configuration and operation

Eclipse installation, configuration and operation Eclipse installation, configuration and operation This document aims to walk through the procedures to setup eclipse on different platforms for java programming and to load in the course libraries for

More information

X86-64 Architecture Guide

X86-64 Architecture Guide X86-64 Architecture Guide For the code-generation project, we shall expose you to a simplified version of the x86-64 platform. Example Consider the following Decaf program: class Program { int foo(int

More information

Complete 8086 instruction set

Complete 8086 instruction set Page 1 of 53 Complete 8086 instruction set Quick reference: AAA AAD AAM AAS ADC ADD AND CALL CBW CLC CLD CLI CMC CMP CMPSB CMPSW CWD DAA DAS DEC DIV HLT IDIV IMUL IN INC INT INTO I JA JAE JB JBE JC JCXZ

More information

Developing, Deploying, and Debugging Applications on Windows Embedded Standard 7

Developing, Deploying, and Debugging Applications on Windows Embedded Standard 7 Developing, Deploying, and Debugging Applications on Windows Embedded Standard 7 Contents Overview... 1 The application... 2 Motivation... 2 Code and Environment... 2 Preparing the Windows Embedded Standard

More information

Introduction and Overview

Introduction and Overview Inmagic Content Server Workgroup 10.00 Microsoft SQL Server 2005 Express Edition Installation Notes Introduction and Overview These installation notes are intended for the following scenarios: 1) New installations

More information

Microsoft Visual Studio Integration Guide

Microsoft Visual Studio Integration Guide Microsoft Visual Studio Integration Guide MKS provides a number of integrations for Integrated Development Environments (IDEs). IDE integrations allow you to access MKS Integrity s workflow and configuration

More information

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont. Objectives To describe the services an operating system provides to users, processes, and other systems To discuss the various ways of structuring an operating system Chapter 2: Operating-System Structures

More information

Table of Contents. Introduction...9. Installation...17. Program Tour...31. The Program Components...10 Main Program Features...11

Table of Contents. Introduction...9. Installation...17. Program Tour...31. The Program Components...10 Main Program Features...11 2011 AdRem Software, Inc. This document is written by AdRem Software and represents the views and opinions of AdRem Software regarding its content, as of the date the document was issued. The information

More information

Stellar Phoenix Exchange Server Backup

Stellar Phoenix Exchange Server Backup Stellar Phoenix Exchange Server Backup Version 1.0 Installation Guide Introduction This is the first release of Stellar Phoenix Exchange Server Backup tool documentation. The contents will be updated periodically

More information

CodeWarrior Development Studio for Freescale S12(X) Microcontrollers Quick Start

CodeWarrior Development Studio for Freescale S12(X) Microcontrollers Quick Start CodeWarrior Development Studio for Freescale S12(X) Microcontrollers Quick Start SYSTEM REQUIREMENTS Hardware Operating System Disk Space PC with 1 GHz Intel Pentum -compatible processor 512 MB of RAM

More information

CS 16: Assembly Language Programming for the IBM PC and Compatibles

CS 16: Assembly Language Programming for the IBM PC and Compatibles CS 16: Assembly Language Programming for the IBM PC and Compatibles Start basic with some string primitive instructions Get choosy with some selected string procedures Look both ways before crossing two-dimensional

More information

System Administration Training Guide. S100 Installation and Site Management

System Administration Training Guide. S100 Installation and Site Management System Administration Training Guide S100 Installation and Site Management Table of contents System Requirements for Acumatica ERP 4.2... 5 Learning Objects:... 5 Web Browser... 5 Server Software... 5

More information

Introduction. Figure 1 Schema of DarunGrim2

Introduction. Figure 1 Schema of DarunGrim2 Reversing Microsoft patches to reveal vulnerable code Harsimran Walia Computer Security Enthusiast 2011 Abstract The paper would try to reveal the vulnerable code for a particular disclosed vulnerability,

More information

OPERATING SYSTEM SERVICES

OPERATING SYSTEM SERVICES OPERATING SYSTEM SERVICES USER INTERFACE Command line interface(cli):uses text commands and a method for entering them Batch interface(bi):commands and directives to control those commands are entered

More information

Format string exploitation on windows Using Immunity Debugger / Python. By Abysssec Inc WwW.Abysssec.Com

Format string exploitation on windows Using Immunity Debugger / Python. By Abysssec Inc WwW.Abysssec.Com Format string exploitation on windows Using Immunity Debugger / Python By Abysssec Inc WwW.Abysssec.Com For real beneficiary this post you should have few assembly knowledge and you should know about classic

More information

ODBC Driver Version 4 Manual

ODBC Driver Version 4 Manual ODBC Driver Version 4 Manual Revision Date 12/05/2007 HanDBase is a Registered Trademark of DDH Software, Inc. All information contained in this manual and all software applications mentioned in this manual

More information

CHAPTER 6 TASK MANAGEMENT

CHAPTER 6 TASK MANAGEMENT CHAPTER 6 TASK MANAGEMENT This chapter describes the IA-32 architecture s task management facilities. These facilities are only available when the processor is running in protected mode. 6.1. TASK MANAGEMENT

More information

User Installation Guide

User Installation Guide The will provide a step-by-step walkthough of how to download and install the application, activate each feature of the product, install any of the feature's prerequisites, extend the license, and deactivate

More information