ELEC Subroutines

Size: px
Start display at page:

Download "ELEC Subroutines"

Transcription

1 Subroutines Subroutines are procedures written separate from the main program. Whenever the main program must perform a function that is defined by a subroutine, it calls the subroutine into operation. In order to do this, control must be passed from the main program to the starting point of the subroutine. Execution continues with the subroutine and upon completion control is urned back to the main program at the instruction that follows the one that called the subroutine. Notice that the difference between the operation of a subroutine call and a jump is that a call to a subroutine not only produces a jump to an appropriate address in program storage memory, but it also has a mechanism for saving information such as IP and CS, which is needed to urn back to the main program. We should begin by defining some standard programming language terms. These terms are generic and are language dependent. Subroutine a section of code that is that is typically designed to be called more than once from different points in a program. Function a subroutine that urns a result Procedure a subroutine that does not urn a result In assembly language, a Function is a Procedure that urns a result, and the terms Procedure and Subroutine are interchangeable. It is common practice today to refer to all assembly language subroutines as procedures since the term is more closely associated with current high level programming languages. So just what is a subroutine? It is a transfer of control statement that is invoked with the CALL instruction. The other transfer of control statement is the JUMP. We learned about the different types of jump when we studied the loop. A CALL is similar to a JUMP except: The address of the next instruction after the CALL instruction is saved. The IP or CS:IP is reloaded with the address of the subroutine The code for the subroutine is executed When the subroutine is completed, a RETurn is executed which reloads the IP or CS:IP with the address of the instruction immediately after the CALL The program resumes from there. So the difference between a JUMP and a CALL is that the JUMP does not preserve the address (IP or CS:IP) of the next instruction after the call, and, therefore, or program cannot urn to the next instruction after the JUMP. There are two types of procedures: Near and Far. NEAR Procedures When the subroutine is located in the same segment, usually the same code segment, as the CALL statement, this is a near for the near procedure. In the following examples, Procname is any label we wish to use for the name of the procedure. The assembly language statement for the near procedure is: call Procname In addition, the subroutine code would be: Procname proc ; procedure code here Andrew H. Andersen Page 1

2 Procname endp Before branching to the near subroutine, the call instruction causes the IP to be PUSHed on the Stack. The offset address of the subroutine in the current code segment is loaded in the IP and program execution continues from there. When the subroutine is finished, the RETurn instruction causes the contents of the stack to be POPed into the IP. Program execution continues from the memory location immediately after the call instruction. In place of RET, we could have used the near urn instruction RETN. However, the assembler will use the correct urn since it knows this is a near procedure. FAR Procedures When the subroutine and the CALL statement are located in different segments, this is a near for the far procedure. The assembly language statement for the far procedure is: CALL far ptr Procname ; procedure code here Procname endp In addition, the subroutine code would be: Procname proc far ; procedure code here Procname endp CALL and RET Instructions There are two basic instructions in the instruction set of the 8086 for subroutine handling. They are the call (CALL) and urn (RET) instructions. Together they provide the mechanism for calling a subroutine into operation and urning control back to the main program at its completion. We will first discuss these two instructions and later introduce other instructions, which can be used in conjunction with subroutines. Just like the JMP instruction, CALL allows implementation of two types of operations, the intrasegment CALL and the intersegment CALL. It is the operand that initiates either ran inter segment or an intrasegment call. The operands Near-proc, Memptr16, and Regptr16 all specify intrasegment calls to a subroutine. In all three cases, execution of the instruction causes the contents of IP to be saved on the stack. Then the stack pointer (SP) is decremented by 2. The saved value of IP is the address of the instruction that follows the CALL instruction. After saving the urn address, a new 16-bit value, which corresponds to the storage location of the first instruction in the subroutine, is loaded into IP. The three types of intrasegment operands represent different ways of specifying this new value of IP. In a Near-proc operand, the displacement of the first instruction of the subroutine from the current value of IP is supplied directly by the instruction. An example is CALL NEAR PROC Here the label NEAR determines the 16-bit displacement and is coded as an immediate operand following the opcode for the call instruction. Call is actually a relative addressing mode instruction; that is, the offset address is calculated relative to the address of the call instruction itself. With 16 bits, the displacement is limited to ±32K bytes Andrew H. Andersen Page 2

3 The Memptr16 and Regptr16 operands provide indirect subroutine addressing by specifying a memory location or an internal register, respectively, as the source of a new value for IP. The value specified in this way is not a displacement. It is the actual offset that is to be loaded into IP. An example of the Regptr 16 operand is CALL BX When this instruction is executed, the contents of BX are loaded into IP and execution continues with the subroutine starting at a physical address derived from CS and IP. By using one of the various addressing modes of the 8086, an internal register can be used as a pointer to an operand that resides in memory. This represents a Memptr16 type of operand. In this case, the value of the physical address of the off- set is obtained from the current contents of the data segment register OS and the address of addresses held in the specified registers. For instance, the instruction CALL [BX] has its subroutine offset address at the memory location whose physical address is derived from the contents of OS and BX. The value stored at this memory location is loaded into IP. Again the current contents of CS and the new value in IP point to the first instruction of the subroutine. Notice that in both intrasegment call examples the subroutine was located with- in the same code segment as the call instruction. The other type of CALL instruction, the intersegment call, permits the subroutine to reside in another code segment. It corresponds to the Far-proc and Memptr32 operands. These operands specify both a new offset address for IP and a new segment address for CS. In both cases, execution of the call instruction causes the contents of the CS and IP registers to be saved on the stack and then new values are loaded into IP and CS. The saved values of CS and IP permit urn to the main program from a different code segment. Far-proc represents a 32-bit immediate operand that is stored in the four bytes that follow the opcode of the call instruction in program memory. These two words are loaded directly from code segment memory into IP and CS with execution of the CALL instruction. An example is the instruction CALL FAR PROC On the other hand, when the operand is Memptr32, the pointer for the sub- routine is stored as four bytes in data memory. The location of the first byte of the pointer can be specified indirectly by one of the 8086's registers. An example is CALL FAR [DI] Here the physical address of the first byte of the four-byte pointer in memory is derived from the contents of DS and DI. Every subroutine must end by executing an instruction that urns control to the main program. This is the urn (RET) instruction. Its execution causes the value of IP or both the values of IP and CS that were saved on the stack to be urned back to their corresponding registers. In general, an intrasegment urn results from an intrasegment call and an intersegment urn results from an intersegment call. There is an additional option with the urn instruction. It is that a two-byte code following the urn instruction can be included. This code gets added to the stack pointer after restoring the urn address into IP or IP and CS for Far-proc calls. The purpose of this stack pointer Andrew H. Andersen Page 3

