1 / 13

Lecture 7 Stack Operations and Introduction to Procedure

Lecture 7 Stack Operations and Introduction to Procedure. Modified and Presented By Dr. Rajesh Palit Asst. Professor, EECS, NSU Originally Prepared By Dr. Shazzad Hosain , EECS, NSU. Stack vs. Queue. Stack LIFO : Last In First Out Queue FIFO : First In First Out. Queue. Stack.

atalo
Télécharger la présentation

Lecture 7 Stack Operations and Introduction to Procedure

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lecture 7Stack Operations and Introduction to Procedure Modified and Presented By Dr. Rajesh Palit Asst. Professor, EECS, NSU Originally Prepared By Dr. ShazzadHosain, EECS, NSU

  2. Stack vs. Queue • Stack • LIFO : Last In First Out • Queue • FIFO : First In First Out Queue Stack

  3. PUSH vs. POP in Stack

  4. Stack Operations

  5. PUSH Instructions

  6. POP Instructions

  7. Stack example

  8. Introduction to Procedures • Way to implement top-down programming approach • Procedure declaration name PROC type RET name ENDP • Some other place the procedure is called by call name • Type can be FAR or NEAR, and it is optional, in absence of type NEAR is assumed • NEAR indicates that the calling statement is in the same segment, FAR implies different segment

  9. Procedure contd. • The RET instruction causes control to transfer back to the calling procedure. • Every procedure, except the MAIN procedure should have a RET someplace, and usually it’s the last statement in the procedure • A procedure must have a way to receive values from the caller, and a way to return results • In assembly language, there is no parameter lists, so it’s up to the programmer to devise way to communicate • In case of a few parameters, registers are fine to pass values

  10. Procedure Example Product = 0 REPEAT IF lsb of B is 1 THEN product = product + A END_IF Shift left A Shift right B UNTIL B = 0

  11. Passing Data Between Procedures • Using Global Variables • Through Register (call by values) • Passing the address of the data • Using the stack • Suitable for recursive procedure • Used by high-level programming languages • Procedure calling starts by pushing the return address on the stack

  12. Using BP for Accessing Stack MOV AL, a PUSH AX … MOV AL, b PUSH AX CALL addnos (original BP) return address data 1 data 2 data n SP, BP addnos PROC NEAR PUSH BP MOV BP, SP MOV AX, [BP+6] ADD AX, [BP+4] POP BP RET 4 addnos ENDP SP, BP

  13. References • Chapter 8 and Chapter 14 – Assembly Language Programming by Charles Marut

More Related