Need Help In C task

profileEric-Burns
refrence.pdf

•High-Order Language •#include <stdio.h>

•void getVect(int v[], int *n) { • int j; • scanf("%d", n); • for (j = 0; j < *n; j++) { • scanf("%d", &v[j]); • } •}

•void putVect(int v[], int n) { • int j; • for (j = 0; j < n; j++) { • printf("%d ", v[j]); • } • printf("\n"); •}

•int main() { • int vector[8]; • int numItms; • getVect(vector, &numItms); • putVect(vector, numItms); • return 0; •}

•Assembly Language •0000 120058 BR main • ; • ;******* getVect(int v[], int *n) • v: .EQUATE 6 ;formal parameter #2h • n: .EQUATE 4 ;formal parameter #2h • j: .EQUATE 0 ;local variable #2d •0003 580002 getVect: SUBSP 2,i ;push #j •0006 340004 DECI n,sf ;scanf("%d", n) •0009 C80000 LDWX 0,i ;for (j = 0 •000C EB0000 STWX j,s •000F AC0004 for1: CPWX n,sf ;j < *n •0012 1C0025 BRGE endFor1 •0015 0B ASLX ;two bytes per integer •0016 370006 DECI v,sfx ;scanf("%d", &v[j]) •0019 CB0000 LDWX j,s ;j++) •001C 680001 ADDX 1,i •001F EB0000 STWX j,s •0022 12000F BR for1 •0025 500002 endFor1: ADDSP 2,i ;pop #j •0028 01 RET

•Assembly Language • ;******* putVect(int v[], int n) • v2: .EQUATE 6 ;formal parameter #2h • n2: .EQUATE 4 ;formal parameter #2d • j2: .EQUATE 0 ;local variable #2d •0029 580002 putVect: SUBSP 2,i ;push #j2 •002C C80000 LDWX 0,i ;for (j = 0 •002F EB0000 STWX j2,s •0032 AB0004 for2: CPWX n2,s ;j < n •0035 1C004E BRGE endFor2 •0038 0B ASLX ;two bytes per integer •0039 3F0006 DECO v2,sfx ;printf("%d ", v[j]) •003C D00020 LDBA ' ',i •003F F1FC16 STBA charOut,d •0042 CB0000 LDWX j2,s ;j++) •0045 680001 ADDX 1,i •0048 EB0000 STWX j2,s •004B 120032 BR for2 •004E D0000A endFor2: LDBA '\n',i ;printf("\n") •0051 F1FC16 STBA charOut,d •0054 500002 ADDSP 2,i ;pop #j2 •0057 01 RET

•Assembly Language • ;******* main() • vector: .EQUATE 2 ;local variable #2d8a • numItms: .EQUATE 0 ;local variable #2d •0058 580012 main: SUBSP 18,i ;push #vector #numItms •005B 03 MOVSPA ;move (&)vector •005C 600002 ADDA vector,i •005F E3FFFE STWA -2,s •0062 03 MOVSPA ;move &numItms •0063 600000 ADDA numItms,i •0066 E3FFFC STWA -4,s •0069 580004 SUBSP 4,i ;push #v #n •006C 240003 CALL getVect ;getVect(vector, &numItms) •006F 500004 ADDSP 4,i ;pop #n #v •0072 03 MOVSPA ;move (&)vector •0073 600002 ADDA vector,i •0076 E3FFFE STWA -2,s •0079 C30000 LDWA numItms,s ;move numItms •007C E3FFFC STWA -4,s •007F 580004 SUBSP 4,i ;push #v2 #n2 •0082 240029 CALL putVect ;putVect(vector, numItms) •0085 500004 ADDSP 4,i ;pop #n2 #v2 •0088 500012 ADDSP 18,i ;pop #numItms #vector •008B 00 STOP •008C .END