4 displacement is to provide a simple means by which the parameters that were saved on the stack before the call to the subroutine was initiated can be discarded. After the context switch to a subroutine, we find that it is usually necessary to save the contents of certain registers or some other main program parameters. These values are saved by pushing them onto the stack. Typically, these data correspond to registers and memory locations that are used by the subroutine. In this way, their original contents are kept intact in the stack segment of memory during the execution of the subroutine. Before a urn to the main program takes place, the saved registers and main program parameters are restored. This is done by popping the saved values from the stack back into their original locations. Before branching to the far subroutine, the call instruction causes both the CS and the IP to be PUSHed on the Stack. The segment address and the offset address of the subroutine in the a different segment are loaded in the CS and IP and program execution continues from there. When the subroutine is finished, the RETurn instruction causes the CS and IP to be POPed from of the stack. Program execution continues from the memory location immediately after the call instruction. Since the subroutine was invoked as a far procedure, we actually execute a RETF even though we may use the RET. Nested Procedures A nested procedure is a procedure called from within a procedure. There is nothing significant here, and all earlier comments apply. The setup may be similar to the following: call ProcName In addition, the subroutine code would be: ProcName proc ; procedure code here call Time_Delay ; perhaps more code here ProcName endp Time_Delay proc ; procedure code here Time_Delay endp Placement of Subroutines in the Code Segment We must take care that we do not place a subroutine where the main program or any procedure may walk into the subroutine. This would cause our program to crash because the RET would POP an address into the IP that is not the address of the next instruction. Therefore, we should place all subroutines after the normal MS/DOS program exit statements, and immediately before the.exit assembler directive. We should also make sure that we do not inadvertently place the procedure statements inside another procedure. We could place the subroutine earlier in the code segment as long as the instruction immediately before the CALL is an unconditional JUMP. However, this is not advised Andrew H. Andersen Page 4

5 Note: Some texts and programmers consider the main part of the program to be a procedure. You may feel free to do so. Just make sure your subroutines are after main. If you do, then the code segment of your program would look like this:.code.startup main proc ;program goes here mov ah,04ch int 21h main endp sub1 proc ; subroutine code sub1 endp sub2 proc ; subroutine code sub2 endp.exit end Preserving Registers The instruction that is used to save parameters on the stack is the push (PUSH) instruction and that used to rieve them back is the pop (POP) instruction. The standard PUSH and POP instructions can be written with a general-purpose register, a segment register except CS, or a storage location in memory as their operand. Registers that will be used during the subroutine that contain data that is necessary on the urn should be preserved. While there are many ways to do this, the easiest method is to PUSH them on the stack. A few things that we must remember are: We must make sure to create a Stack, and make it large enough, for any program that has a CALL POP all registers that contain data or addresses that we need after the RETurn We must POP each register that we PUSH We must POP in the reverse order of the PUSH If we PUSH after the CALL, we must POP before the RETurn (inside the subroutine) or if we PUSH before the CALL, we must after the RETurn (in the calling module or subroutine) The former is preferred. PUSH Examples PUSH AX the contents of a 16-bit register PUSH EBX - the contents of a 32-bit register PUSHA (286 and higher) Preserves all usable registers of PUSHAD (386 and higher) Preserves all usable registers of Andrew H. Andersen Page 5

6 Note: POPA and POPAD restore the registers in the reverse order of the PUSH, so you do not have to worry about scrambling register contents. While this is the easiest way, it takes longer than specific PUSHes, and requires a large Stack if we PUSH many times before POPping. Execution of a PUSH instruction causes the data corresponding to the operand to be pushed onto the top of the stack. For instance, if the instruction is PUSH AX its execution results in the following: SP <- SP - 1 ;SP is decremented SS:SP <= AH ;AH is PUSHed on the Stack SP <- SP - 1 ;SP is decremented SS:SP <= AL ;AL is PUSHed on the Stack This shows that the two bytes of AX are saved in the stack part of memory and the stack pointer is decremented by 2 such that it points to the new top of the stack. On the other hand, if the instruction is POP AX, its execution results in the following: AL <- SS:SP ;AL is POPped from the Stack SP <- SP + 1 ;SP is incremented AH <= SS:SP ;AH is POPped from the Stack SP <- SP + 1 ;SP is incremented Parameter Passing in Registers Often a subroutine will require data or addresses that are known to the calling module, such as an address of some message that we wish to display for the user. The most common method in assembly language to pass parameters between the calling module and the subroutine is to pass them in a register. There are many different ways to pass data to or from a subroutine: We can pass a single byte, word, or double word data to or from a subroutine in an appropriate 8-bit, 16-bit or 32-bit register. We can pass multiple pieces of data in memory using a label to identify the address of the data. This memory location can be understood by the calling module and the subroutine We can pass data in an array, and pass the address of the array in a register. If necessary, we could also pass the number of pieces of data in another register, or as the first entry in the array. Video BIOS Revisited INT 10H Video BIOS Routines Function 6 Screen Scroll Up In MS/DOS, the display consists of 80 columns across, and 25 rows. There are also 16 different colors that can be assigned. Each character on the display is 8 pixels wide and 8 pixels high. We make characters by illuminating or darkening each pixel of the 64 pixels that makes each character. In the CGA mode, the screen resolution is 640 pixels (80 columns of characters by 8 pixels per character) by 200 (25 rows x 8 pixels per character). Armed with the knowledge of the row and column position where we wish to print, we may place the cursor anywhere you like on the display. Once positioned, the cursor moves one Andrew H. Andersen Page 6

