Sunday, October 25, 2009 5:19 AM,




There still seems to be confusion among many students about the pseudo-op 
.BLKW.  If you feel you understand it, please feel free to simply delete this 
message and move on.

Now then:

We showed in class last week when we assembled a program that when the 
assembler sees .BLKW k, for example, the assembler simply reserves the next k 
locations of memory before proceeding to the next assembly language 
instruction.

Example:

	.ORIG x4000


	AND   R0,R0,#0
	ADD   R1,R0,#1
	LD    R7,A
	STR   R0,R7,#0
	ADD   R7,R7,#1
	STR   R1,R7,#0
	TRAP  x25
	.BLKW 3

A	.FILL x400B
	.END

The assembler would go through this assembly language program, line by line, 
and generate an object file as follows:

x4000: 0101 000 000 1 00000
x4001: 0001 001 000 1 00001
x4002: 0010 111 000000111
x4003: **** 000 111 000000 ; My book is not with me, so I can not look STR !
x4004: 0001 111 111 1 00001
x4005: **** 001 111 1 00000
x4006: 1111 0000 0010 0101
x4007: reserved space, nothing of consequence stored here
x4008: reserved space, nothing of consequence stored here
x4009: reserved space, nothing of consequence stored here
x400A: 0100 0000 0000 0111

When the program executes, it would store the value 0 into x4007 and the value 
1 into x4008.  Memory location x4009 would still be unspecified when the 
program halts.

Hope this helps.
Yale Patt