Riyadh Philanthropic Society For Science Prince Sultan College For Woman Dept. of Computer & Information Sciences CS 251 Introduction to Computer Organization.

Slides:



Advertisements
Similar presentations
DOS and BIOS Interrupts DOS and BIOS interrupts are used to perform some very useful functions, such as displaying data to the monitor, reading data from.
Advertisements

Memory Address Segment-offset address Base location (segment) + logical location (offset) Example: For 32-bits segment-offset address, 08F1:0100 represents.
Memory model ModelDescription SMALLCode in one segment Data in one segment MEDIUMCode in > 1 segment Data in one segment COMPACTCode in one segment Data.
CEN 226: Computer Organization & Assembly Language :CSC 225 (Lec#4)
Set 20 Interrupts. INTERRUPTS The Pentium has a mechanism whereby external devices can interrupt it. Devices such as the keyboard, the monitor, hard disks.
Kip Irvine: Assembly Language for Intel-Based Computers Overview Stack Operations (PUSH and POP) Procedures Procedure Parameters Software Interrupts MS-DOS.
ICS312 Set 11 Introduction to Subroutines. All the combinations in which a subroutine can be written 1. The subroutine may be: a. Internal or b. External.
8.4 Instruction Execution Times TOBIN PROC FAR SUB AX,AX MOV DX,AX MOV CX,4 NEXTD: PUSH CX SUB BP,BP MOV CX,4 GETNUM: RCL BX,1 RCL BP,1 LOOP GETNUM.
Riyadh Philanthropic Society For Science Prince Sultan College For Woman Dept. of Computer & Information Sciences CS 251 Introduction to Computer Organization.
CEN 226: Computer Organization & Assembly Language :CSC 225 (Lec#8) By Dr. Syed Noman.
INTRODUCTION TO IBM PC ASSEMBLY LANGUAGE
INTRODUCTION TO IBM PC ASSEMBLY LANGUAGE
CEN 226: Computer Organization & Assembly Language :CSC 225 (Lec#6)
Assembly Programming Timothy C. Rice Jr., MIT. OUTLINE Basic Structure Exit to Dos Print Character Clear Screen Change BG & FG Color Set Curser Location.
Fundamentals of Assembly language
ICS312 Set 4 Program Structure. Outline for a SMALL Model Program Note the quiz at the next lecture will be to reproduce this slide.MODEL SMALL.586 ;
Lab 5 Part C Write to the screen a character string that uses a ‘$’ to indicate the end of the string. Do not write the ‘$’ to the screen. Use DOS Interrupt.
CEN 226: Computer Organization & Assembly Language :CSC 225 (Lec#7)
Introduction to Subroutines. All the combinations in which a subroutine can be written 1. The subroutine may be: a. Internal or b. External 2. The type.
BIOS1 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.
Chapter 3 Elements of Assembly Language. 3.1 Assembly Language Statements.
ASSEMBLY LANGUAGE. Assembler and Compiler Pascal A Program Compiler Version A Assembly Language Versiion A Machine Code Actual version that will be executed.
1/2002JNM1 Positional Notation (Hex Digits). 1/2002JNM2 Problem The 8086 has a 20-bit address bus. Therefore, it can access 1,048,576 bytes of memory.
BIOS and DOS Programming in DOS INT 10 and 21H. Interrupts There are some extremely useful subroutines within BIOS or DOS that are available to the user.
Introduction to 8086 Assembly Language Assembly Language Programming University of Akron Dr. Tim Margush.
Multiplication and Division Instructions & the 0Ah function.
Lecture 4 Presented By Dr. Shazzad Hosain Asst. Prof. EECS, NSU.
ICS312 Set 14 MACROS. Macros The program structure is similar to that for procedures. As for procedure names, macro names represent a group of instructions.
Chapter Five–80x86 Assembly program development Principles of Microcomputers 2015年11月15日 2015年11月15日 2015年11月15日 2015年11月15日 2015年11月15日 2015年11月15日 1.
Chapter 4 Requirements for Coding in Assembly Language.
Mid-term Exam Basics & intuitive All materials till-to-date – very simple! Ref. book – Assembly Language Programming and Organization of the IBM PC, by.
CEN 226: Computer Organization & Assembly Language :CSC 225 (Lec#9) By Dr. Syed Noman.
L AB 2. P ROGRAM STRUCTURE The assembly language program consist of code, data and stack. Data segment: contains all the variable definition..Data Code.
21/11/2005CAP2411 Input & Output Instructions CPU communicates with the peripherals through I/O registers called I/O ports. There are 2 instructions, IN.
Software Interrupt Instruction ‘int’ A ‘int’ instruction is like a special kind of subroutine call. Will discuss details later ‘int’ stands for INTERRUPT.
Lecture 9 (The Stack and Procedures). 1 Lecture Outline Introduction The Stack The PUSH Instruction The POP Instruction Terminology of Procedures INDEC.
In Class Program Write, assemble and test a program: –Use the DB directive to define the following list of numbers and name it array: 31h, 32h, 33h, 34h.
B ASIC INSTRUCTIONS. I NTRODUCTION There are over a hundred instructions in the instruction set for the 8086 CPU; there are also instructions designed.
Riyadh Philanthropic Society For Science Prince Sultan College For Woman Dept. of Computer & Information Sciences CS 251 Introduction to Computer Organization.
Riyadh Philanthropic Society For Science Prince Sultan College For Woman Dept. of Computer & Information Sciences CS 251 Introduction to Computer Organization.
Assembly Language Lecture 2. Lecture Outline Program Structure Memory models Data Segment Stack Segment Code Segment Input and Output Instructions INT.
Computer and Information Sciences College / Computer Science Department CS 206 D Computer Organization and Assembly Language.
Riyadh Philanthropic Society For Science Prince Sultan College For Woman Dept. of Computer & Information Sciences CS 251 Introduction to Computer Organization.
File Operations. FILE PROCESSING For the purposes of the following discussion, reading means copying all or part of an existing file into memory Writing.
Microprocessors CSE- 341 Dr. Jia Uddin Assistant Professor, CSE, BRAC University Dr. Jia Uddin, CSE, BRAC University.
Program Structure Example for Data Segment CRLF EQU 0DH, 0AH PROMPT DB 'Enter a digit between 0 and 9', 0 VAR1 DB ? ARRAY DW 1234h, 23h, 0FF54h.
Instruction set Architecture
Format of Assembly language
1st prog! Q: Read a char – from a keyboard & display it at the beginning of the next line! ====== A.
Microprocessor and Assembly Language
Lecture 4 Control Flow Structures (LOOPS)
Microprocessor and Assembly Language
Computer Organization & Assembly Language
(The Stack and Procedures)
Defining Types of data expression Dn [name] expression Dn [name]
Symbolic Instruction and Addressing
8086 Registers Module M14.2 Sections 9.2, 10.1.
Morgan Kaufmann Publishers Computer Organization and Assembly Language
Symbolic Instruction and Addressing
(The Stack and Procedures)
Chapter 4 –Requirements for coding in Assembly Language
Symbolic Instruction and Addressing
Chapter 4 –Requirements for coding in Assembly Language
Morgan Kaufmann Publishers Computer Organization and Assembly Language
INTRODUCTION ABOUT ASSEMBLY
Assembler Directives end label end of program, label is entry point
Chapter 6 –Symbolic Instruction and Addressing
(The Stack and Procedures)
By Nasser Halasa Assembly Language.
Procedures & Macros Introduction Syntax Difference.
Presentation transcript:

Riyadh Philanthropic Society For Science Prince Sultan College For Woman Dept. of Computer & Information Sciences CS 251 Introduction to Computer Organization & Assembly Language Lecture 13 Program Structure

 Translation of HHL to assembly language  Program Structure  Memory model  Data Segment  Stack Segment  Code Segment  Input and Output Instructions  INT instruction Program Structure2

 Statement: B = A  Translation: MOV AX, A ; move A into AX MOV B, AX ; and then into B 3

Program Structure  Assembly language programs consists of the following program segments:  Code.  Data.  Stack.  Each program segment is translated into a memory segment by the assembler. 4

Program Structure  The size of code and data a program can have is determined by specifying a memory model using the.MODEL directive.  Syntax:.MODEL memory_model 5 ModelDescription SMALL code in 1 segment data in 1 segment MEDIUMcode > 1 segment data in 1 segment COMPACTcode in 1 segment data > 1 segment LARGEcode > 1 segmentdata > 1 segment no array larger than 64k bytes HUGEcode > 1 segmentdata > 1 segment arrays may be larger than 64k bytes

Program Structure  The appropriate model is small unless there is a lot of code or data .Model Directive should come before the segment definitions 6

Program Structure  The purpose of the stack segment declaration is to set aside a block of memory (the stack area) to store the stack.  The stack area should be big enough to contain the stack at its maximum size.  Syntax:.STACKsize ; where size is an optional number that specifies ; the stack area size in bytes.  Example:.STACK 100H ; sets aside 100H bytes for the stack area. ; (reasonable size for most applications).  If size is omitted, 1KB is set aside for the stack area. 7

Program Structure  A program’s data segment contains all the variable definitions.  Constant definitions are often made here as well. (they may be placed elsewhere in the program since no memory allocation is involved).  To declare a data segment, we use the directive.DATA, followed by variable and constant declarations.  Example:.DATA WORD1DW 2 MSGDB ‘this is a message’ MASKEQU B 8

Program Structure  The code segment contains a program’s instructions.  Syntax:.CODEname ; where name is an optional name of segment.  There is no need for a name in a SMALL program, However, the assembler will generate an error.  Inside a code segment, instructions are organized as procedures. 9

Program Structure  The simplest procedure definition is: name PROC ; name: is the name of the procedure. ; body of the procedure ; PROC & ENDP: are pseudo-ops that name ENDP ; delineate the procedure  Example of a code segment definition:.CODE MAIN PROC ; main procedure instructions MAIN ENDP ; other procedures go here 10

Program Structure. MODEL SMALL.STACK 100H.DATA ; data definitions go here.CODE MAIN PROC ; instructions go here MAIN ENDP ; other procedures go here ENDMAIN 11

Program Structure  There are two categories of I/O service routines  The Basic Input/output System (BIOS) routine  The DOS routines 12

Program Structure  To invoke the DOS or BIOS routine, the INT (interrupt) instruction is used  Format INT interrupt_number  The interrupt_number is a number that specifies a routine 13

Program Structure  INT 21h may be used to invoke a large number of DOS functions  A particular function could be requested by placing a function number in AH & invoking INT 21h  Some of the functions are  INT 21h functions expect input values to be in certain registers and return output values in other registers 14 Function number Routine 1single-key input 2single-character output 9character string output

Program Structure  To invoke the routine, the following instructions should be executed MOV AH, 1; input key function INT21h; ASCII code in AL 15 Function 1: Single-Key Input Input: AH = 1 Output: AL = ASCII code if character key is pressed = 0 if non-character key is pressed

Program Structure  To invoke the routine, the following instructions should be executed MOV AH, 2; display character function MOVDL, ‘?’; character is ‘?’ INT21h; display character 16 Function 2: Display a character or execute a control function Input: AH = 2 DL = ASCII code of the display character Output: AL = ASCII code of the display character

Program Structure  Function 2 may be used to perform control functions.  If DL contains the ASCII code of a control character, INT 21h causes the control function to be performed.  The principal control characters are : 17 ASCII code (Hex) Symbol Function 07HBELbeep (sounds a tone) 08HBSbackspace 09HHTtab 0AHLFline feed (new line) 0DHCRcarriage return (start of current line)

Program Structure  LEA (Load Effective Address) puts a copy of the source offset address into the destination.  Syntax: LEA destination, source Where destination is a general register and source is a memory location  Example: MSG DB 41H, 42H, 43H LEA DX, MSG puts the offset address of the variable MSG into DX 18

Program Structure  To invoke the routine, the following instructions should be executed MOV MOVDS, AX MOVAH,9; display string function LEADX, MSG; get message (already defined string) INT21h; display string 19 Function 9: Display a string Input: AH = 9 DX = offset address of the string The string must end with a ‘$’ character A program containing a data segment should begins with these two instructions (initialize DS)

Program Structure  To invoke the routine, the following instructions should be executed MOVAH, 4CH; DOS exit function INT21h; exit to DOS 20 Function 4CH: Return the Control to DOS Input: AH = 4CH

Program Structure TITLE P1: ECHO PROGRAM.MODEL SMALL.STACK 100H.CODE MAIN PROC ; display prompt MOV AH,2; display character function MOV DL,'?'; character is '?' INT 21H; display it ; input a character MOV AH,1; read character function INT 21H; character in AL MOV BL,AL; save it in BL ; go to new line MOV AH,2; display character function MOV DL, 0DH; carriage return INT 21H; execute carriage return MOV DL, 0AH; line feed INT 21H; execute line feed ; display character MOV DL, BL; retrieve character INT 21H ; and display it ; return to DOS MOV AH, 4CH; DOS exit function INT 21H; exit to DOS MAIN ENDP END MAIN 21

Program Structure22 TITLE P2: PRINT STRING PROGRAM.MODEL SMALL.STACK 100H.DATA MSG DB'HELLO!$'.CODE MAIN PROC ; initialize DS MOV get data segment MOV DS,AX ; initialize DS ; display message LEA DX,MSG ; get message MOV AH,9 ; display string function INT 21H ; display message ; return to DOS MOV AH, 4CH ; DOS exit function INT 21H ; exit to DOS MAIN ENDP END MAIN