7 character to the right for each additional character. When we clear the screen in MS/DOS, the screen is cleared and cursor is homed to the top left corner of the screen. As characters are sent to the CRT, the cursor moves from left to right and top to bottom. When the display is filled, the screen scrolls up. Clear Screen Using Screen Scroll Up Function 6: Screen Scroll Up Entry Parameters: Register AH: 06H Register AL: number of rows to scroll, 0 for all Register BH: see explanation below Register CH: Top Row number Register CL: Top Column Number Register DH: End Row Number Register DL: End Column Number Exit Parameter: Display is scrolled Uses INT 10H With appropriate values, this function clears the screen just like the DOS command CLS. Requirements: If the 7 registers contain data that must be used after the interrupt (before initialization) they should be pushed on the Stack, or saved in storage. Register AH <= 06H the Video BIOS Function Register AL <= Number of rows to scroll (0 for all) Register BH <= Controls foreground and background Register CH <= Row number at top of the region Register CL <= Column number at top left of the region Register DH <= Row number at bottom of the region Register DL <= Column number at bottom right of the region VIDEO DISPLAY NUMBER D7 D6 D5 D4 D3 D2 D1 D0 I/B Red Green Blue Intensity Red Green Blue Background Color Foreground Color In a color monitor with three guns, Red-Green-Blue (RGB) colors are obtained by turning a gun on or off at each pixel position. Each gun has a corresponding bit in the Video Display Number for the Foreground Color and the Background Color. Foreground color is usually the text, and the background is the rest of the display. For Black RGB = 000 (all guns off). For White, RGB = 111 (all guns on). In Hex, White text on a Black background has a value of 07H. A dark Blue background with bright Yellow text is 1EH. This is not intuitive for many colors. Depending on the mode of operation, the MSB of the background is either for intensity (if blink is not enabled) or Blink (if blink is enabled) The default is intensity Andrew H. Andersen Page 7

8 We can put his routine anywhere. However, it seems like something we may wish to do from various locations in a program, so we will discuss how to do this as a procedure Clear Screen Algorithm AH <= 6 ; The Video BIOS function for scroll up AH <= 7 ; The Video BIOS function for scroll down (use one or the other) AL <= Number of lines to scroll, 0 = all CX <= Start row column info (0 for top left) We may enter the Row in CH and the column in CL separately DX <= End row column data. The data in Hex is For the bottom, the 25 th row is 19H and placed in DH For the right, the 80 th column is 50H and placed in DL So DX <= 1950h BH <= foreground/background information 1EH for a dark blue screen with bright yellow text As a procedure, we might wish to define the Video BIOS data as words and bytes, and just load the registers as needed:.data vbios dw 600h row0 dw 0 row26 dw 1950h color db 1Eh At the end of the main code area, we would write the clear screen procedure CLR PROC AX <= vbios CX <= row0 DX <= row26 BH <= color INT 10h RET CLR endp Function 2 - Direct Cursor Positioning Often, we wish to place the cursor in a specific location on the display and begin writing data to the display from that point on. Once we place the cursor at a particular position on the display, writing to the display functions normally. We identify the row and column where we wish to place the cursor as an offset from the top left position on the display. Positioning the cursor function does not erase the display from the top left to the new cursor position so any current messages above and to the left of the new cursor position is ained on the display. However, any screen contents from the current position will be overwritten one character at a time as data are sent to the display at the current cursor position Andrew H. Andersen Page 8

9 Function 2: Set Cursor Position Entry Parameters: Register AH: 02H Register DH: Row position (0 24) Register DL: Column position (0 79) Register BH: Video Page number Exit Parameter: Cursor positioned on display Uses INT 10H This interrupt is used to position the cursor at a desired row and column. When used with BIOS INT 21H Function 9, the output string begins at the current cursor location and continues from there normally. Requirements: If the registers contain data that must be used after the interrupt (before initialization) they should be pushed on the Stack, or saved in storage. The pseudo code to initialize this function is: Register AX <= 02H Register DH <= Row data from 0 to 24 Register DL <= Column data from 0 to 79 Register BH <= Video Page (always 0 in this course) Here is a typical setup modifying the previous example. Assume we wish to start on Row 7 Column 20. We could load DX (061F) or load DH (06) and DL (1F) Keep in mind, the computer counts from 0 so you must subtract 1. Here is a simple example..data Position1 dw 61Fh There may be other declarations. In the code section, there may be other statements. This routine might be coded directly where needed or as a procedure. More than likely, this will be written and a procedure, so that is how it will be demonstrated. We will first look at the basic procedure where we will always place the cursor in the same position. SetCur proc DX <= Position1 ;the row and column data AH <= 2 ;The BIOS function BH <= 0 ;video page no. 0 INT 10h RET SetCur endp Andrew H. Andersen Page 9

