Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Riyadh Philanthropic Society For Science Prince Sultan College For Woman Dept. of Computer & Information Sciences CS 251 Introduction to Computer Organization."— Presentation transcript:

1 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

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

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

4 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

5 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

6 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

7 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

8 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 10010010B 8

9 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

10 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

11 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

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

13 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

14 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

15 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

16 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

17 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)

18 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

19 Program Structure  To invoke the routine, the following instructions should be executed MOV AX, @Data 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)

20 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

21 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

22 Program Structure22 TITLE P2: PRINT STRING PROGRAM.MODEL SMALL.STACK 100H.DATA MSG DB'HELLO!$'.CODE MAIN PROC ; initialize DS MOV AX,@DATA; 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


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

Similar presentations


Ads by Google