0% found this document useful (0 votes)
40 views

Workshop01 - Answer

Here is the code with memory structure: #include <stdio.h> int main() { int a = 10; int b = 20; int c; c = a + b; printf("Sum is: %d\n", c); return 0; } Memory Structure: Stack: - Return Address - Frame Pointer - c - b - a Text (Code) Segment: - main() function code Data Segment: - No global/static variables Heap: - Not used in this program Therefore the overall memory layout is: Stack Text Segment Data
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
40 views

Workshop01 - Answer

Here is the code with memory structure: #include <stdio.h> int main() { int a = 10; int b = 20; int c; c = a + b; printf("Sum is: %d\n", c); return 0; } Memory Structure: Stack: - Return Address - Frame Pointer - c - b - a Text (Code) Segment: - main() function code Data Segment: - No global/static variables Heap: - Not used in this program Therefore the overall memory layout is: Stack Text Segment Data
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 8

Subject: PRF192 - PFC

Workshop 01
Name: your_name
Student ID: your_student_ID

Objectives:
1. Reviewing for number systems.
2. Exploring memory of a C program.

Recommendations:
Part 1: Students do exercises using notebooks.
Part 2: Students develop programs, run them, write down their memory
structure to notebooks.
Part 1: Number systems:

Exercise 1 (2 marks): Convert decimal numbers to binary ones.

Decimal 4-bit Decimal 8-bit Decimal 16-bit Binary


Binary Binary

9 1001 7 0000 0111 255 0000 0000 1111 1111

7 0111 34 0010 0010 192 0000 0000 1100 0000

2 0010 125 0111 1101 188 0000 0000 1011 1100

15 1111 157 1001 1101 312 0000 0001 0011 1000

12 1100 162 1010 0010 517 0000 0010 0000 0101

11 1011 37 0010 0101 264 0000 0001 0000 1000

6 0110 66 0100 0010 543 0000 0010 0001 1111

5 0101 77 0100 1101 819 0000 0011 0011 0011

8 1000 88 0101 1000 1027 0000 0100 0000 0011

13 1101 99 0110 0011 2055 0000 1000 0000 0111

14 1110 109 0110 1101 63 0000 0000 0011 1111

Exercise 2 (2 marks): Convert decimal numbers to binary and


hexadecimal ones.
Decimal Binary Hexa. Decimal 16-bit Binary Hexadecimal

9 1001 09 255 0000 0000 1111 1111 00FF

127 0111 1111 7F 192 0000 0000 1100 0000 00C0

125 0111 1101 7D 188 0000 0000 1011 1100 00BC

157 1001 1101 9D 312 0000 0001 0011 1000 0138

162 1010 0010 A2 517 0000 0010 0000 0101 0205

37 0010 0101 25 264 0000 0001 0000 1000 0108

66 0100 0010 42 543 0000 0010 0001 1111 021F

77 0100 1101 4D 819 0000 0011 0011 0011 0333

88 0101 1000 58 1027 0000 0100 0000 0011 0403

99 0110 0011 63 2055 0000 1000 0000 0111 0807

109 0110 1101 6D 63 0000 0000 0011 1111 003F

Exercise 3 (2 marks): Compute.


(b: binary, q: octal, h: hexadecimal, d: decimal)
3 245 q + 247 q = ?q = ?b
3 245 q + 247 q = 3 514 q = 0111 0100 1100 b

1A7B h + 26FE7 h = ?h = ?b
1A7B h + 26FE7 h = 2 8A62 h = 0010 1000 1010 0110 0010 b

1101101101 b - 10110111 b = ?b
1101101101 b - 10110111 b = 0010 1011 0110 b

3654 q - 337 q = ?q = ?b
3654 q - 337 q = 3 315 q = 0110 1100 1101 b

3AB7 h - 1FA h = ?h = ?b
3AB7 h - 1FA h = 38BD h = 0011 1000 1011 1101 b

36A h - 576 q = ?h = ?b
576 q = 17E h
36A h - 576 q = 36A h - 17E h = 1EC h = 0001 1110 1100 b

64AE h - 1001101 b = ?q
1001101 b = 4D h
64AE h - 1001101 b = 64AE h - 4D h = 6461 h = 62 141 q

1 0110 1111 b
+ 1 0011 1011 b
1 1011 0001 b
1 1000 1101 b
= 0101 1110 1000 b

1011010 b * 1011 b

01011010 b
x 1011 b
01011010 b
01011010 b
00000000 b
01011010 b
= 01111011110 b = 0011 1101 1110 b

1101000 b + 2AB h + 345 q = ?h = ?q


1101000 b = 68 h
345 q = E5 h
1101000 b + 2AB h + 345 q = 68 h + 2AB h + E5 h = 3F8 h
3F8 h = 0011 1111 1000 b

3AF h / 1C h = ?b = ?d
3AF h = 943 d
1C h = 28 d
3AF h / 1C h = 943 d / 28 d = 33 d = 0010 0001 b

3AC h – 562 q = ?b = ?d
3AC h = 940 d
562 q = 370 d
3AC h – 562 q = 940 d - 370 d = 570 d = 0010 0011 1010 b

3FFA h / 327 q = ?b = ?d
3FFA h = 16378 d
327 q = 215 d
3FFA h / 327 q = 16378 d / 215 d = 76 d = 0100 1100 b

Exercise 4 (2 marks):

1. Show binary formats of 1-byte unsigned numbers: 251, 163, 117.


25110 = 1111 11012
16310 = 1010 00112
11710 = 0111 01012

2. Show binary formats of 2-byte unsigned numbers: 551, 160,


443.
55110 = 0000 0010 0010 01112
16010 = 0000 0000 1010 00002
44310 = 0000 0001 1011 10112

3. Show binary formats of 1-byte signed numbers: -51 , -163, -


117, 320.
-5110 = 1100 11012
-16310 = 0101 11012
-11710 = 1000 10112
32010 = overflow 8-bit, cannot storaged by binary formats of
1-byte.

4. Show the decimal values of 1-byte unsigned representations:


01100011 b , 10001111 b , 11001010 b , 01001100 b
0110 0011 b = 99 d
1000 1111 b = 143 d
1100 1010 b = 202 d
0100 1100 b = 76 d

Part 2: Explore memory structure of programs:

Sample
Complete the code of following program then draw it’s memory
structure. (2 marks)

You might also like