10 Subroutine Examples We wish to display multiple messages or prompts on the console device to the user so that he/she will enter a reply via the console device. The message addresses are passed into the subroutine. The subroutine displays the message and waits for a reply. When it receives a reply, it urns the reply in a register. Subroutine GetIt On Entry DX has the address of the message We display the message using BIOS function 9 On Exit AH has the Character We receive input using BIOS Function 1 A subroutine is used since multiple prompts and replies will occur TITLE Subrountine example written by A. H. Andersen ; Procedure Example ; ; written by ANDREW H. ANDERSEN, JR. ; ;.model small.stack 1000h.data conin equ 1 prnt equ 9 ; For Cursor Positioning line1 equ 0515h line2 equ 0615h line3 equ 0715h line4 equ 0915h line5 equ 0a15h line25 equ 1914h ; For user prompts and messages msg1 db 'To exit: enter <CR> instead ' db 'of entering the answer.$' prmpt1 db 'Message 1 Y/N -----> $' prmpt2 db 'Message 2 Y/N -----> $' prmpt3 db 'Message 3 Y/N -----> $' prmpt4 db 'Message 4 Y/N -----> $' prmpt5 db 'Message 5 Y/N -----> $' Andrew H. Andersen Page 10

11 .code.startup mov mov ds,ax init: call Clr mov dx,offset line25 call SetCur lea dx,msg1 call ShowIt mov dx,offset line1 call SetCur lea dx,prmpt1 call ShowIt mov dx,offset line2 call SetCur lea dx,prmpt2 call ShowIt mov dx,offset line3 call SetCur lea dx,prmpt3 call ShowIt mov dx,offset line4 call SetCur lea dx,prmpt4 call ShowIt mov dx,offset line5 call SetCur lea dx,prmpt5 call ShowIt fini: mov ah,04ch int 21h ; All Procedures go here Clr proc ;Clear Screen with 25 line scroll. mov ah, 6 ;The BIOS function mov al, 0 ;Scroll # of lines 0 = all mov cx, 0 ;row/col at top mov dx, 1950h ;row/col at bottom mov bh, 1eh ;foreground/background colors int 10h Clr endp Andrew H. Andersen Page 11

12 SetCur proc ;On Entry DX must have row column position ;On Exit The Cursor is positioned mov ah, 2 ;The BIOS function mov bh, 0 ;video page no. 0 int 10h SetCur endp ShowIt proc ; On Entry DX must have address of message ; On Exit, AL has a Y or N mov ah,prnt int 21h mov ah,conin int 21h ShowIt endp.exit end Andrew H. Andersen Page 12

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

INTRODUCTION TO PROGRAMMING THE 8086

INTRODUCTION TO PROGRAMMING THE 8086 SAMPLE HELLO WORLD PROGRAM The following example shows a program that displays the traditional Hello, world! message on the screen. It contains the essential ingredients of an assembly language application.

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

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

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

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

MACHINE ARCHITECTURE & LANGUAGE

MACHINE ARCHITECTURE & LANGUAGE in the name of God the compassionate, the merciful notes on MACHINE ARCHITECTURE & LANGUAGE compiled by Jumong Chap. 9 Microprocessor Fundamentals A system designer should consider a microprocessor-based

More information

Advanced Computer Architecture-CS501. Computer Systems Design and Architecture 2.1, 2.2, 3.2

Advanced Computer Architecture-CS501. Computer Systems Design and Architecture 2.1, 2.2, 3.2 Lecture Handout Computer Architecture Lecture No. 2 Reading Material Vincent P. Heuring&Harry F. Jordan Chapter 2,Chapter3 Computer Systems Design and Architecture 2.1, 2.2, 3.2 Summary 1) A taxonomy of

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

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

1 Classical Universal Computer 3

1 Classical Universal Computer 3 Chapter 6: Machine Language and Assembler Christian Jacob 1 Classical Universal Computer 3 1.1 Von Neumann Architecture 3 1.2 CPU and RAM 5 1.3 Arithmetic Logical Unit (ALU) 6 1.4 Arithmetic Logical Unit

More information

by Kip Irvine. Last update: 12/11/2003

by Kip Irvine. Last update: 12/11/2003 Loading and Executing a Child Process by Kip Irvine. Last update: 12/11/2003 MS-DOS has always taken a fairly straightforward approach to loading and executing programs. From the start, it was designed

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

BCD (ASCII) Arithmetic. Where and Why is BCD used? Packed BCD, ASCII, Unpacked BCD. BCD Adjustment Instructions AAA. Example

BCD (ASCII) Arithmetic. Where and Why is BCD used? Packed BCD, ASCII, Unpacked BCD. BCD Adjustment Instructions AAA. Example BCD (ASCII) Arithmetic We will first look at unpacked BCD which means strings that look like '4567'. Bytes then look like 34h 35h 36h 37h OR: 04h 05h 06h 07h x86 processors also have instructions for packed

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

PROBLEMS (Cap. 4 - Istruzioni macchina)

PROBLEMS (Cap. 4 - Istruzioni macchina) 98 CHAPTER 2 MACHINE INSTRUCTIONS AND PROGRAMS PROBLEMS (Cap. 4 - Istruzioni macchina) 2.1 Represent the decimal values 5, 2, 14, 10, 26, 19, 51, and 43, as signed, 7-bit numbers in the following binary

More information

Outline. Lecture 3. Basics. Logical vs. physical memory. 8086 physical memory. x86 byte ordering

Outline. Lecture 3. Basics. Logical vs. physical memory. 8086 physical memory. x86 byte ordering Outline Lecture 3 bout Memory ddressing memory Data types MOV instruction ddressing modes Instruction format Dr. Dimitrios S. Nikolopoulos SL/UIU Basics Logical vs. physical memory Memory in the x processors

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

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

Instruction Set Architecture (ISA)

Instruction Set Architecture (ISA) Instruction Set Architecture (ISA) * Instruction set architecture of a machine fills the semantic gap between the user and the machine. * ISA serves as the starting point for the design of a new machine

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

MICROPROCESSOR AND MICROCOMPUTER BASICS

MICROPROCESSOR AND MICROCOMPUTER BASICS Introduction MICROPROCESSOR AND MICROCOMPUTER BASICS At present there are many types and sizes of computers available. These computers are designed and constructed based on digital and Integrated Circuit

More information

Embedded x86 Programming: Protected Mode

