SlideServe
Menu
Préférences
© SlideServe · v2026

H1 Assembler Parameter Passing Exercises

suchi avatar
4 diapositives · 164 Views · Sep 25, 2014

Convert C++ code to assembly language for parameter passing exercises. Three exercises included with detailed solutions.

H1 Assembler Parameter Passing Exercises - slide 1
01 / 4H1 Assembler Parameter Passing Exercises
1 / 17

Télécharger la présentation

H1 Assembler Parameter Passing Exercises
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. Parameter Passing Exercises Assembler

  2. Exercise 1: @foo$ric: ldc ‘a’ subr 2 jnz else ldr 2 ret else: ldr 1 ret • Convert the followingC++ code to H1assembler. int foo(int a, char ch = ‘a’) { if ch == ‘a’ return (int)ch; else return a; . . . int x = 5; int y; y = foo(x); x: dw 5 y: dw 0 ldc ‘a’ push ld x push call @foo$ric dloc 2 st y x: 5 y: 0 ret addr a: 5 ch: ‘a’ Assembler

  3. Exercise 2: @foo$ipi: ldc 5 push addr 2 push ldr 4 sti ldi dloc 1 ret • Convert the followingC++ code to H1assembler. int foo(int a, int*p) { int b = 5; *p = a + b; return *p . . . int x = 5; int y; x = foo(x,&y); x: dw 5 y: dw 0 ldc y push ld x push call @foo$ipi dloc 2 st xZZ x: 5 y: 0 heap b: 5 ret addr a: 5 p: Assembler

  4. Exercise 3: @foo$ripi: aloc 1 ldr 2 ; b = a ldi str 0 ldr 3 ; a = *p ldi push ldr 3 sti ldr 0 ; *p = b push ldr 4 sti dloc 1 ret • Convert the followingC++ code to H1assembler. void foo(int& a, int*p) { int b; b = a; a = *p; *p = b; return; . . . int x = 5; int y = 6; foo(x,&y); x: 5 y: 6 x: dw 5 y: dw 6 main: ldc y push ldc x push call @foo$ripi dloc 2 heap b: - ret addr a: p: Assembler