EXPERIMENT TWELVE: USING DISK FILES
|
|
- Meagan Ray
- 5 years ago
- Views:
Transcription
1 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, append, and close disk files. It also details the use of the file handle, which also functions to read and write data to the computer console (keyboard and display). Disk files are first accessed by file name to determine the file handle. Once the file handle is obtained, they are then referenced through the handle to speed the operation of DOS. Files are accessed on the floppy disk drive or hard disk drive in any directory or subdirectory. OBJECTIVES 1. Create a disk file and write data to it using assembly language instructions and DOS function calls. 2. Read any part of a disk file using the move file pointer function available from DOS. 3. Append a file with new data using the move file pointer and write functions available from DOS. PROCEDURE As with a filing cabinet, a DOS disk file must be opened before it can be read or written and then closed once access is complete. If a new file is needed, it is created, which also opens it, then it is written, and closed. As with other features of the personal computer, the DOS functions are used to accomplish these tasks. Example 12-1 lists a macro that creates a file and saves the file handle (used to refer to the file until it is closed) in a word-sized memory location. The _CREAT macro also contains another parameter that indicates the data segment offset address of the ASCII-coded file name. Both the offset address of the file name and the location of the file handle must be stored in the data segment as addressed by DS. Note that DOS returns the file handle in AX. Example 12-1 _CREAT MACRO HANDLE,FNAME ;create FNAME, save HANDLE MOV AH,3CH ;;create function number XOR CX,CX ;;make it read/write MOV DX,OFFSET FNAME
2 MOV HANDLE,AX ;;save HANDLE STEP 1: Add this macro to the macro file MACS.INC on your floppy disk. It will shortly be used to create a disk file. Once a file is created, it often has data written to it. Example 12-2 shows a macro sequence that writes data to a file. Its also shows a macro that closes the file. These macros also use the HANDLE stored by the create macro to access the file. This allows the simultaneous use of multiple files. The write macro also contains a parameter that indicates the number of bytes to be written (1 to 64K) and the offset location of a buffer containing information to be written. Note that the file handle and the buffer must both be located within the data segment to use these macros. Example 12-2 _WRITE _CLOSE MACRO HANDLE,BUFFER,COUNT MOV AH,40H ;;file write function MOV BX,HANDLE MOV CX,COUNT MOV DX,OFFSET BUFFER MACRO HANDLE MOV AH,3EH ;;file close function MOV BX,HANDLE All three macros presented thus far in this experiment detect errors. If an error occurs, the carry flag = 1 to indicate an error. Because the scope and nature of the errors can vary, none of these macros handle the error conditions. It is the responsibility of the program that invokes the macro to handle the error with a JC (jump if carry = 1) instruction following the macro call. Extended information detailing the exact nature of an error is obtained by using DOS, function 59H. This function also suggests recommended actions for the error through a number returned in BL. For additional detail on function 59H see Appendix B. STEP 2: Add the _WRITE and _CLOSE macros to your macro file for later use in this experiment. Example 12-3 shows a short program that creates a file on floppy disk A in the root directory and then closes it. Notice that this program uses a single segment. The data segment register is loaded with the code segment address to place the data segment on top of the code segment. Example 12-3
3 CODE SEGMENT 'code' ;indicate start of CODE segment ASSUME CS:CODE ;indicate that CODE is CS INCLUDE MACS.INC ;include macro file HAN1 DW? NAME1 DB 'A:\MYFILE.TST',0 MAIN PROC FAR ;indicate start of MAIN procedure MOV AX,CS MOV DS,AX _CREAT HANI,NAME1 _CLOSE HAN 1 ;make DS = CS ;create MYFILE.TST ;close MYFILE.TST _EXIT MAIN ENDP ;indicate end of MAIN procedure CODE ENDS ;indicate end of CODE segment END MAIN ;indicate end of file and start Notice how the file name is stored in this example as an ASCII-Z string. An ASCII-Z string always ends with a zero or null instead of a carriage return, line feed combination, or a dollar sign. The file name must be stored as an ASCII-Z string for all DOS file functions. Also notice that the word-size data is stored before the byte-sized data. This is important to the microprocessor so word-sized data are stored at a word-sized memory boundary. If doubleword data are also present, it would be declared before word-sized data. The microprocessor executes and uses data in any order, but not as efficiently as when ordered with doubleword data first, followed by word data, and then byte data. This can be forced if the order is different by using the ALIGN directive. An ALIGN 4, for example, aligns data on a doubleword-sized boundary. This program does not detect any errors, so make sure that a formatted disk is in drive A before execution. STEP 3: Enter and assemble the program from Example 12-3 and execute it. Note that you may need to include a path with the INCLUDE statement if your MACS.INC file is not stored in the current default directory. Place a floppy disk into drive A and execute the program. A directory of drive A should reveal the file MYPROG.TST with zero bytes of data after execution. STEP 4: Now that macros are available for creating ( _CREAT), writing ( _WRITE) and closing a file ( _CLOSE), write a program that creates the file FROG.JMP in the root directory of drive A. Store five bytes of data (48H, 65H, 6CH, 6CH, and 6FH) in this file, and then close it. The data must be stored in the data segment using either the DB directive or the BYTE directive. Execute this program and then check to see if drive A contains the file. A is displayed when the TYPE A:\FROG.JMP command is typed at the DOS prompt. Now that a file is created and written to, the open and read functions are discussed. Note that when a file is created using DOS, function number 3CH, no check is made to see if it already exists. An existing file with the same name will be erased. If this is
4 bothersome, DOS, function number 5BH can be used. Function 5BH works exactly as function 3CH except it first checks to see if the file is present and if so returns with carry = 1 without erasing it. Example 12-4 shows the _READ and _OPEN macros that are used to read bytes (up to 64K bytes at a time) of data from a file and open an existing file for a read or write operation. As before these macros include the HANDLE parameter to specify the file handle. The _OPEN macro also includes the file name (FNAM) parameter that addresses the ASCII-Z string in DS for the file name. The _READ macro contains a BUFFER and COUNT parameter to transfer the offset address of a memory area in the data segment to read the file data to and the number of bytes (1 to 64K) to be read from the file. Example 12-4 _OPEN MACRO HANDLE,FNAM ;open file FNAM, and save HANDLE MOV AX,3D02H ;;open read/write file MOV DX,OFFSET FNAM MOV HANDLE,AX ;;save handle _READ MACRO HANDLE,BUFFER,COUNT MOV AH,3FH MOV BX,HANDLE MOV CX,COUNT MOV DX,OFFSET BUFFER ;read file to BUFFER STEP 5: Using the _OPEN and _READ macros, develop a program that reads the FROG.JMP file, created in STEP 4, and display its contents on the video display using DOS, function number 09H. Don't forget that this function requires that a character string must end with a 24H ($). Now that a file exists containing data, FROG.JMP, we add to the file by appending it with new information. When a file is opened, the file pointer addresses the first byte of the file. If a file is opened and new data are written, it overwrites the current contents of the file. To avoid this, the move file pointer function (DOS, function 42H) is used to move the file pointer to the end of the file before writing new information. Example 12-5 lists a macro called _ENDF, which moves the file pointer to the end of the file. As with other file macros, a HANDLE is included to identify the file. Example 12-5 _ENDF MACRO HANDLE ;move file pointer to end of file MOV AX,4202H ;;move file pointer function XOR CX,CX XOR DX,DX MOV BX,HANDLE
5 The move file pointer performs three different types of file pointer moves: (1) if AL = 0, the file pointer is moved from the start of the file, (2) if AL = 1, the file pointer is moved from its current position, and (3) if AL = 2 (as in Example 12-5), the file pointer is moved from the end of the file. The number of bytes the file pointer is moved is determined by the 32-bit number located in the CX (leftmost 16 bits) and DX (rightmost 16 bits) registers. Note that the macro in Example 12-5 uses a count of zero in CX and DX and uses move the file pointer from the end of the file. This macro, in other words, moves the file pointer to the end of the file so it can be appended with new information. STEP 6: Write a program that opens FROG.JMP, moves the file pointer to the end of the file, and then appends the file with a space followed by your name. Enter, assemble, and execute this program. If you use the TYPE A: \FROG. JMP command at the DOS prompt, the computer should greet you with the salutation Hello if the program functions correctly. STEP 7: Write a program that modifies the data in FROG.JMP and places the word there between the word Hello and your name. Create a file called FROG.TST and write this new information to FROG.TST. Do not change FROG.JMP. Enter, assemble, and execute this program and then use the TYPE command at the DOS prompt to verify its correct operation. Enter and execute the following program (Example 12-6) to create a data file for the next portion of this experiment. This program creates a file called TEST.DAT that contains 128K (131,072) bytes of information. Note that a path may need to be included for the file name TEST.DAT and also for the MACS.INC macro file. Example 12-6 CODE SEGMENT 'code' ;indicate start of CODE segment ASSUME CS:CODE ;indicate that CS = CODE INCLUDE MACS.INC ;include your macro file HAN DW? ;file handle NAM DB 'TEST.DAT',0 ;file name BUF DB 256 DUP (?) ;data buffer MAIN PROC FAR ;start MAIN procedure MOV AX,CS ;make DS = CS MOV DS,AX MOV ES,AX ;make ES = CS CLD ;select autoincrement _CREAT HAN,NAM ;create TEST.DAT file MAIN1: MOV BP,512 ;number of 256 byte writes needed MOV AX,BP ;generate 256 bytes of test data MOV CX,256 ;set count MOV DI,OFFSET BUF
6 REP STOSB _WRITE HAN,BUF,256 ;write 256 bytes DEC BP JNZ MAIN1 ;repeat 512 times _CLOSE HAN _EXIT ;close TEST.DAT file ;exit to DOS MAIN ENDP ;end of MAIN CODE ENDS ;end of CODE END MAIN STEP 8: Write a program that searches TEST.DAT for any 256 byte section that contains 41H in each location. Create a new file called TEST.DET where you will store the sections from file TEST.DAT that contain 41H data. Note that when a file is read with the READ macro, the number of bytes actually read are returned in AX. This is used in this program to determine when the end of the TEST.DAT file is reached. Enter, assemble, and execute your program. To see if it has functioned correctly, use the TYPE command at the DOS prompt to display the contents of TEST.DET. What is observed on the video screen? While discussing handles and files, earlier it was mentioned that direct access to the computer console is available through a file handle. Table 12-1 lists the file handles used by DOS as defaults for various system devices. Table DOS default handles. Handle number 0000H 0001H 0002H 0003H 0004H Function reads the keyboard (CON:) display on the video display (CON:) error display (CON:) uses the COM1 port (AUX:) uses the printer port (PRN:) The macros presented in this experiment are used to address the video display ( _WRITE) or the console keyboard ( _READ) if the correct handle is provided to the macro. They can also address the COM port (the port number can be changed with the DOS MODE command, or the parallel printer port (PRN), which is usually LPT1. Example 12-7 lists a short program that displays a message on the video display by using the handle (0001H) for the display with the _WRITE macro. Note that the _WRITE macro in this program uses a handle of 1 to display the contents of MES. Also note how the number of bytes to write are determined by taking the difference of DUMMY-MES. Example 12-7
7 CODE SEGMENT 'code' ;indicate start of code segment ASSUME CS:CODE ;identify CODE as CS INCLUDE MACS.INC MES DB 13,10,'This is interesting!' DUMMY DB? MAIN PROC FAR ;start main procedure MOV AX,CS MOV DS,AX _WRITE 1,MES,DUMMY-MES _EXIT MAIN CODE ENDP ENDS END MAIN STEP 9: Write a program that displays two lines of information of your own choosing on the video display with the WRITE macro. If a printer is available on the LPT1 line printer port, change the handle to 4 and try running the program again to print data. QUESTIONS Refer to the Appendix A, the DOS functions, and describe the options available in the CX register for the create function (3CH) Can the DOS file creation function be used to create a new directory name? If so, how? Explain why a file must be closed, especially after a write operation How can more that 64K byte of data be written to a file? What is an ASCII-Z string? How is an error indicated by the DOS file functions? What is the file pointer? Write a macro called _TOPF that moves the file pointer to the start of a file.
8 12-9. Write a program that creates two new file (UP.DAT and DOWN.DAT). Write a 02H into each of the 256 bytes of the UP.DAT file and a 03H into each of the 256 bytes of the DOWN. DAT file Using the file handle for the keyboard, develop a macro that reads one character from the keyboard. Call your new macro _KEYF
EXPERIMENT NINE DEVELOPING MACRO SEQUENCES
EXPERIMENT NINE DEVELOPING MACRO SEQUENCES INTRODUCTION Although not essential to programming, macro sequences relieve the programmer of retyping the same instructions and also allow additional instructions
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 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 informationAssembly Language for Intel-Based Computers, 4 th Edition. Chapter 13: 16-Bit MS-DOS Programming
Assembly Language for Intel-Based Computers, 4 th Edition Kip R. Irvine Chapter 13: 16-Bit MS-DOS Programming (c) Pearson Education, 2002. All rights reserved. Chapter Overview MS-DOS and the IBM-PC MS-DOS
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 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 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 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 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 informationProgramming in Module. Near Call
Programming in Module Main: sub1: call sub1 sub ax,ax sub1 sub1 proc near sub ax,ax endp sub1 sub1 proc Far sub ax,ax endp Near Call sub1 sub1 Main: call sub1 sub1: sub ax,ax proc near sub ax,ax endp SP
More informationUnit 5 DOS INTERRPUTS
Unit 5 DOS INTERRPUTS 5.1 Introduction The DOS (Disk Operating System) provides a large number of procedures to access devices, files and memory. These procedures can be called in any user program using
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 informationΡουτίνες Λειτουργίας (DOS function calls)
Ρουτίνες Λειτουργίας (DOS function calls) Παρακάτω ακολουθεί µία λίστα αυτών των AH κωδικών µε τα ονόµατα της ρουτίνας λειτουργίας (DOS function calls). 00H 01H 02H 03H 04H 05H 06H 07H 08H 09H TERMINATE
More informationCONTENTS. 1. Display a Message Display a one Digit Number Accept a Character from keyboard and display the character 4
University of Kashmir, North Campus Course Code Course Name Course Instructor MCA-104-DCE Assembly Language Programming Bilal Ahmad Dar CONTENTS 1. Display a Message 2 2. Display a one Digit Number 3 3.
More informationCOE 205 Lab Manual Experiment N o 12. Experiment N o Using the Mouse
Experiment N o 12 12 Using the Mouse Introduction The mouse is an I/O device that replaces the arrow keys on the keyboard for graphical and text style programs. This experiment shows how to add the mouse
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 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 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 informationSPRING TERM BM 310E MICROPROCESSORS LABORATORY PRELIMINARY STUDY
BACKGROUND Interrupts The INT instruction is the instruction which does the most work in any assembler program. What it does is it calls a DOS interrupt (like a function) to perform a special task. When
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 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 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 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 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 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 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 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 informationA4 Sample Solution Ch3
A4 Sample Solution Ch3 2. AL, AH, BL, BH,CL,CH,DLl, DH 3. AX, BX, CX, DX, SP, BP, SI, DI, CS, DS, ES, SS, FS, GS 4. EAX, EBX, ECX, EDX, ESP, EBP, EDI, ESI 5. RAX, RBX, RCX, RDX, RSP, RBP, RSI, RDI and
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 informationLecture 13: I/O I/O. Interrupts. How?
Lecture 13: I/O I/O Interrupts MS-DOS Function Calls Input,Output, File I/O Video Keyboard Getting data into your program: define it in the data area use immediate operands Very limiting Most programs
More informationAssembly Language for Intel-Based Computers, 4 th Edition
Assembly Language for Intel-Based Computers, 4 th Edition Kip R. Irvine Chapter 13: 16-Bit MS-DOS Programming Interrupts Slide show prepared by Kip R. Irvine, Revision date: 08/04/02 Modified by Dr. Nikolay
More informationCSCI516: Program 1 - October 11, 2010 The Program is due: October 25, 2010 in the beginning of the class
CSCI516: Program 1 - October 11, 2010 The Program is due: October 25, 2010 in the beginning of the class For Late Submissions 10 out of 100 points will be taken off. For your first program, you are to
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 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 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 information16-bit MS-DOS and BIOS Programming
CS2422 Assem bly Language and System Programming 16-bit MS-DOS and BIOS Programming Department of Computer Science National Tsing Hua University Overview Chapter 13: 16-bit MS-DOS Programming MS-DOS and
More informationAssembly Language Each statement in an assembly language program consists of four parts or fields.
Chapter 3: Addressing Modes Assembly Language Each statement in an assembly language program consists of four parts or fields. The leftmost field is called the label. - used to identify the name of a memory
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 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 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 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 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 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 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 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 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 informationDOS INT 21h - DOS Function Codes
Back To Home DOS INT 21h - DOS Function Codes The follow abridged list of DOS interrupts has been extracted from a large list compiled by Ralf Brown. These are available on any Simtel mirror (e.g. sunsite.anu.edu.au)
More informationAssembly Language for Intel-Based Computers, 4 th Edition
Assembly Language for Intel-Based Computers, 4 th Edition Kip R. Irvine Chapter 3: Assembly Language Fundamentals Assembling, Linking and Running Programs Example Programs Slides prepared by Kip R. Irvine
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 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 informationCode segment Stack segment
Registers Most of the registers contain data/instruction offsets within 64 KB memory segment. There are four different 64 KB segments for instructions, stack, data and extra data. To specify where in 1
More informationProposed Common Configuration Method
Proposed Common Configuration Method July 9, 1991 The Common Configuration Method (CCM) simplifies configuration of disks and other storage devices. This definition includes a Standard AT Compatible Register
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 informationELEC 242 Time Delay Procedure
There are many occasions where we wish to time events. If we are using a personal computer, we have a number of ways to do this. The 8088/8086 computer had a Programmable Interval Timer like the 8253/54
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 informationINTRODUCTION. NOTE Some symbols used in this manual CL = Click Left CR = Click Right DCL = Double Click Left = Enter. Page 1
INTRODUCTION OBJECTIVE The purpose of this manual is to provide the student with practical experience in the writing of assembly language programs, and give them background and instructions on how to use
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 informationProgramming in Assembler. Laboratory manual. Exercise 3
Zakład Mikroinformatyki i Teorii Automatów Cyfrowych Programming in Assembler Laboratory manual Exercise 3 Simple MS-DOS program assembling and debugging 2008,2011 Krzysztof Tokarz, Piotr Czekalski (edt.)
More informationString Processing. Chapter 9 S. Dandamudi
String Processing Chapter 9 S. Dandamudi Outline String representation Using string length Using a sentinel character String instructions Repetition prefixes Direction flag String move instructions String
More informationCS/ECE/EEE/INSTR F241 MICROPROCESSOR PROGRAMMING & INTERFACING MODULE 4: 80X86 INSTRUCTION SET QUESTIONS ANUPAMA KR BITS, PILANI KK BIRLA GOA CAMPUS
CS/ECE/EEE/INSTR F241 MICROPROCESSOR PROGRAMMING & INTERFACING MODULE 4: 80X86 INSTRUCTION SET QUESTIONS ANUPAMA KR BITS, PILANI KK BIRLA GOA CAMPUS Q1. IWrite an ALP that will examine a set of 20 memory
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 information8086 INSTRUCTION SET
8086 INSTRUCTION SET 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
More informationCOMPUTER ENGINEERING DEPARTMENT
Page 1 of 11 COMPUTER ENGINEERING DEPARTMENT December 31, 2007 COE 205 COMPUTER ORGANIZATION & ASSEMBLY PROGRAMMING Major Exam II First Semester (071) Time: 7:00 PM-9:30 PM Student Name : KEY Student ID.
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 informationSummer 2003 Lecture 26 07/24/03
Summer 2003 Lecture 26 07/24/03 Organization of Data on the Disk The logical organization of the FAT file system on a disk is made up of the following elements. BOOT Sector Root Directory Structure File
More informationCertified Ethical Hacker. Module 25 Writing Virus Codes
Certified Ethical Hacker Module 25 Writing Virus Codes Module Objective This module will familiarize you with the following: Introduction of viruses Prerequisites for virus writing Tools required for virus
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 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 informationADVANCE MICROPROCESSOR & INTERFACING
VENUS INTERNATIONAL COLLEGE OF TECHNOLOGY Gandhinagar Department of Computer Enggineering ADVANCE MICROPROCESSOR & INTERFACING Name : Enroll no. : Class Year : 2014-15 : 5 th SEM C.E. VENUS INTERNATIONAL
More informationLecture (08) x86 programming 7
Lecture (08) x86 programming 7 By: Dr. Ahmed ElShafee 1 Conditional jump: Conditional jumps are executed only if the specified conditions are true. Usually the condition specified by a conditional jump
More informationCHAPTER SEVENTEEN Assemblers versus Compilers. Intel 80x86 Assembly Language
CHAPTER SEVENTEEN Intel 80x86 Assembly Language In Chapter 15, we developed a generic assembly language and its associated machine code. This language was presented to create a few simple programs and
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 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 informationTransfer of Control. Lecture 10 JMP. JMP Formats. Jump Loop Homework 3 Outputting prompts Reading single characters
Lecture 10 Jump Loop Homework 3 Outputting prompts Reading single characters Transfer of Control The CPU loads and executes programs sequentially. You d like to be able to implement if statements, gotos,
More informationMicroprocessors (A) DOS Services
1 Services 2 System Calls Operating System services: Disk and file system management Screen display and printing Keyboard entry Other I/O management Date and time Program run and terminate Command arguments
More informationThe registers(di,si) are automatically incremented or decremented depending on the value of the direction flag:
String Instructions String instructions were designed to operate on large data structures. The SI and DI registers are used as pointers to the data structures being accessed or manipulated. The operation
More informationCopyright 2000 by Barry B. Brey The CPU Scheduling Processes
Copyright 2000 by Barry B. Brey The CPU Scheduling Processes One method used to schedule processes in a small real-time operating system (RTOS) is via a time slice to switch between various processes.
More informationINSTRUCTOR: ABDULMUTTALIB A. H. ALDOURI
Note: PUSHF / POPF have no operands The figure below shows that if (SS) = 3000H, (SP) = 0042H, so the execution of POP CX loads CX by the word 4050H form the stack segment. The SP is incremented by 2.
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 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 to search a number in given array. LEARNING OBJECTIVES: 1. Get hands on experience with Assembly Language Programming 2. Write and debug programs in TASM/MASM
More informationEE 314 Spring 2003 Microprocessor Systems
EE 314 Spring 2003 Microprocessor Systems Laboratory Project #3 Arithmetic and Subroutines Overview and Introduction Review the information in your textbook (pp. 115-118) on ASCII and BCD arithmetic. This
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 informationWeek /8086 Microprocessor Programming I
Week 4 8088/8086 Microprocessor Programming I Example. The PC Typewriter Write an 80x86 program to input keystrokes from the PC s keyboard and display the characters on the system monitor. Pressing any
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 informationQ. 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 informationAssembly Language Lab # 12 Part A: Strings and Arrays Part B: Drawing Graphics Using INT 10h
Faculty of Engineering Computer Engineering Department Islamic University of Gaza 2011 Assembly Language Lab # 12 Part A: Strings and Arrays Part B: Drawing Graphics Using INT 10h Eng. Doaa Abu Jabal Objective:
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 informationPrograms for Assembly Language Programming
;Program to print lower case alphabets.stack 100 mov dl, 'a' mov cl, 26 print: mov ah, 02h inc dl loop print mov ah, 4ch Programs for Assembly Language Programming ;Program to printf upper case alphabets.stack
More informationWeek /8086 Microprocessor Programming
Week 5 8088/8086 Microprocessor Programming Multiplication and Division Multiplication Multiplicant Operand Result (MUL or IMUL) (Multiplier) Byte * Byte AL Register or memory Word * Word AX Register or
More informationQ1: Define a character string named CO_NAME containing "Internet Services" as a constant?
CS 321 Lab Model Answers ١ First Lab : Q1: Define a character string named CO_NAME containing "Internet Services" as a constant? ANS: CO_NAME EQU ' Internet Services' Q2: Define the following numeric values
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 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 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 informationFACULTY OF ENGINEERING LAB SHEET
FACULTY OF ENGINEERING LAB SHEET ECE366: ADVANCED MICROPROCESSORS TRIMESTER (08/09) AM: Real- Mode Programming *Note: On-the-spot evaluation may be carried out during or at the end of the experiment. Students
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 informationThe Boot: Getting ready for the OS
The Boot: Getting ready for the OS LISHA/UFSC Prof. Dr. Antônio Augusto Fröhlich guto@lisha.ufsc.br http://www.lisha.ufsc.br/guto March 2011 March 2011 (http://www.lisha.ufsc.br) 1 Where are we now? BIOS
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 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 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 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 information