Embedded x86 Programming: Protected Mode by JEAN GAREAU Embedded x86 Programming: Protected Mode The x86 architecture is ubiquitous on the desktop and is spilling over into embedded systems environments. This article begins a series designed

More information

8085 INSTRUCTION SET

8085 INSTRUCTION SET DATA TRANSFER INSTRUCTIONS Opcode Operand Description 8085 INSTRUCTION SET INSTRUCTION DETAILS Copy from source to destination OV Rd, Rs This instruction copies the contents of the source, Rs register

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

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

MASKS & CHANNELS WORKING WITH MASKS AND CHANNELS

MASKS & CHANNELS WORKING WITH MASKS AND CHANNELS MASKS & CHANNELS WORKING WITH MASKS AND CHANNELS Masks let you isolate and protect parts of an image. When you create a mask from a selection, the area not selected is masked or protected from editing.

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

Stack Allocation. Run-Time Data Structures. Static Structures

Stack Allocation. Run-Time Data Structures. Static Structures Run-Time Data Structures Stack Allocation Static Structures For static structures, a fixed address is used throughout execution. This is the oldest and simplest memory organization. In current compilers,

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

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

PROGRAMMING CONCEPTS AND EMBEDDED PROGRAMMING IN C, C++ and JAVA: Lesson-4: Data Structures: Stacks

PROGRAMMING CONCEPTS AND EMBEDDED PROGRAMMING IN C, C++ and JAVA: Lesson-4: Data Structures: Stacks PROGRAMMING CONCEPTS AND EMBEDDED PROGRAMMING IN C, C++ and JAVA: Lesson-4: Data Structures: Stacks 1 STACK A structure with a series of data elements with last sent element waiting for a delete operation.

More information

2 ASCII TABLE (DOS) 3 ASCII TABLE (Window)

2 ASCII TABLE (DOS) 3 ASCII TABLE (Window) 1 ASCII TABLE 2 ASCII TABLE (DOS) 3 ASCII TABLE (Window) 4 Keyboard Codes The Diagram below shows the codes that are returned when a key is pressed. For example, pressing a would return 0x61. If it is

More information

Machine Programming II: Instruc8ons

Machine Programming II: Instruc8ons Machine Programming II: Instrucons Move instrucons, registers, and operands Complete addressing mode, address computaon (leal) Arithmec operaons (including some x6 6 instrucons) Condion codes Control,

More information

Lesson 10: Video-Out Interface

Lesson 10: Video-Out Interface Lesson 10: Video-Out Interface 1. Introduction The Altera University Program provides a number of hardware controllers, called cores, to control the Video Graphics Array (VGA) Digital-to-Analog Converter

More information

Company Setup 401k Tab

Company Setup 401k Tab Reference Sheet Company Setup 401k Tab Use this page to define company level 401(k) information, including employee status codes, 401(k) sources, and 401(k) funds. The definitions you create here become

More information

An Introduction to Assembly Programming with the ARM 32-bit Processor Family

An Introduction to Assembly Programming with the ARM 32-bit Processor Family An Introduction to Assembly Programming with the ARM 32-bit Processor Family G. Agosta Politecnico di Milano December 3, 2011 Contents 1 Introduction 1 1.1 Prerequisites............................. 2

More information

PART B QUESTIONS AND ANSWERS UNIT I

PART B QUESTIONS AND ANSWERS UNIT I PART B QUESTIONS AND ANSWERS UNIT I 1. Explain the architecture of 8085 microprocessor? Logic pin out of 8085 microprocessor Address bus: unidirectional bus, used as high order bus Data bus: bi-directional

More information

Rochester Institute of Technology. Oracle Training: Preparing Journal Entries in the Oracle Applications

Rochester Institute of Technology. Oracle Training: Preparing Journal Entries in the Oracle Applications Rochester Institute of Technology Oracle Training: Preparing Journal Entries in the Oracle Applications 1 Table of Contents Introduction Lesson 1: Lesson 2: Lesson 3: Lesson 4: Lesson 5: Lesson 6: Logging

More information

Comp 255Q - 1M: Computer Organization Lab #3 - Machine Language Programs for the PDP-8

Comp 255Q - 1M: Computer Organization Lab #3 - Machine Language Programs for the PDP-8 Comp 255Q - 1M: Computer Organization Lab #3 - Machine Language Programs for the PDP-8 January 22, 2013 Name: Grade /10 Introduction: In this lab you will write, test, and execute a number of simple PDP-8

More information

King Fahd University of Petroleum and Minerals. College of Computer Science and Engineering. Computer Engineering Department COE 205

King Fahd University of Petroleum and Minerals. College of Computer Science and Engineering. Computer Engineering Department COE 205 King Fahd University of Petroleum and Minerals College of Computer Science and Engineering Computer Engineering Department COE 205 Computer Organization and Assembly Language Lab Manual Prepared By: Mr.

More information

ASSEMBLY LANGUAGE PROGRAMMING (6800) (R. Horvath, Introduction to Microprocessors, Chapter 6)

ASSEMBLY LANGUAGE PROGRAMMING (6800) (R. Horvath, Introduction to Microprocessors, Chapter 6) ASSEMBLY LANGUAGE PROGRAMMING (6800) (R. Horvath, Introduction to Microprocessors, Chapter 6) 1 COMPUTER LANGUAGES In order for a computer to be able to execute a program, the program must first be present

More information

NetBeans Profiler is an

NetBeans Profiler is an NetBeans Profiler Exploring the NetBeans Profiler From Installation to a Practical Profiling Example* Gregg Sporar* NetBeans Profiler is an optional feature of the NetBeans IDE. It is a powerful tool that

More information

13-1. This chapter explains how to use different objects.

13-1. This chapter explains how to use different objects. 13-1 13.Objects This chapter explains how to use different objects. 13.1. Bit Lamp... 13-3 13.2. Word Lamp... 13-5 13.3. Set Bit... 13-9 13.4. Set Word... 13-11 13.5. Function Key... 13-18 13.6. Toggle

