EE 314 Spring 2003 Microprocessor Systems
|
|
- Angela Cunningham
- 6 years ago
- Views:
Transcription
1 EE 314 Spring 2003 Microprocessor Systems Laboratory Project #3 Arithmetic and Subroutines Overview and Introduction Review the information in your textbook (pp ) on ASCII and BCD arithmetic. This lab has two parts. In the first you will work with ASCII and BCD arithmetic. The lab takes a step-bystep logical progression. You will start by modifying a small program that adds unpacked BCD to instead add packed BCD in the pre-lab. In the lab session you will then write a program that converts ASCII numbers to packed BCD. This will be followed by a program that adds two packed BCD number of uniform length. The two programs you do in the lab session 1 will then be turned into sub-routines that are used by another program. In the second part, you will adapt the program you wrote to be called from another procedure using a stack frame to pass parameters. The idea of using a stack frame is a fundamental and very important concept. It is the mechanism that C and other languages use to pass parameters and provide space for local variables inside function calls. It is powerful idea that realizes independent, relocatable, generically-usable subroutines. An additional discussion of stack frames and parameter passing is included in Pre-lab Part 2. Reading it is not necessary to do part 1. Arithmetic calculations such as addition and subtraction are fundamental to computer software. When calculations are performed, numeric data is often translated from ASCII into binary format because the arithmetic computations are much faster in binary format than in ASCII or BCD. Unfortunately, the conversions from ASCII to binary and vice versa are fairly complex and require more computation. So whether you choose binary or ASCII representation depends a lot on the amount of arithmetic needed for each IO operation. If there is a small amount of IO and a lot of arithmetic, then binary is better. If there is a lot of IO and only a little arithmetic to do, then ASCII or BCD is better. Some applications, such as business computations for example, tend to do a lot of reading and writing of numbers, but relatively little computation. In these cases, it makes sense to do the arithmetic with decimal numbers in BCD or ASCII format. This project deals with decimal arithmetic and provides more experience in writing programs. An arithmetic calculation with two arrays containing multi-digit numbers can be written in a subroutine so that it can be re-used wherever needed. To work with any size array however, the number of digits (or array elements) must be indicated in some way. Two possible alternatives are: 1) use an end-marker appended after the last element of the digit-array (as is often done with character arrays in C), and 2) pass the value to the subroutine as a parameter. When using the first approach, the value represented by the end-marker must be unique: in other words, it cannot represent any BCD or ASCII number. Alternative 2 removes this restriction, but requires that an additional parameter be passed to the subroutine. Objectives 1. To learn to use the stack for parameter passing. 2. To practice working with decimal arithmetic in an assembly language program Note: This lab will take two laboratory sessions to complete.
2 Pre-Lab Part 1 Decimal arithmetic (due at the beginning of the first lab period) This is a fairly in-depth and lengthy project, which means you will learn a lot from it. Therefore, it is recommended that you do it well ahead of time. The best way to answer these questions is to experiment with the steps using PWB and CodeView. Part 1. The 80x86 family instruction set provides several instructions to aid in performing decimal arithmetic. Among these are AAA (ASCII Adjust AL after Addition) and DAA (Decimal Adjust AL after Addition). AAA is used when adding ASCII digits or unpacked BCD digits, and DAA is used for adding packed BCD digits. Both work only with the AL register, so we can add only one-byte numbers in each step. In both cases, the adjust instruction is used after an ADD or ADC instruction to convert a 4 or 8 bit hex number to a 4 or 8 bit BCD number (with a possible carry). When adding unpacked BCD digits or ASCII digits and a number greater than 10 results, the AAA instruction will add 1 to AH, set the C flag, and clear the upper 4 bits of AL. This allows the programmer to convert the result back to ASCII by adding 3030H, or leave it in unpacked BCD form in AX. For adding multi-byte packed BCD numbers, you must take into account the value of the C flag when adding the digits to the left of the first 2. Here is an example of a program to add two 3-digit unpacked BCD numbers: U1 DB 0H, 5H, 2H, 1H ;the first 0H is to store the carry U2 DB 0H, 4H, 8H, 4H ; add U2+3 to U1+3 ; Assume that DS already points to the data segment MOV AL,U1+3 ADD AL,U2+3 AAA MOV U1+3,AL ;add U2+2 to U1+2 MOV AL,U1+2 ADC AL,U2+2 ;note: use add with carry AAA MOV U1+2,AL ;add U2+1 to U1+1 MOV AL,U1+1 ADC AL,U2+1 MOV AH,0H ;clear AH before adjustment AAA MOV U1+1,AL ;set the leftmost digit of U1 MOV U1,AH Similar techniques can be used for adding multi-byte packed BCD numbers, with a few minor differences. First, you must use DAA instead of AAA. Second, you can process two digits at a time. Third, unlike AAA, DAA does not add 1 to AH if there is a carry out of AL. Thus, you must depend on the C flag to tell you if the last addition produced a carry that must be copied to the leading digit of the result. Modify the above program for adding two 3-digit packed BCD numbers such as the following: P1 DB 00H, 56H, 43H, 21H P2 DB 00H, 45H, 68H, 54H
3 Lab Procedure Part 1 In both parts (a) and (b) or Part 1 the results will be verified using CodeView. No output to screen is necessary. You will demonstrate these programs the second week of lab (The week of Feb. 7 to Feb. 11). a) Write a program that converts a string of ASCII numbers (no letters allowed) into a packed BCD number. A skeleton for this program is provided on the class web site. This program should be able to handle a number of any length. To achieve this use a separate variable that tells you the length of the ASCII number. An example of how to structure this is given below in Figure 1:.286c CODE ENDS STACK SEGMENT STACK DW 100 DUP(0FFFFH) STACK ENDS DATA SEGMENT 'data' NUMBER DB ' ' BUFFER DB 4 dup (0) LENGTH DB 8 DATA ENDS ASSUME CS:CODE,DS:DATA,SS:STACK include macro.inc A2PBCD PROC NEAR ;(code goes here to convert the ASCII NUMBER ; to packed BCD and store it into BUFFER) A2BCD ENDP START: MOV AX,DATA MOV DS,AX ;Initialize the DS register. EXIT: CALL A2PBCD MOV AX,4C00H ;After the program runs, Figure 1. Be sure to test this program with variable length numbers. Using this successfully in part 2 of the lab procedure relies upon being able to use this program with arbitrary number. This program should be able to handle arbitrary length numbers by changing only the length of the NUBMER and BUFFER and the value in LENGTH. b) Write a program that takes 2 packed BCD numbers of arbitrary (but uniform) length, adds them, and writes them back to a buffer. This program will be very much like the program you modified in the pre-lab. However, like part (a) you need to use a separate variable to tell you the length of the numbers. Again, this program should be able to handle arbitrary length numbers by only changing the LENGTH, the size of BUFFER, and the numbers. For example (Figure 2):
4 .286c CODE ENDS STACK SEGMENT STACK DW 100 DUP(0FFFFH) STACK ENDS DATA SEGMENT 'data' PBCDNUM1 DB,99h,99h,17h,33h PBCDNUM2 DB 91h,45h,81h,00h BUFFER DB 5 dup (0) LENGTH DB 4 DATA ENDS ASSUME CS:CODE,DS:DATA,SS:STACK include macro.inc ADDBCD PROC NEAR ;(code goes that adds PBCDNUM1 to PBCDNUM2 and writes ;the result back into BUFFER) ADDBCD ENDP START: MOV AX,DATA MOV DS,AX ;Initialize the DS register. EXIT: CALL A2PBCD Figure 2. A couple of warnings: You will have to use conditional logic to determine how many digits to add. However, using CMP will alter the flags register and thus ADC may not work correctly. You'll have to think carefully about this problem and come up with a solution (PUSHF may come in handy). Notice that the length of BUFFER is 1 greater than the length of either packed BCD number. Why?
5 Pre-Lab Part 2 In this part of the lab you will learn how to use a stack frame to pass parameters to a procedure call. You will do this by adapting your programs from part one to be functions called by another program. More on this in the Lab procedure. Stack frames are important because they are a generate method for parameter passing. Registers are limited in number, and simply pushing parameters onto the stack causes problems. This problem is demonstrated in question 1. You will need to use CodeView to observe the instructions in operation; Plan on spending some time in the Lab before your lab session. 1) Experiment with the stack and stack pointer with the following steps. a) Create a program and load the following registers with the following values. AX=0AAAAH, BX=5555H, CX = 00003h b) What is the content of SP initially. c) What is the content of SP and CX after executing each of the following statements? PUSH AX PUSH BX POP CX d) It may be useful to keep track of the data stored on the stack by using a diagram to represent memory drawn with SS at the bottom, the initial SP at the top, and the data filled in at each location as data is pushed and popped to/from the stack. Draw such a diagram for step c. e) Repeat steps c) and d) for the following sequence of statements (reload the registers with the values from step a) ): PUSH CX CALL proc1 POP CX Proc1PROC near POP CX PUSH AX RET Proc1 endp You will notice that the sequence of instruction probably doesn't behave the way you think they will. Expect to the value of SP change after the CALL and RET instructions. You should notice the value of CX is not restored by the POP CX within proc1. You will also notice that the RET doesn t go back to the right place. Why? (Recall what happens during a CALL and RET instruction). As you can see, the storage of the return address creates a problem when trying to use the stack. Fortunately, there is a solution. You may recall from lecture that when you use the BP register to access memory BP uses SS as its base register instead of the default DS register. This tool gives us a very general procedure to pass parameters to and from PROC calls, while getting around the problem of the return address being stored in the stack. This procedure is enumerated in Figure 3. See sfexampl.asm to see this procedure in action.
6 Steps to using To Enter a Stack Frame 1) Push args 2) Call proc 3) push bp 4) mov bp,sp 5) sub sp,n (n an even number: the number of bytes required to hold local variables) To Exit a Stack Frame 1) mov sp, bp 2) pop bp 3) ret 4) pop/clean-up args possibly use returned values (you won't do this in this lab) All of these concepts are demonstrated in sfexampl.asm. If necessary, build this program and observe its operation in CodeView. Lab Procedure Part 2 Extract the two subroutines you wrote in Lab Procedure Part 1 and place them in a separate source file. The procedures must be named ASC2PBCD (ASCII to Packed BCD) and ADDPBCD (Add packed BCD). Remember that names are not case sensitive in MASM. You must then change the procedures that you wrote to get their parameters from the stack frame rather than directly in registers. Your demonstration will consist of supplying a source file with the procedures only. The functions in your source file will then be called by a driver program supplied by the TA. The driver program will use each of your procedure calls multiple times. The TA's program will do the following (several times with several sets of data): 1) Convert 2 equal but arbitrarily long string of ASCII decimal numbers to PBCD 2) Add these 2 packed BCD number (which are of arbitrary length) The program driver.asm has been provided for you to test your procedures. This file demonstrates the exact order procedures will be passed onto the stack. You must use the procedures passed on the stack, and you may NOT use any memory outside the stack frame for your local variables. A demonstration of multi-file projects is available on the class website. This example is made up of the source modules exmain.asm and exsubr.asm. A project should be created in PWB and these source files added to it, and then the project built. Lab report You will have to write a lab report for this lab summarizing the results of all parts of the lab.
The Stack. Lecture 15: The Stack. The Stack. Adding Elements. What is it? What is it used for?
Lecture 15: The Stack The Stack What is it? What is it used for? A special memory buffer (outside the CPU) used as a temporary holding area for addresses and data The stack is in the stack segment. The
More informationLecture 16: Passing Parameters on the Stack. Push Examples. Pop Examples. CALL and RET
Lecture 1: Passing Parameters on the Stack Push Examples Quick Stack Review Passing Parameters on the Stack Binary/ASCII conversion ;assume SP = 0202 mov ax, 124h push ax push 0af8h push 0eeeh EE 0E F8
More informationComputer Architecture 1 ح 303
Lecture 4 A. Addressing MODES 1. Introduction to assembly language programming: Program is a sequence of commands used to tell a microcomputer what to do. Each command in a program is an instruction Programs
More informationExperiment 8 8 Subroutine Handling Instructions and Macros
Introduction Experiment 8 8 Subroutine Handling Instructions and Macros In this experiment you will be introduced to subroutines and how to call them. You will verify the exchange of data between a main
More informationComputer Architecture and System Software Lecture 06: Assembly Language Programming
Computer Architecture and System Software Lecture 06: Assembly Language Programming Instructor: Rob Bergen Applied Computer Science University of Winnipeg Announcements Assignment 3 due thursday Midterm
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 informationORG ; TWO. Assembly Language Programming
Dec 2 Hex 2 Bin 00000010 ORG ; TWO Assembly Language Programming OBJECTIVES this chapter enables the student to: Explain the difference between Assembly language instructions and pseudo-instructions. Identify
More informationComputer Architecture and System Software Lecture 07: Assembly Language Programming
Computer Architecture and System Software Lecture 07: Assembly Language Programming Instructor: Rob Bergen Applied Computer Science University of Winnipeg Announcements New assembly examples uploaded to
More informationIntel 8086: Instruction Set
IUST-EE (Chapter 6) Intel 8086: Instruction Set 1 Outline Instruction Set Data Transfer Instructions Arithmetic Instructions Bit Manipulation Instructions String Instructions Unconditional Transfer Instruction
More informationPESIT Bangalore South Campus Hosur road, 1km before Electronic City, Bengaluru -100 Department of Electronics and Communication
USN 1 P E PESIT Bangalore South Campus Hosur road, 1km before Electronic City, Bengaluru -100 Department of Electronics and Communication INTERNAL ASSESSMENT TEST 1 Date : 26/02/2018 Marks: 40 Subject
More informationExperiment N o 3. Segmentation and Addressing Modes
Introduction: Experiment N o 3 Segmentation and Addressing Modes In this experiment you will be introduced to physical segmentation of the memory, and the logical segmentation of programs. You will also
More informationChapter 3: Addressing Modes
Chapter 3: Addressing Modes Chapter 3 Addressing Modes Note: Adapted from (Author Slides) Instructor: Prof. Dr. Khalid A. Darabkh 2 Introduction Efficient software development for the microprocessor requires
More informationSPRING TERM BM 310E MICROPROCESSORS LABORATORY PRELIMINARY STUDY
BACKGROUND Segment The "SEGMENT" and "ENDS" directives indicate to the assembler the beginning and ending of a segment and have the following format label SEGMENT [options] ;place the statements belonging
More informationSegmentation in Assembly Language Programming
1 2 Segmentation in General Segmentation in Assembly Language Programming UNIX programs have 3 segments Text segment Executable machine instructions Data segment Initialized data BSS segment (Block Started
More informationExperiment N o 3 Segmentation and Addressing Modes
Introduction: Experiment N o 3 Segmentation and Addressing Modes In this experiment you will be introduced to physical segmentation of the memory, and the logical segmentation of programs. You will also
More informationEC-333 Microprocessor and Interfacing Techniques
EC-333 Microprocessor and Interfacing Techniques Lecture 4 Addressing Modes Dr Hashim Ali Spring - 2018 Department of Computer Science and Engineering HITEC University Taxila Slides taken from Computer
More informationEEM336 Microprocessors I. Data Movement Instructions
EEM336 Microprocessors I Data Movement Instructions Introduction This chapter concentrates on common data movement instructions. 2 Chapter Objectives Upon completion of this chapter, you will be able to:
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 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 informationMicrocomputer Architecture..Second Year (Sem.2).Lecture(2) مدرس المادة : م. سندس العزاوي... قسم / الحاسبات
1) Input/output In computing, input/output or I/O, is the communication between an information processing system (such as a computer) and the outside world, possibly a human or another information processing
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 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 informationVARDHAMAN COLLEGE OF ENGINEERING (AUTONOMOUS) Shamshabad, Hyderabad
Introduction to MS-DOS Debugger DEBUG In this laboratory, we will use DEBUG program and learn how to: 1. Examine and modify the contents of the 8086 s internal registers, and dedicated parts of the memory
More informationExperiment N o 1. Introduction to Assembly Language Programming
Experiment N o 1 Introduction to Assembly Language Programming Introduction: The aim of this experiment is to introduce the student to assembly language programming, and the use of the tools that he will
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 informationSHEET-2 ANSWERS. [1] Rewrite Program 2-3 to transfer one word at a time instead of one byte.
SHEET-2 ANSWERS [1] Rewrite Program 2-3 to transfer one word at a time instead of one byte. TITLE PROG2-3 PURPOSE: TRANSFER 6 WORDS OF DATA PAGE 60,132.MODEL SMALL.STACK 64.DATA ORG 10H DATA_IN DW 234DH,
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 informationAssignment no:4 on chapter no :3 : Instruction set of 8086
Assignment no:4 on chapter no :3 : Instruction set of 8086 1) Describe any two string operation instruction of 8086 with syntax & one example of each. 1] REP: REP is a prefix which is written before one
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 information8086 INTERNAL ARCHITECTURE
8086 INTERNAL ARCHITECTURE Segment 2 Intel 8086 Microprocessor The 8086 CPU is divided into two independent functional parts: a) The Bus interface unit (BIU) b) Execution Unit (EU) Dividing the work between
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 informationCS401 - Computer Architecture and Assembly Language Programming Glossary By
CS401 - Computer Architecture and Assembly Language Programming Glossary By absolute address : A virtual (not physical) address within the process address space that is computed as an absolute number.
More informationBLDEA S V.P. DR. P.G. HALAKATTI COLLEGE OF ENGINEERING & TECHNOLOGY, VIJAYAPURA
EXPERIMENT NO.:- 1. BINARY SEARCH Work Space: Register Used Memory Address Data DI 10000H 11H 10001H 11H 10002H 22H 10003H 22H BX 10004H 33H 10005H 33H 10006H 44H 10007H 44H CX 10008H 55H 10009H 55H 24
More informationLABORATORY WORK NO. 7 FLOW CONTROL INSTRUCTIONS
LABORATORY WORK NO. 7 FLOW CONTROL INSTRUCTIONS 1. Object of laboratory The x86 microprocessor family has a large variety of instructions that allow instruction flow control. We have 4 categories: jump,
More informationMicroprocessor I, Spring 2007 Lab 2: Assembling and executing instructions with DEBUG software Due on 03/02/2007, 12:30pm EST
16.317 Microprocessor I, Spring 2007 Lab 2: Assembling and executing instructions with DEBUG software Due on 03/02/2007, 12:30pm EST Reference: Walter A. Triebel and Avtar Singh, Lab Manual to Accompany
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 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 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 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 informationExperiment #2. Addressing Modes and Data Transfer using TASM
2.0 Objective Experiment #2 Addressing Modes and Data Transfer using TASM The objective of this experiment is to learn various addressing modes and to verify the actions of data transfer. 2.1 Introduction
More informationObjectives. ICT106 Fundamentals of Computer Systems Topic 8. Procedures, Calling and Exit conventions, Run-time Stack Ref: Irvine, Ch 5 & 8
Objectives ICT106 Fundamentals of Computer Systems Topic 8 Procedures, Calling and Exit conventions, Run-time Stack Ref: Irvine, Ch 5 & 8 To understand how HLL procedures/functions are actually implemented
More informationPESIT Bangalore South Campus
INTERNAL ASSESSMENT TEST 2 Date : 02/04/2018 Max Marks: 40 Subject & Code : Microprocessor (15CS44) Section : IV A and B Name of faculty: Deepti.C Time : 8:30 am-10:00 am Note: Note: Answer any five complete
More informationTutorial Letter 103/3/2012 Computer Organization COS2621 Semesters 1 & 2
COS2621/103/3/2012 Tutorial Letter 103/3/2012 Computer Organization COS2621 Semesters 1 & 2 School of Computing Solutions to self tests Bar code 2 Self-test A Question 1 Alternative 1 Which one of the
More informationObjectives. Saving Interrupt Vectors. Writing a Custom Interrupt Handler. Examples of use of System functions for Input-Output and Interrupts
ICT106 Fundamentals of Computer Systems Week 11 Practical Examples of use of System functions for Input-Output and Interrupts Objectives To illustrate how to write interrupt service routine (ISR) for Intel
More informationExperiment N o 8. String Handling Instructions
Experiment N o 8 String Handling Instructions Introduction: In this experiment you will deal with string handling instructions, such as reading a string, moving a string from one memory location to another,
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 information6/20/2011. Introduction. Chapter Objectives Upon completion of this chapter, you will be able to:
Introduction Efficient software development for the microprocessor requires a complete familiarity with the addressing modes employed by each instruction. This chapter explains the operation of the stack
More informationWeek /8086 Microprocessor Programming II
Week 5 8088/8086 Microprocessor Programming II Quick Review Shift & Rotate C Target register or memory SHL/SAL 0 C SHR 0 SAR C Sign Bit 2 Examples Examples Ex. Ex. Ex. SHL dest, 1; SHL dest,cl; SHL dest,
More informationMidterm Exam #2 Answer Key
Midterm Exam #2 Answer Key Name: Student ID #: I have read and understand Washington State University s policy on academic dishonesty and cheating YOU Signed: Problem 1) Consider the following fragment
More informationTHE UNIVERSITY OF TRINIDAD & TOBAGO
THE UNIVERSITY OF TRINIDAD & TOBAGO FINAL ASSESSMENT/EXAMINATIONS DECEMBER 2012 Course Code and Title: Microprocessor Architecture & Interfacing Programme: Computer Engineering Technician Date and Time:
More informationToday s Menu. >Use the Internal Register(s) >Use the Program Memory Space >Use the Stack >Use global memory
Today s Menu Methods >Use the Internal Register(s) >Use the Program Memory Space >Use the Stack >Use global memory Look into my See examples on web-site: ParamPassing*asm and see Methods in Software and
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 informationMicroprocessor and Assembly Language Week-5. System Programming, BCS 6th, IBMS (2017)
Microprocessor and Assembly Language Week-5 System Programming, BCS 6th, IBMS (2017) High Speed Memory Registers CPU store data temporarily in these location CPU process, store and transfer data from one
More informationModule 3 Instruction Set Architecture (ISA)
Module 3 Instruction Set Architecture (ISA) I S A L E V E L E L E M E N T S O F I N S T R U C T I O N S I N S T R U C T I O N S T Y P E S N U M B E R O F A D D R E S S E S R E G I S T E R S T Y P E S O
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 informationLABORATORY 1: EXPLORING THE SOFTWARE ARCHITECTURE OF THE MICROPROCESSOR
LABORATORY 1: EXPLORING THE SOFTWARE ARCHITECTURE OF THE 80 86 MICROPROCESSOR NAME: STUDENT ID#: Objectives Learn how to: Bring up the DEBUG program. Examine and modify the contents of the 80 86 s code
More informationLecture (07) x86 programming 6
Lecture (07) x86 programming 6 By: Dr. Ahmed ElShafee 1 The Flag Register 31 21 20 19 18 17 16 14 13 12 11 10 9 8 7 6 4 2 0 ID VIP VIF AC VM RF NT IOP 1 IOP 0 O D I T S Z A P C 8088/8086 80286 80386 80486
More information2. (a) Draw and explain the pin out diagram of (b) Explain the various operations performed by Bus Interfacing unit in 8086.
Code No: RR420303 Set No. 1 IV B.Tech II Semester Supplimentary Examinations, May 2008 MICROPROCESSORS (Mechanical Engineering) Time: 3 hours Max Marks: 80 Answer any FIVE Questions All Questions carry
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 informationELEC 242 Using Library Procedures
ELEC 242 Using Library Procedures There are a number of existing procedures that are already written for you that you will use in your programs. In order to use the library procedures that come with the
More informationEC 333 Microprocessor and Interfacing Techniques (3+1)
EC 333 Microprocessor and Interfacing Techniques (3+1) Lecture 7 8086/88 Microprocessor Programming (Data Movement Instructions) Dr Hashim Ali Spring 2018 Department of Computer Science and Engineering
More informationDepartment of Computer Science and Engineering
Department of Computer Science and Engineering QUESTION BANK Subcode/Subject : CS1304 Microprocessor & Microcontroller Year/Sem: III / V UNIT I THE 8085 MICROPROCESSOR PART A ( 2Marks) 1. How AD0-AD7 are
More informationSummer 2003 Lecture 4 06/14/03
Summer 2003 Lecture 4 06/14/03 LDS/LES/LSS General forms: lds reg,mem lseg reg,mem Load far pointer ~~ outside of current segment {E.g., load reg w/value @ mem, & seg w/mem+2 XCHG Exchange values General
More informationMr. Sapan Naik 1. Babu Madhav Institute of Information Technology, UTU
5 Years Integrated M.Sc.(IT) Semester 4 060010402 System Programming Question Bank Unit 1: Introduction 1. Write the decimal equivalent for each integral power of 2 from 2! to 2!". 2. Convert the following
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 information3.1 DATA MOVEMENT INSTRUCTIONS 45
3.1.1 General-Purpose Data Movement s 45 3.1.2 Stack Manipulation... 46 3.1.3 Type Conversion... 48 3.2.1 Addition and Subtraction... 51 3.1 DATA MOVEMENT INSTRUCTIONS 45 MOV (Move) transfers a byte, word,
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 informationComputer Processors. Part 2. Components of a Processor. Execution Unit The ALU. Execution Unit. The Brains of the Box. Processors. Execution Unit (EU)
Part 2 Computer Processors Processors The Brains of the Box Computer Processors Components of a Processor The Central Processing Unit (CPU) is the most complex part of a computer In fact, it is the computer
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 informationMicroprocessors ( ) Fall 2010/2011 Lecture Notes # 15. Stack Operations. 10 top
Microprocessors (0630371) Fall 2010/2011 Lecture Notes # 15 Stack Operations Objectives of the Lecture Runtime Stack PUSH Operation POP Operation Initializing the Stack PUSH and POP Instructions Stack
More information16.317: Microprocessor Systems Design I Fall 2013
16.317: Microprocessor Systems Design I Fall 2013 Exam 2 Solution 1. (20 points, 5 points per part) Multiple choice For each of the multiple choice questions below, clearly indicate your response by circling
More informationLesson 1. Fundamentals of assembly language
Lesson 1. Fundamentals of assembly language Computer Structure and Organization Graduate in Computer Sciences Graduate in Computer Engineering Graduate in Computer Sciences Graduate in Computer Engineering
More informationComputer Organization & Assembly Language Programming. CSE 2312 Lecture 15 Addressing and Subroutine
Computer Organization & Assembly Language Programming CSE 2312 Lecture 15 Addressing and Subroutine 1 Sections in 8088 Code TEXT section, for the processor instructions. DATA section for the initialization
More informationData Movement Instructions
Segment 3B Data Movement Instructions PUSH/POP Contents Load-Effective address (LEA, LDS, LES) String Data Transfer (LODS, STOS, MOVS) XCHG, XLAT IN and OUT Course Instructor Mohammed Abdul kader Lecturer,
More informationExperiment 3 3 Basic Input Output
Experiment 3 3 Basic Input Output Introduction The aim of this experiment is to introduce the use of input/output through the DOS interrupt. Objectives: INT Instruction Keyboard access using DOS function
More informationEXPERIMENT WRITE UP. LEARNING OBJECTIVES: 1. Get hands on experience with Assembly Language Programming 2. Write and debug programs in TASM/MASM
EXPERIMENT WRITE UP AIM: Assembly language program for 16 bit BCD addition LEARNING OBJECTIVES: 1. Get hands on experience with Assembly Language Programming 2. Write and debug programs in TASM/MASM TOOLS/SOFTWARE
More informationChapter 3. Assembly Language Programming with 8086
Chapter 3 Assembly Language Programming with 8086 UNIT - III Assembly Language Programming with 8086- Machine level programs, Machine coding the programs, Programming with an assembler, Assembly Language
More informationLesson 4. Stack, Procedures and Macros
Lesson 4. Stack, Procedures and Macros Computer Structure and Organization Graduated in Computer Sciences / Graduated in Computer Engineering Graduated in Computer Sciences / Graduated in Computer Engineering
More informationMarking Scheme. Examination Paper Department of CE. Module: Microprocessors (630313)
Philadelphia University Faculty of Engineering Marking Scheme Examination Paper Department of CE Module: Microprocessors (630313) Final Exam Second Semester Date: 02/06/2018 Section 1 Weighting 40% of
More informationCS401 Assembly Language Solved Subjective MAY 03,2012 From Midterm Papers. MC
CS401 Assembly Language Solved Subjective MAY 03,2012 From Midterm Papers MC100401285 Moaaz.pk@gmail.com Mc100401285@gmail.com PSMD01 MIDTERM FALL 2011 CS401 Assembly Language Q: Affected flag of AND operation
More informationAssembly Language. Dr. Esam Al_Qaralleh CE Department Princess Sumaya University for Technology. Overview of Assembly Language
4345 Assembly Language Assembly Language Dr. Esam Al_Qaralleh CE Department Princess Sumaya University for Technology Assembly Language 3-1 Overview of Assembly Language Advantages: Faster as compared
More informationEx: Write a piece of code that transfers a block of 256 bytes stored at locations starting at 34000H to locations starting at 36000H. Ans.
INSTRUCTOR: ABDULMUTTALIB A H ALDOURI Conditional Jump Cond Unsigned Signed = JE : Jump Equal JE : Jump Equal ZF = 1 JZ : Jump Zero JZ : Jump Zero ZF = 1 JNZ : Jump Not Zero JNZ : Jump Not Zero ZF = 0
More informationEEM336 Microprocessors I. Addressing Modes
EEM336 Microprocessors I Addressing Modes Introduction Efficient software development for the microprocessor requires a complete familiarity with the addressing modes employed by each instruction. This
More information16-Bit Intel Processor Architecture
IBM-PC Organization 16-Bit Intel Processor Architecture A-16 bit microprocessor can operate on 16 bits of data at a time. 8086/8088 have the simplest structure 8086/8088 have the same instruction set,
More informationComputer Organization and Assembly Language. Lab Session 4
Lab Session 4 Objective: Learn how Data is represented in Assembly Language Introduction to Data Types and using different Data Types in Assembly language programs Theory: The basic machine data types
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 informationCC411: Introduction To Microprocessors
CC411: Introduction To Microprocessors OBJECTIVES this chapter enables the student to: Describe the Intel family of microprocessors from 8085 to Pentium. In terms of bus size, physical memory & special
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 informationMAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION (Autonomous) (ISO/IEC Certified) WINTER 2018 EXAMINATION MODEL ANSWER
Important Instructions to examiners: 1) The answers should be examined by key words and not as word-to-word as given in the model answer scheme. 2) The model answer and the answer written by candidate
More informationEXPERIMENT 1. FAMILIARITY WITH DEBUG, x86 REGISTERS and MACHINE INSTRUCTIONS
EXPERIMENT 1 FAMILIARITY WITH DEBUG, x86 REGISTERS and MACHINE INSTRUCTIONS Pre-lab: This lab introduces you to a software tool known as DEBUG. Before the lab session, read the first two sections of chapter
More informationBasic characteristics & features of 8086 Microprocessor Dr. M. Hebaishy
Basic characteristics & features of 8086 Microprocessor Dr. M. Hebaishy Digital Logic Design Ch1-1 8086 Microprocessor Features: The 8086 microprocessor is a 16 bit microprocessor. The term 16 bit means
More informationSPRING TERM BM 310E MICROPROCESSORS LABORATORY PRELIMINARY STUDY
BACKGROUND 8086 CPU has 8 general purpose registers listed below: AX - the accumulator register (divided into AH / AL): 1. Generates shortest machine code 2. Arithmetic, logic and data transfer 3. One
More informationPhiladelphia University Student Name: Student Number:
Philadelphia University Student Name: Student Number: Faculty of Engineering Serial Number: Final Exam, Second Semester: 2016/2017 Dept. of Computer Engineering Course Title: Microprocessors Date: 12/06/2017
More informationAssembly Language Lab #5
Islamic University of Gaza Computer Engineering Department 2009 Assembly Language Lab #5 Eng. Tahani Z. Fourah Islamic University of Gaza Lab 5 Addressing Modes The addressing modes are different ways
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 informationCS401 Assembly Language Solved MCQS From Midterm Papers
CS401 Assembly Language Solved MCQS From Midterm Papers May 14,2011 MC100401285 Moaaz.pk@gmail.com MC100401285@gmail.com PSMD01(IEMS) Question No:1 ( Marks: 1 ) - Please choose one The first instruction
More information17. Instruction Sets: Characteristics and Functions
17. Instruction Sets: Characteristics and Functions Chapter 12 Spring 2016 CS430 - Computer Architecture 1 Introduction Section 12.1, 12.2, and 12.3 pp. 406-418 Computer Designer: Machine instruction set
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 informationKingdom of Saudi Arabia Ministry of Higher Education. Taif University. Faculty of Computers & Information Systems
Kingdom of Saudi Arabia Ministry of Higher Education Taif University Faculty of Computers & Information Systems المملكة العربية السعودية وزارة التعليم العالي جامعة الطاي ف آلية الحاسبات ونظم المعلومات
More informationLAB 3: Programming in Assembly Language
INTERNATIONAL ISLAMIC UNIVERSITY OF MALAYSIA Kulliyyah Of Engineering Department Of Electrical Engineering ELECTRICAL AND COMPUTER ENGINEERING LAB II (ECE 2202) Name: Matric Number: Group: Section: Date:
More information