MODULAR PROGRAMMING. Large project need to be broken into small modules with clean interfaces
|
|
- Rosamond Dixon
- 5 years ago
- Views:
Transcription
1 MODULAR PROGRAMMING Large project need to be broken into small modules with clean interfaces The way to program a module should only depend on the interfaces provided by other modules not their implementation One possibility would be to place groups of related procedures into different files and then include them with the INCLUDE directive The INCLUDE directive instructs the assembler to include the file (at assembly time) at the place of the directive We must then ensure that the code will be placed in the segment and the data will be placed in the segment
2 Modular Programming (Continued) Hence, in each file, we should always put before the code and before the data In File MyProg.asm include Cs266.inc Msg1 DB "In Main", 10, 0 main: PUTSTR Msg1 CALL ProcA CALL ProcB include ProcA.asm include ProcB.asm In File ProcA.asm ProcA: PUTSTR Msg2 Msg2 DB "In ProcA", 10, 0 In File ProcB.asm ProcB PROC PUTSTR Msg3 ProcB ENDP Msg3 DB "In ProcB", 10, 0
3 Modular Programming (Continued) Hence, by doing Bcc32 MyProg.asm the assembler will create a single object file MyProg.obj which will contain all the included codes and data The scope of each used name (in any included file) will be the object module in which they will be assembled. Here it is MyProg.obj 1. Hence an error will be detected by the assembler if two different included files use the same name 2. Hence this method of included files should be avoided for large projects Instead, we should assemble each file separately to obtain a separate object module for each file and, thus, have a private namespace for each file Make sure, however, to use the.,.model Flat and directives in each files
4 Separate Assembly However, ny module that wants to be used need to provide at least one name to be used by others The directive PUBLIC enables other modules to use names defined in the module where PUBLIC is. Example PUBLIC ProcA, VarC, LabelB Note that the usage is the same for any kind of names (procedures, variables, labels,... ) The directive EXTRN declares names that are defined in other modules But now we need to provide the qualifiers 1. PROC for procedure names 2. BYTE, WORD, DWORD,... for variables names Example EXTRN ProcA:Proc, VarA:Dword, VarB:Word Place the directives EXTRN and PUBLIC just after.model Flat
5 Separate Assembly Example In File MyProg.asm extrn ProcA:Proc, ProcB:Proc include Cs266.inc Msg1 DB "In Main", 10, 0 main: PUTSTR Msg1 CALL ProcA CALL ProcB include ProcA.asm include ProcB.asm In File ProcA.asm public ProcA include Iomacros.inc ProcA: PUTSTR Msg1 Msg1 DB "In ProcA", 10, 0 In File ProcB.asm public ProcB include Iomacros.inc ProcB PROC PUTSTR Msg1 ProcB ENDP Msg1 DB "In ProcB", 10, 0
6 Separate Assembly Example (Continued) To assemble each file separately and link them, do bcc32 -c ProcA.asm bcc32 -c ProcB.asm bcc32 MyProg.asm ProcA.obj ProcB.obj 1. The -c is the Compile Only option: it only produces an object file 2. The last command will produce MyProg.obj and link all the.obj files to produce MyProg.exe All () segments will be concatenated into a single () segment Each.asm file now provides a separate namespace since each file has been assembled separately Note that all three files are using the same name Msg1. These refer to different memory locations since the assembler and linker will produce a different memory address for each variable Msg1
7 The Program s Entry Point An executable program must have only one entry point (the address of the first instruction to execute) This entry point must be called main and made public when using bcc32 to assemble and link 1. This is why I have included the following directive in Cs266.inc (near the top of the file) PUBLIC main Main EQU < main> The second directive make Main equivalent to main, so that Main can be used instead to label the entry point 2. But since a program can have only one entry point, these two directives must be present only in one.asm file: the one containing the entry point 3. If the macros in Cs266.inc are needed in other modules, then include instead another file, call Iomacro.inc, which is identical to Cs266.inc but does not contain these two directives (see previous example again)
8 Using Global Variables A variable made public in one object module will be accessible to every other object module that will be linked into the same.exe file As long as the other object modules are declaring this variable to be extern Such a variable, which is said to be global, can be used by procedures to pass a value across different modules 1. This mechanism increases the complexity of the interfaces (since every module must be aware of all the global variables 2. Hence, the number of global variables should be minimal
9 Global Variable Example In File MyProg.asm public VarA extrn ProcA:Proc include Cs266.inc VarA DD? main: MOV VarA 333 CALL ProcA In File ProcA.asm public ProcA extrn VarA:Dword include Iomacros.inc ProcA: PUTINT VarA To assemble and link, you can do bcc32 MyProg.asm ProcA.asm
Q. State and Explain steps involved in program development. [w-08, w-10, s-12, w-11]
Q. State and Explain steps involved in program development. [w-08, w-10, s-12, w-11] Answer: 1. Defining Problem 2. Algorithm 3. Flowchart 4. Initialization of checklist 5. Choosing instructions 6. Converting
More informationADDRESSING MODES. Operands specify the data to be used by an instruction
ADDRESSING MODES Operands specify the data to be used by an instruction An addressing mode refers to the way in which the data is specified by an operand 1. An operand is said to be direct when it specifies
More informationThe statement above assumes that the PCMAC.INC file is in the current directory. The full path of the file can also be given:
MACROS for I/O As you have probably noticed, writing DOS calls can become tedious. Much of the code is repetitive, and each call has its own function code and register usage. You are probably used to dealing
More informationMacros in Pentium. Assembly Language. October 25
Macros in Pentium Assembly Language October 25 CSC201 Section 002 Fall, 2000 Equates PI equ 3.1415926 MAXRECS equ 200 RECSIZE equ 5 move equ mov la equ lea float1 dd PI recarray db MAXRECS*RECSIZE dup
More informationAssembler Programming. Lecture 12
Assembler Programming Lecture 12 Lecture 12 Writting Windows 32 applications. Writting dynamic libraries. One memory model: flat, there are no segments. Some theory Programs run in protected mode. Registers
More informationUNIT 4. Modular Programming
1 UNIT 4. Modular Programming Program is composed from several smaller modules. Modules could be developed by separate teams concurrently. The modules are only assembled producing.obj modules (Object modules).
More informationAssembler Programming. Lecture 10
Assembler Programming Lecture 10 Lecture 10 Mixed language programming. C and Basic to MASM Interface. Mixed language programming Combine Basic, C, Pascal with assembler. Call MASM routines from HLL program.
More informationAssembly Language Fundamentals. Chapter 3
Assembly Language Fundamentals Chapter 3 1 Numeric Constants 2 Numeric constants are made of numerical digits with, possibly, a sign and a suffix. Ex: -23 (a negative integer, base 10 is default) 1011b
More information8086 ALP TOOLS (CH 2) CHAPTER 2
1 CHAPTER 2 In this chapter, we shall discuss the Assembly Language Program development tools, PC memory structure and Assembler directives. Books to be Referred: 1. Microprocessors and Interfacing 2nd
More informationAssembler Programming. Lecture 6
Assembler Programming Lecture 6 Lecture 6 Full segment definitions. Procedures. Parameters. Modules. Full segment definitions Complete control over segments. Control over segments order. Posibility of
More informationLecture 6. Assembler Directives
Lecture 6 Assembler Directives Assembler Directives Code generation flow Assembler directives Introduction Segment control Generic segment (SEGMENT, RSEG) Absolute segment (CSEG, DSEG and XSEG) Address
More informationStack -- Memory which holds register contents. Will keep the EIP of the next address after the call
Call without Parameter Value Transfer What are involved? ESP Stack Pointer Register Grows by 4 for EIP (return address) storage Stack -- Memory which holds register contents Will keep the EIP of the next
More informationLecture (05) x86 programming 4
Lecture (05) x86 programming 4 By: Dr. Ahmed ElShafee ١ TOC IA32 cont,.. Segmentation Assembler Directives Format of console programs Practical deliverable 01 ٢ Simple Memory Addressing Modes Normal (R)
More informationMating Assembly with C
16 Do to others what you want them to do to you. Mating Assembly with C Nothing can beat the efficiency of Assembly language. A good optimizing C compiler will convert C file to a better assembly code.
More informationProcedures and the Stack. Chapter 4 S. Dandamudi
Procedures and the Stack Chapter 4 S. Dandamudi Outline What is stack? Pentium implementation of stack Pentium stack instructions Uses of stack Procedures Assembler directives Pentium instructions Parameter
More informationPHY4635/5635 Spring Lecture 8: Program Control Instructions
PHY4635/5635 Spring 2009 Lecture 8: Program Control Instructions Short, Near and Far Jumps Short jump: jump is within +127 to -128 bytes from the address following the jump. Relative jumps : moves with
More informationEECE.3170: Microprocessor Systems Design I Summer 2017
EECE.3170: Microprocessor Systems Design I Summer 2017 Lecture 8: Key Questions June 5, 2017 1. (Review) Describe the structure of a typical x86 stack frame. EECE.3170: Microprocessor Systems Design I
More informationWriting 32-Bit Applications
335 CHAPTER 13 Writing 32-Bit Applications This chapter is an introduction to 32-bit programming for the 80386. The guidelines in this chapter also apply to the 80486 processor, which is basically a faster
More informationUser Guide. As with C++ you should implement an inclusion guard in your class definition file through the use of IFNDEF.
HJWasm Object Oriented Language Extension User Guide Introduction HJWasm 2.25 introduces a set of language extensions made available through the built-in Macro Library System. One of these extensions is
More informationTopics Introduction to Microprocessors. Chapter 5 Macros and modules. What is macro? How to use macro? (I) How to use macro?
Topics 2102440 Introduction to Microprocessors Macros Subroutines Modules Chapter 5 Macros and modules Suree Pumrin,, Ph.D. 1 2102440 Introduction to Microprocessors 2 What is macro? It is used to automate
More informationAssembly Language for Intel-Based Computers, 4 th Edition. Lecture 25: Interface With High-Level Language
Assembly Language for Intel-Based Computers, 4 th Edition Kip R. Irvine Lecture 25: Interface With High-Level Language Slide show prepared by Kip R. Irvine, Revision date: 07/07/2002 Modified on April
More informationOverview. Constructors and destructors Virtual functions Single inheritance Multiple inheritance RTTI Templates Exceptions Operator Overloading
How C++ Works 1 Overview Constructors and destructors Virtual functions Single inheritance Multiple inheritance RTTI Templates Exceptions Operator Overloading Motivation There are lot of myths about C++
More informationSummer 2003 Lecture 14 07/02/03
Summer 2003 Lecture 14 07/02/03 LAB 6 Lab 6 involves interfacing to the IBM PC parallel port Use the material on wwwbeyondlogicorg for reference This lab requires the use of a Digilab board Everyone should
More informationMicroprocessor. By Mrs. R.P.Chaudhari Mrs.P.S.Patil
Microprocessor By Mrs. R.P.Chaudhari Mrs.P.S.Patil Chapter 1 Basics of Microprocessor CO-Draw Architecture Of 8085 Salient Features of 8085 It is a 8 bit microprocessor. It is manufactured with N-MOS technology.
More informationSRI VENKATESWARA COLLEGE OF ENGINEERING AND TECHNOLOGY DEPARTMENT OF ECE EC6504 MICROPROCESSOR AND MICROCONTROLLER (REGULATION 2013)
SRI VENKATESWARA COLLEGE OF ENGINEERING AND TECHNOLOGY DEPARTMENT OF ECE EC6504 MICROPROCESSOR AND MICROCONTROLLER (REGULATION 2013) UNIT I THE 8086 MICROPROCESSOR PART A (2 MARKS) 1. What are the functional
More informationEECE.3170: Microprocessor Systems Design I Summer 2017 Homework 4 Solution
1. (40 points) Write the following subroutine in x86 assembly: Recall that: int f(int v1, int v2, int v3) { int x = v1 + v2; urn (x + v3) * (x v3); Subroutine arguments are passed on the stack, and can
More informationAssembly Language LAB
Assembly Language LAB Islamic University Gaza Engineering Faculty Department of Computer Engineering 2013 ECOM 2125: Assembly Language LAB Created by: Eng. Ahmed M. Ayash Modified and Presented By: Eihab
More informationensures that the assembler generates instructions for the C167 (as opposed to XC167) Memory models The system startup file
System Startup Detailed -1 week lecture Topics 4 System Startup Detailed - ( TASKING) Macro definitions, configuration registers and stack frames - and memory maps - Memory type specifiers - Object classes
More informationM2 Instruction Set Architecture. Translating and Starting a Program Linkage Editor
M2 Instruction Set Architecture Translating and Starting a Program Linkage Editor Module Outline Addressing modes. Instruction classes. RISC-V ISA. Translating and starting a program. High level languages,
More informationLABORATORY WORK NO. 8 WORKING WITH MACROS AND LIBRARIES
LABORATORY WORK NO. 8 WORKING WITH MACROS AND LIBRARIES 1. Object of laboratory Getting used to defining and using macros, procedure defining and using LIB library librarian. 2. Theoretical considerations
More informationAssembly Language: g Part III. First Semester 2013 Department of Computer Science Faculty of Science Chiang Mai University
System Programming with Assembly Language: g Part III First Semester 2013 Department of Computer Science Faculty of Science Chiang Mai University Outline A Few Basic Instructions Translation of high Level
More informationreply db y prompt db Enter your favourite colour:, 0 colour db 80 dup(?) i db 20 k db? num dw 4000 large dd 50000
Declaring Variables in Assembly Language As in Java, variables must be declared before they can be used Unlike Java, we do not specify a variable type in the declaration in assembly language Instead we
More informationIslamic University Gaza Engineering Faculty Department of Computer Engineering ECOM 2125: Assembly Language LAB. Lab # 10. Advanced Procedures
Islamic University Gaza Engineering Faculty Department of Computer Engineering ECOM 2125: Assembly Language LAB Lab # 10 Advanced Procedures May, 2014 1 Assembly Language LAB Stack Parameters There are
More information3: 4: 5: 9: ',0 10: ',0 11: ',0 12: 13:.CODE 14: INCLUDE
1: TITLE Parameter passing via registers PROCEX1.ASM 2: COMMENT 3: Objective: To show parameter passing via registers 4: Input: Requests two integers from the user. 5: Output: Outputs the sum of the input
More informationELEC VIDEO BIOS ROUTINES
It is less confusing to the user if we remove unnecessary messages from the display before giving information or instructions. At the command prompt, we do this with the DOS command CLS. However, this
More informationSummer 2003 Lecture 15 07/03/03
Summer 2003 Lecture 15 07/03/03 Initialization of Variables In the C (or C++) programming language any variable definition can have an optional initializer for the variable. How and when the initialization
More informationQuestion Bank Unit-1
Question Bank Unit-1 1.Define a microprocessor. Explain in detail the evolution of microprocessor in microprocessor age from 4004 MP to core-2 system. 2.What is microprocessor? Explain how data, address
More informationBasic Assembly SYSC-3006
Basic Assembly Program Development Problem: convert ideas into executing program (binary image in memory) Program Development Process: tools to provide people-friendly way to do it. Tool chain: 1. Programming
More informationConstants and. Lecture 7: Assembly Language Programs. Expressions (cont.) Constants and. Statements. Expressions
Lecture 7: Assembly Language Programs Basic elements of assembly language Assembler directives Data allocation directives Data movement instructions Assembling, linking, and debugging Using TASM Constants
More informationMachine and Assembly Language Principles
Machine and Assembly Language Principles Assembly language instruction is synonymous with a machine instruction. Therefore, need to understand machine instructions and on what they operate - the architecture.
More informationUNIVERSITY OF CALIFORNIA, RIVERSIDE
Final Page 1 of 7 UNIVERSITY OF CALIFORNIA, RIVERSIDE Computer Science Department CS61 Machine Organization & Assembly Language Final September 1, 2000 53 Name: Solution Key Student ID#: Please print legibly
More informationmith College Computer Science CSC231 - Assembly Week #4 Dominique Thiébaut
mith College Computer Science CSC231 - Assembly Week #4 Dominique Thiébaut dthiebaut@smith.edu Homework Solutions Outline Review Hexdump Pentium Data Registers 32-bit, 16-bit and 8-bit quantities (registers
More informationOverview: 1. Overview: 2
1: TITLE Binary equivalent of characters BINCHAR.ASM 3: Objective: To print the binary equivalent of 4: ASCII character code. 5: Input: Requests a character from keyboard. 6: Output: Prints the ASCII code
More informationLabWindows Guidelines for Interrupt and DMA Programming in Loadable Object Modules
LabWindows Guidelines for Interrupt and DMA Programming in Loadable Object Modules December 1992 Edition Part Number 320412-01 Copyright 1992 National Instruments Corporation. All Rights Reserved. National
More informationAssembly Language. Lecture 3 Assembly Fundamentals
Assembly Language Lecture 3 Assembly Fundamentals Ahmed Sallam Slides based on original lecture slides by Dr. Mahmoud Elgayyar General Concepts CPU Design, Instruction execution cycle IA-32 Processor Architecture
More informationMemory Organization. 27 December 2016 Pramod Ghimire. Slide 1 of 21
Memory Organization Slide 1 of 21 The assembler uses two basic formats for developing software. One method uses memory models and the other uses fullsegment definitions. MASM uses memory models. The TASM
More informationIntroduction to Assembly Language
Introduction to Assembly Language COE 205 Computer Organization and Assembly Language Computer Engineering Department King Fahd University of Petroleum and Minerals Presentation Outline Basic Elements
More informationOverview. Constructors and destructors Virtual functions Single inheritance Multiple inheritance RTTI Templates Exceptions Operator Overloading
HOW C++ WORKS Overview Constructors and destructors Virtual functions Single inheritance Multiple inheritance RTTI Templates Exceptions Operator Overloading Motivation There are lot of myths about C++
More informationCPSC 213, Winter 2009, Term 2 Midterm Exam Date: March 12, 2010; Instructor: Mike Feeley
CPSC 213, Winter 2009, Term 2 Midterm Exam Date: March 12, 2010; Instructor: Mike Feeley This is a closed book exam. No notes. Electronic calculators are permitted. Answer in the space provided. Show your
More informationVideo processing The INT instruction enables program to interrupt its own processing. Use INT instruction to handle inputs and outputs
Video processing The INT instruction enables program to interrupt its own processing. Use INT instruction to handle inputs and outputs INT 10H: screen handling INT 21H: for displaying screen output and
More informationCALL instruction and RET instruction :
Procedure and Macro (16 marks) Define procedure : A procedure is group of instructions that usually performs one task. It is a reusable section of a software program which is stored in memory once but
More informationOverview of Compiler. A. Introduction
CMPSC 470 Lecture 01 Topics: Overview of compiler Compiling process Structure of compiler Programming language basics Overview of Compiler A. Introduction What is compiler? What is interpreter? A very
More informationCSE 505 Lecture 8: Introduction to Assembly Language
Page1 Advantages of Assembly Language Low-level access to the computer Higher speed Total control over CPU (Must know what you are doing in order to make these advantages work) Disadvantages of assembly
More informationChapter 3: Assembly Language Fundamentals. Cristina G. Rivera
Chapter 3: Assembly Language Fundamentals Cristina G. Rivera Basic Elements of Assembly Language Example: Adding and Subtracting Integers Assembling, Linking, and Running Programs Defining Data Symbolic
More informationSemantics of C++ Hauptseminar im Wintersemester 2009/10 Templates
Semantics of C++ Hauptseminar im Wintersemester 2009/10 Templates Sebastian Wild Technische Universität München 11.01.2010 Abstract In this work we will discuss about templates in C++, especially their
More informationAssembly Language Fundamentals
ECOM 2325 Computer Organization and Assembly Language Chapter 3 Assembly Language Fundamentals Presentation Outline Basic Elements of Assembly Language Flat Memory Program Template Example: Adding and
More informationExperiment #5. Using BIOS Services and DOS functions Part 1: Text-based Graphics
Experiment #5 Using BIOS Services and DOS functions Part 1: Text-based Graphics 5.0 Objectives: The objective of this experiment is to introduce BIOS and DOS interrupt service routines to be utilized in
More informationProgram SoC using C Language
Program SoC using C Language 1 Module Overview General understanding of C, program compilation, program image, data storage, data type, and how to access peripherals using C language; Program SoC using
More informationIntroduction to Assembly Language
Introduction to Assembly Language COE 205 Computer Organization and Assembly Language Dr. Aiman El-Maleh College of Computer Sciences and Engineering King Fahd University of Petroleum and Minerals [Adapted
More informationQuestion Bank Part-A UNIT I- THE 8086 MICROPROCESSOR 1. What is microprocessor? A microprocessor is a multipurpose, programmable, clock-driven, register-based electronic device that reads binary information
More informationUS06CCSC04: Introduction to Microprocessors and Assembly Language UNIT 1: Assembly Language Terms & Directives
Introduction: US06CCSC04: Introduction to Microprocessors and A microprocessor is the chip containing some control and logic circuits that is capable of a making arithmetic and logical decision based on
More informationAssembly Language for Intel-Based Computers, 4 th Edition. Chapter 3: Assembly Language Fundamentals
Assembly Language for Intel-Based Computers, 4 th Edition Kip R. Irvine Chapter 3: Assembly Language Fundamentals (c) Pearson Education, 2002. Chapter Overview Basic Elements of Assembly Language Example:
More informationC167 (as opposed to C166, C164) - Compiler dependent; KEIL C166 tool chain uses a. generates instructions for the
System Startup Detailed MP4-1 System Startup Detailed MP4-2 week lecture Topics 4 System Startup Detailed - (example: KEIL) Macro definitions, configuration registers and stack frames - and memory maps
More informationIslamic University Gaza Engineering Faculty Department of Computer Engineering ECOM 2125: Assembly Language LAB. Lab # 7. Procedures and the Stack
Islamic University Gaza Engineering Faculty Department of Computer Engineering ECOM 2125: Assembly Language LAB Lab # 7 Procedures and the Stack April, 2014 1 Assembly Language LAB Runtime Stack and Stack
More informationAssembly Language for Intel-Based Computers, 5 th Edition. Kip Irvine. Chapter 3: Assembly Language Fundamentals
Assembly Language for Intel-Based Computers, 5 th Edition Kip Irvine Chapter 3: Assembly Language Fundamentals Chapter Overview Basic Elements of Assembly Language Example: Adding and Subtracting Integers
More informationConstants and Expressions. Lecture 7: Assembly Language Programs. Constants and Expressions (cont.) Statements. Names. Assembly Directives
Lecture 7: Assembly Language Programs Basic elements of assembly language Assembler directives Data allocation directives Data movement instructions Assembling, linking, and debugging Using TASM Constants
More informationChapter 3 (Part a) Assembly Language Fundamentals
Islamic University Gaza Engineering Faculty Department of Computer Engineering ECOM 2025: Assembly Language Discussion Chapter 3 (Part a) Assembly Language Fundamentals Eng. Eman R. Habib February, 2014
More informationSummer 2003 Lecture 1 06/09/03
Summer 2003 Lecture 1 06/09/03 General Overview of Class: This class is an introduction to the low level operation of microprocessor-based computer systems. We will cover the operation of the Central Processor
More informationdb "Please enter up to 256 characters (press Enter Key to finish): ",0dh,0ah,'$'
PA4 Sample Solution.model large.stack 100h.data msg1 db "This programs scans a string of up to 256 bytes and counts the repetitions of the number 4206 and sums them.",0dh,0ah,'$' msg2 db "Please enter
More informationHow to write an assembly language program.
Copyright 1999 by Barry B. Brey How to write an assembly language program. Someone asked about this and, at first, I thought this was a very difficult question until I thought about it for a few minutes.
More informationLecture (09) x86 programming 8
Lecture (09) x86 programming 8 By: Dr. Ahmed ElShafee 1 Basic Input Output System BIOS BIOS refers to a set of procedures or functions that enable the programmer have access to the hardware of the computer.
More informationAssembling, Linking and Executing 1) Assembling: .obj obj .obj.lst .crf Assembler Types: a) One pass assembler:
Assembling, Linking and Executing 1) Assembling: - Assembling converts source program into object program if syntactically correct and generates an intermediate.obj file or module. - It calculates the
More informationCOMPUTER ENGINEERING DEPARTMENT
Page 1 of 14 COMPUTER ENGINEERING DEPARTMENT Jan. 7, 2010 COE 205 COMPUTER ORGANIZATION & ASSEMBLY PROGRAMMING Major Exam II First Semester (091) Time: 3:30 PM-6:00 PM Student Name : KEY Student ID. :
More informationEC 333 Microprocessor and Interfacing Techniques (3+1)
EC 333 Microprocessor and Interfacing Techniques (3+1) Lecture 6 8086/88 Microprocessor Programming (Arithmetic Instructions) Dr Hashim Ali Fall 2018 Department of Computer Science and Engineering HITEC
More information.code. lea dx,msg2. Page 1/8. Problem 1: Programming in Assembly [25 Points]
Problem : Programming in Assembly [ Points] The following assembly program is supposed to: receive three integer numbers from the console, call a function, name sort, function sort arranges the three input
More informationLab 2: Introduction to Assembly Language Programming
COE 205 Lab Manual Lab 2: Introduction to Assembly Language Programming - page 16 Lab 2: Introduction to Assembly Language Programming Contents 2.1. Intel IA-32 Processor Architecture 2.2. Basic Program
More informationIslamic University Gaza Engineering Faculty Department of Computer Engineering ECOM 2125: Assembly Language LAB
Islamic University Gaza Engineering Faculty Department of Computer Engineering ECOM 2125: Assembly Language LAB Lab # 6 Input/output using a Library of Procedures April, 2014 1 Assembly Language LAB Using
More informationUNIT I - INTRODUCTION
UNIT I - INTRODUCTION 1. Define system software. It consists of variety of programs that supports the operation of the computer. This software makes it possible for the user to focus on the other problems
More informationutility software package reference manual
utility software package reference manual utility software package reference manual for 8086 microprocessors Microsoft, Inc. Microsoft Building 10700 Northup Way Bellevue, WA 98004 Information in this
More informationIBM PC Hardware CPU 8088, Pentium... ALU (Arithmetic and Logic Unit) Registers. CU (Control Unit) IP.
IBM PC Hardware CPU 8088, 8086 80286 80386 80486 Pentium... ALU (Arithmetic and Logic Unit) Registers CU (Control Unit) IP Memory ROM BIOS I/O RAM OS Programs Video memory BIOS data Interrupt Vectors Memory
More informationLab 3: Defining Data and Symbolic Constants
COE 205 Lab Manual Lab 3: Defining Data and Symbolic Constants - page 25 Lab 3: Defining Data and Symbolic Constants Contents 3.1. MASM Data Types 3.2. Defining Integer Data 3.3. Watching Variables using
More informationWe will first study the basic instructions for doing multiplications and divisions
MULTIPLICATION, DIVISION AND NUMERICAL CONVERSIONS We will first study the basic instructions for doing multiplications and divisions We then use these instructions to 1. Convert a string of ASCII digits
More informationLecture (06) x86 programming 5
Lecture (06) x86 programming 5 By: Dr. Ahmed ElShafee 1 TOC Format of DOS programs Format of the.com programs Addressing Modes 1> Immediate Addressing Mode 2> Register Addressing Mode 3> Direct Addressing
More informationAssembly Language Programming: Procedures. EECE416 uc. Charles Kim Howard University. Fall
Assembly Language Programming: Procedures EECE416 uc Charles Kim Howard University Fall 2013 www.mwftr.com Before we start Schedule of the next few weeks T Nov 19: Procedure and Calls (continued) R Nov
More informationComputer Systems Lecture 9
Computer Systems Lecture 9 CPU Registers in x86 CPU status flags EFLAG: The Flag register holds the CPU status flags The status flags are separate bits in EFLAG where information on important conditions
More informationCS-202 Microprocessor and Assembly Language
CS-202 Microprocessor and Assembly Language Lecture 2 Introduction to 8086 Assembly Language Dr Hashim Ali Spring - 2019 Department of Computer Science and Engineering HITEC University Taxila!1 Lecture
More informationLAB WORK NO. 3 TURBO DEBUGGER ENVIRONMENT
LAB WORK NO. 3 TURBO DEBUGGER ENVIRONMENT 1. Objective of the lab work The purpose of this lab is to be able to debug programs written in assembly language and general executables, using a debugging tool.
More informationMarking Scheme. Examination Paper. Module: Microprocessors (630313)
Philadelphia University Faculty of Engineering Marking Scheme Examination Paper Department of CE Module: Microprocessors (630313) Final Exam Second Semester Date: 12/06/2017 Section 1 Weighting 40% of
More informationObject Oriented Programming
Object Oriented Programming Java lecture (10.2) Exception Handling 1 Outline Throw Throws Finally 2 Throw we have only been catching exceptions that are thrown by the Java run-time system. However, it
More informationBy: Dalbir Singh, Computer Science Dep't
Assembly language is essentially the native language of your computer. Technically the processor of your machine understands machine code (consisting of ones and zeroes). But in order to write such a machine
More informationRMV ELECTRONICS INC. Application Note:
RMV ELECTRONICS INC. Application Note: Application #: 00002 Date: September 1994 Description: High Speed Serial Communications Between the PC and the Status: Draft Version ITC232-A. The ITC232-A is capable
More informationEE251: Tuesday September 5
EE251: Tuesday September 5 Shift/Rotate Instructions Bitwise logic and Saturating Instructions A Few Math Programming Examples ARM Assembly Language and Assembler Assembly Process Assembly Structure Assembler
More informationAssembly basics CS 2XA3. Term I, 2017/18
Assembly basics CS 2XA3 Term I, 2017/18 Outline What is Assembly Language? Assemblers NASM Program structure I/O First program Compiling Linking What is Assembly Language? In a high level language (HLL),
More informationComputer Structure and Organization
Lesson 5. Instruction formats. Directives, string instructions and several modules programs Computer Structure and Organization Graduated in Computer Sciences / Graduated in Computer Engineering Graduated
More informationExperiment 3. TITLE Optional: Write here the Title of your program.model SMALL This directive defines the memory model used in the program.
Experiment 3 Introduction: In this experiment the students are exposed to the structure of an assembly language program and the definition of data variables and constants. Objectives: Assembly language
More informationUsing MMX Instructions to implement 2X 8-bit Image Scaling
Using MMX Instructions to implement 2X 8-bit Image Scaling Information for Developers and ISVs From Intel Developer Services www.intel.com/ids Information in this document is provided in connection with
More informationEXPERIMENT TWELVE: USING DISK FILES
EXPERIMENT TWELVE: USING DISK FILES INTRODUCTION Because just about any program ever written requires the use of a disk file to store or retrieve data, this experiment shows how to create, read, write,
More informationIntroduction to 8086 Assembly
Introduction to 8086 Assembly Lecture 6 Working with memory Why using memory? Registers are limited in number and size Program data Program code etc. The data segment dd 1234 dw 13 db -123 The data segment
More informationChapter 12. Microcontroller Application Development Tools
Chapter 12 Microcontroller Application Development Tools Lesson 2 Assembler, Compiler, Library File generation and Integrated Development Environment Assembler Compiler Library Manager File Generation
More informationAssembly Language for Intel-Based Computers, 5 th Edition
Assembly Language for Intel-Based Computers, 5 th Edition Kip Irvine Chapter 3: Assembly Language Fundamentals Slides prepared by the author Revision date: June 4, 2006 (c) Pearson Education, 2006-2007.
More information