Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

. We can allocate string literals and global variables in the .data section of a

ID: 3793331 • Letter: #

Question

. We can allocate string literals and global variables in the .data section of an assembly language program. Write MARS directives which would allocate the following C-like variables in the .data section.

char ch1 = ' ', ch2 = '$'; // Assume char variables/values are 1-byte

int x = 0, y = -1, z; // Assume int variables/values are 4-bytes

char *name = "Marge Simpson"; // name is a label assoc'd with the address of the first char

int iarray[250] = { 0 }; // iarray is an array of 250 ints, all initialized to 0

char carray[250] = { 0 }; // carray is an array of 250 chars, all initialized to 0

Explanation / Answer

Following are the MARS directives:

.data # This command tells the assembler that we are in the data segment

x: .word 0 # variable x is declared with initial value 0
y: .word -1,z
ch1: .byte ' '
ch2: .byte '$'
iarray: .space 1000 0 # declare 1000 bytes of storage to hold an array of 250 integers initialized to 0
carray:   .space 500 0 #250 elements character array initialized to 0
name: .asciiz "Marge Simpson"
.text