More information

EXERCISE 3: String Variables and ASCII Code

EXERCISE 3: String Variables and ASCII Code EXERCISE 3: String Variables and ASCII Code EXERCISE OBJECTIVE When you have completed this exercise, you will be able to describe the use of string variable and ASCII code. You will use Flowcode and the

More information

0832 Dot Matrix Green Display Information Board User s Guide

0832 Dot Matrix Green Display Information Board User s Guide 0832 Dot Matrix Green Display Information Board User s Guide DE-DP105_Ver1.0 0832 DOT MATRIX GREEN DISPLAY INFORMATI BOARD USER S GUIDE Table of contents Chapter1.Overview... 1 1.1. Welcome... 1 1.2. Quick

More information

The stack and the stack pointer

The stack and the stack pointer The stack and the stack pointer If you google the word stack, one of the definitions you will get is: A reserved area of memory used to keep track of a program's internal operations, including functions,

More information

A3 Computer Architecture

A3 Computer Architecture A3 Computer Architecture Engineering Science 3rd year A3 Lectures Prof David Murray david.murray@eng.ox.ac.uk www.robots.ox.ac.uk/ dwm/courses/3co Michaelmas 2000 1 / 1 6. Stacks, Subroutines, and Memory

More information

Chapter 5 Programming Statements. Chapter Table of Contents

Chapter 5 Programming Statements. Chapter Table of Contents Chapter 5 Programming Statements Chapter Table of Contents OVERVIEW... 57 IF-THEN/ELSE STATEMENTS... 57 DO GROUPS... 58 IterativeExecution... 59 JUMPING... 61 MODULES... 62 Defining and Executing a Module....

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

Embedded Systems. Review of ANSI C Topics. A Review of ANSI C and Considerations for Embedded C Programming. Basic features of C

Embedded Systems. Review of ANSI C Topics. A Review of ANSI C and Considerations for Embedded C Programming. Basic features of C Embedded Systems A Review of ANSI C and Considerations for Embedded C Programming Dr. Jeff Jackson Lecture 2-1 Review of ANSI C Topics Basic features of C C fundamentals Basic data types Expressions Selection

More information

Notes on Assembly Language

Notes on Assembly Language Notes on Assembly Language Brief introduction to assembly programming The main components of a computer that take part in the execution of a program written in assembly code are the following: A set of

More information

Digital Cable TV. User Guide

Digital Cable TV. User Guide Digital Cable TV User Guide T a b l e o f C o n T e n T s DVR and Set-Top Box Basics............... 2 Remote Playback Controls................ 4 What s on TV.......................... 6 Using the OK Button..................

More information

