In a message dated 11/8/2007 10:02:17 A.M. Central Standard Time,  
[EMAIL PROTECTED] writes:

I have  not checked this for myself yet, and probably won't have the time
in the  next few weeks... In theory... If I allocate 200 bytes of storage
at  x'7fffff00', and my program, the way some Cobol programs are, writes
1600  bytes there, what would the addresses be, would it jump across the
'hole'  or try and write over the hole?

The addresses of the 200 bytes (decimal number 200 is assumed) that your  
program allocates would be X'7FFFFF00' to X'7FFFFFC7'.  If your COBOL  program 
attempts to write 1600 (decimal assumed again) bytes beginning at  X'7FFFFF00', 
your program would write at most the first 256 of the 1600 bytes  and, when 
attempting to write the 257th byte, would be interrupted with a  protection 
check program interrupt that would result in a S0C4 ABEND.  I  said "at most" 
because I have not yet studied the latest PoOps to know how new  move 
instructions 
move bytes.  And it would depend on how your program does  the move.  If it 
moves one byte per instruction in a loop, it would write  256 bytes and then 
ABEND.  There might be another type of move  instruction whose preprocessing 
checks the beginning and ending addresses  for validity before moving the first 
byte, in which case your program would  write zero bytes and then ABEND.  Your 
program would try to write over the  hole but would not be allowed to by the 
various protection mechanisms in the  processor architecture.

 
Bill  Fairchild
Franklin, TN



************************************** See what's new at http://www.aol.com

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to