PIC Programming in Assembly. (http://www.mstracey.btinternet.co.uk/index.htm)

PIC Programming in Assembly. (http://www.mstracey.btinternet.co.uk/index.htm) PIC Programming in Assembly (http://www.mstracey.btinternet.co.uk/index.htm) Tutorial 1 Good Programming Techniques. Before we get to the nitty gritty of programming the PIC, I think now is a good time

More information

SYSTEMS OF EQUATIONS AND MATRICES WITH THE TI-89. by Joseph Collison

SYSTEMS OF EQUATIONS AND MATRICES WITH THE TI-89. by Joseph Collison SYSTEMS OF EQUATIONS AND MATRICES WITH THE TI-89 by Joseph Collison Copyright 2000 by Joseph Collison All rights reserved Reproduction or translation of any part of this work beyond that permitted by Sections

More information

Z80 Instruction Set. Z80 Assembly Language

Z80 Instruction Set. Z80 Assembly Language 75 Z80 Assembly Language The assembly language allows the user to write a program without concern for memory addresses or machine instruction formats. It uses symbolic addresses to identify memory locations

More information

COMPUTERS ORGANIZATION 2ND YEAR COMPUTE SCIENCE MANAGEMENT ENGINEERING JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ

COMPUTERS ORGANIZATION 2ND YEAR COMPUTE SCIENCE MANAGEMENT ENGINEERING JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ COMPUTERS ORGANIZATION 2ND YEAR COMPUTE SCIENCE MANAGEMENT ENGINEERING UNIT 1 - INTRODUCTION JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ Unit 1.MaNoTaS 1 Definitions (I) Description A computer is: A

More information

Automated Inventory System

Automated Inventory System Automated Inventory System User Manual Developed by USDA Food and Nutrition Service June 2009 (Incomplete) Table of Contents Welcome Menu Client Services Report System Inventory System Operations Tailgate

More information

The Hexadecimal Number System and Memory Addressing

The Hexadecimal Number System and Memory Addressing APPENDIX C The Hexadecimal Number System and Memory Addressing U nderstanding the number system and the coding system that computers use to store data and communicate with each other is fundamental to

More information

First Bytes Programming Lab 2

First Bytes Programming Lab 2 First Bytes Programming Lab 2 This lab is available online at www.cs.utexas.edu/users/scottm/firstbytes. Introduction: In this lab you will investigate the properties of colors and how they are displayed

More information

Central Processing Unit Simulation Version v2.5 (July 2005) Charles André University Nice-Sophia Antipolis

Central Processing Unit Simulation Version v2.5 (July 2005) Charles André University Nice-Sophia Antipolis Central Processing Unit Simulation Version v2.5 (July 2005) Charles André University Nice-Sophia Antipolis 1 1 Table of Contents 1 Table of Contents... 3 2 Overview... 5 3 Installation... 7 4 The CPU

More information

Instruction Set Architecture

Instruction Set Architecture Instruction Set Architecture Consider x := y+z. (x, y, z are memory variables) 1-address instructions 2-address instructions LOAD y (r :=y) ADD y,z (y := y+z) ADD z (r:=r+z) MOVE x,y (x := y) STORE x (x:=r)

More information

An Introduction to the ARM 7 Architecture

An Introduction to the ARM 7 Architecture An Introduction to the ARM 7 Architecture Trevor Martin CEng, MIEE Technical Director This article gives an overview of the ARM 7 architecture and a description of its major features for a developer new

More information

Microcontroller Code Example Explanation and Words of Wisdom For Senior Design

Microcontroller Code Example Explanation and Words of Wisdom For Senior Design Microcontroller Code Example Explanation and Words of Wisdom For Senior Design For use with the following equipment: PIC16F877 QikStart Development Board ICD2 Debugger MPLAB Environment examplemain.c and

More information

Chapter 7D The Java Virtual Machine

Chapter 7D The Java Virtual Machine This sub chapter discusses another architecture, that of the JVM (Java Virtual Machine). In general, a VM (Virtual Machine) is a hypothetical machine (implemented in either hardware or software) that directly

More information

The basic mode for adjusting a time zone clock are primarily: 21, 24 and 51-1 (51-1 is for Alpha Characters) Entering Mode Programming

The basic mode for adjusting a time zone clock are primarily: 21, 24 and 51-1 (51-1 is for Alpha Characters) Entering Mode Programming Adjusting Time Zone Clocks The basic mode for adjusting a time zone clock are primarily: The basic mode for adjusting a time zone clock are primarily: 21, 24 and 51-1 (51-1 is for Alpha Characters) Mode

More information

Programmer s Reference

Programmer s Reference Programmer s Reference 1 Introduction This manual describes Launchpad s MIDI communication format. This is all the proprietary information you need to be able to write patches and applications that are

More information

The 80x86 Instruction Set

The 80x86 Instruction Set Thi d t t d ith F M k 4 0 2 The 80x86 Instruction Set Chapter Six Until now, there has been little discussion of the instructions available on the 80x86 microprocessor. This chapter rectifies this situation.

More information

Typy danych. Data types: Literals:

Typy danych. Data types: Literals: Lab 10 MIPS32 Typy danych Data types: Instructions are all 32 bits byte(8 bits), halfword (2 bytes), word (4 bytes) a character requires 1 byte of storage an integer requires 1 word (4 bytes) of storage

More information

Presents. AccuDraw. Instructor Pam Roberts pamroberts@cadassist.com www.cadassist.com

Presents. AccuDraw. Instructor Pam Roberts pamroberts@cadassist.com www.cadassist.com Presents AccuDraw Instructor Pam Roberts pamroberts@cadassist.com www.cadassist.com ACCUDRAW AccuDraw gives user an easy way to input accurate points. By default with MicroStation V8 AccuDraw will automatically

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

Midi Fighter Twister. User Guide. Ver 1.01 DJTECHTOOLS.COM

Midi Fighter Twister. User Guide. Ver 1.01 DJTECHTOOLS.COM Midi Fighter Twister User Guide DJTECHTOOLS.COM Ver 1.01 Introduction This user guide is split in two parts, first covering the Midi Fighter Twister hardware, then the second covering the Midi Fighter

More information

Stack machines The MIPS assembly language A simple source language Stack-machine implementation of the simple language Readings: 9.1-9.

Stack machines The MIPS assembly language A simple source language Stack-machine implementation of the simple language Readings: 9.1-9. Code Generation I Stack machines The MIPS assembly language A simple source language Stack-machine implementation of the simple language Readings: 9.1-9.7 Stack Machines A simple evaluation model No variables

More information

Instruction Set Architecture. or How to talk to computers if you aren t in Star Trek

Instruction Set Architecture. or How to talk to computers if you aren t in Star Trek Instruction Set Architecture or How to talk to computers if you aren t in Star Trek The Instruction Set Architecture Application Compiler Instr. Set Proc. Operating System I/O system Instruction Set Architecture

More information

OVERVIEW Playbacks: Shortcuts: Memories: Data Entry Wheels: Touchpad: Master and Blackout:

OVERVIEW Playbacks: Shortcuts: Memories: Data Entry Wheels: Touchpad: Master and Blackout: OVERVIEW The MIDIcon is a USB MIDI control panel designed to work alongside the Elation lighting software packages. The Midicon is USB powered and uses the USB class drivers so that no driver needs to

More information

1. General function and functionality of the malware

1. General function and functionality of the malware 1. General function and functionality of the malware The malware executes in a command shell, it begins by checking to see if the executing file contains the MZP file extension, and then continues to access

More information

Customizing Confirmation Text and Emails for Donation Forms

Customizing Confirmation Text and Emails for Donation Forms Customizing Confirmation Text and Emails for Donation Forms You have complete control over the look & feel and text used in your donation confirmation emails. Each form in Sphere generates its own confirmation

More information

OPERATION MANUAL. MV-410RGB Layout Editor. Version 2.1- higher

OPERATION MANUAL. MV-410RGB Layout Editor. Version 2.1- higher OPERATION MANUAL MV-410RGB Layout Editor Version 2.1- higher Table of Contents 1. Setup... 1 1-1. Overview... 1 1-2. System Requirements... 1 1-3. Operation Flow... 1 1-4. Installing MV-410RGB Layout

More information

Q2000 Series BIOS BIOS SETUP UTILITY

Q2000 Series BIOS BIOS SETUP UTILITY BIOS SECTION Q2010 LifeBook Q2000 Series BIOS Q2000 Series BIOS BIOS SETUP UTILITY The BIOS Setup Utility is a program that sets up the operating environment for your notebook. Your BIOS is set at the

More information

Mouse Programming. 25.1 Mouse Interrupts. 25.2 Useful Mouse functions. 25.2.1 Mouselib.h. 25.2.2 Mouselib.c

Mouse Programming. 25.1 Mouse Interrupts. 25.2 Useful Mouse functions. 25.2.1 Mouselib.h. 25.2.2 Mouselib.c 25 Show respect for all people. Mouse Programming As everyone knows, mouse is one of the inputting devices. In this chapter, I explain interrupts for mouse programming and a few concepts regarding mouse

More information

Keil C51 Cross Compiler

Keil C51 Cross Compiler Keil C51 Cross Compiler ANSI C Compiler Generates fast compact code for the 8051 and it s derivatives Advantages of C over Assembler Do not need to know the microcontroller instruction set Register allocation

More information

Understanding a Simple Operating System

Understanding a Simple Operating System Understanding a Simple Operating System SOS is a Simple Operating System designed for the 32- bit x86 architecture. Its purpose is to understand basic concepts of operating system design. These notes are

More information

ADDING and/or DELETING PIN NUMBERS (Plus other simple programming commands) in My DK-16 or DK-26 DIGITAL KEYPAD

ADDING and/or DELETING PIN NUMBERS (Plus other simple programming commands) in My DK-16 or DK-26 DIGITAL KEYPAD ADDING and/or DELETING PIN NUMBERS (Plus other simple programming commands) in My DK-16 or DK-26 DIGITAL KEYPAD A recurring call that we get here at Securitron Technical Support is from end users of our

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

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

The x86 PC: Assembly Language, Design, and Interfacing 5 th Edition

The x86 PC: Assembly Language, Design, and Interfacing 5 th Edition Online Instructor s Manual to accompany The x86 PC: Assembly Language, Design, and Interfacing 5 th Edition Muhammad Ali Mazidi Janice Gillispie Mazidi Danny Causey Prentice Hall Boston Columbus Indianapolis

More information

The 104 Duke_ACC Machine

The 104 Duke_ACC Machine The 104 Duke_ACC Machine The goal of the next two lessons is to design and simulate a simple accumulator-based processor. The specifications for this processor and some of the QuartusII design components

More information

TM SysAid Chat Guide Document Updated: 10 November 2009

TM SysAid Chat Guide Document Updated: 10 November 2009 SysAidTM Chat Guide Document Updated: 10 November 2009 Introduction 2 Quick Access to SysAid Chat 3 Enable / Disable the SysAid Chat from the End User Portal. 4 Edit the Chat Settings 5 Chat Automatic

More information

Appendix C: Keyboard Scan Codes

Appendix C: Keyboard Scan Codes Thi d t t d ith F M k 4 0 2 Appendix C: Keyboard Scan Codes Table 90: PC Keyboard Scan Codes (in hex) Key Down Up Key Down Up Key Down Up Key Down Up Esc 1 81 [ { 1A 9A, < 33 B3 center 4C CC 1! 2 82 ]

More information

Embedded X86 Programming: Protected Mode

Embedded X86 Programming: Protected Mode Embedded X86 Programming: Protected Mode By Jean Gareau Intel has shipped millions of 80386, 80486, and Pentiums since 1986, and this figure is increasing rapidly. The x86 is expected to seriously affect

More information

150127-Microprocessor & Assembly Language

150127-Microprocessor & Assembly Language Chapter 3 Z80 Microprocessor Architecture The Z 80 is one of the most talented 8 bit microprocessors, and many microprocessor-based systems are designed around the Z80. The Z80 microprocessor needs an

More information

Seagate Manager. User Guide. For Use With Your FreeAgent TM Drive. Seagate Manager User Guide for Use With Your FreeAgent Drive 1

Seagate Manager. User Guide. For Use With Your FreeAgent TM Drive. Seagate Manager User Guide for Use With Your FreeAgent Drive 1 Seagate Manager User Guide For Use With Your FreeAgent TM Drive Seagate Manager User Guide for Use With Your FreeAgent Drive 1 Seagate Manager User Guide for Use With Your FreeAgent Drive Revision 1 2008

More information

Traditional IBM Mainframe Operating Principles

Traditional IBM Mainframe Operating Principles C H A P T E R 1 7 Traditional IBM Mainframe Operating Principles WHEN YOU FINISH READING THIS CHAPTER YOU SHOULD BE ABLE TO: Distinguish between an absolute address and a relative address. Briefly explain

More information

Introduction to Embedded Systems. Software Update Problem

Introduction to Embedded Systems. Software Update Problem Introduction to Embedded Systems CS/ECE 6780/5780 Al Davis logistics minor Today s topics: more software development issues 1 CS 5780 Software Update Problem Lab machines work let us know if they don t

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

Color quality guide. Quality menu. Color quality guide. Page 1 of 6

Color quality guide. Quality menu. Color quality guide. Page 1 of 6 Page 1 of 6 Color quality guide The Color Quality guide helps users understand how operations available on the printer can be used to adjust and customize color output. Quality menu Menu item Print Mode

More information

DVR GUIDE. Using your DVR/Multi-Room DVR. 1-866-WAVE-123 wavebroadband.com

DVR GUIDE. Using your DVR/Multi-Room DVR. 1-866-WAVE-123 wavebroadband.com DVR GUIDE Using your DVR/Multi-Room DVR 1-866-WAVE-123 wavebroadband.com Table of Contents Control Live TV... 4 Playback Controls... 5 Remote Control Arrow Buttons... 5 Status Bar... 5 Pause... 6 Rewind...

More information

Tutorial for Tracker and Supporting Software By David Chandler

Tutorial for Tracker and Supporting Software By David Chandler Tutorial for Tracker and Supporting Software By David Chandler I use a number of free, open source programs to do video analysis. 1. Avidemux, to exerpt the video clip, read the video properties, and save

More information

8086 Microprocessor (cont..)

8086 Microprocessor (cont..) 8086 Microprocessor (cont..) It is a 16 bit µp. 8086 has a 20 bit address bus can access upto 2 20 memory locations ( 1 MB). It can support upto 64K I/O ports. It provides 14, 16-bit registers. It has

More information