View previous topic :: View next topic
|
Author |
Message |
nigelosberry
New User
Joined: 06 Jan 2009 Posts: 88 Location: Ggn, IN
|
|
|
|
Is it permissible to use EX(execute) instruction in a program that is supposed to be re-entrant? |
|
Back to top |
|
|
PeterHolland
Global Moderator
Joined: 27 Oct 2009 Posts: 2481 Location: Netherlands, Amstelveen
|
|
|
|
From the POP :
The single instruction at the second-operand
address is modified by the contents of general
register Ri, and the resulting instruction, called
the target instruction, is executed.
When the Ri field is not zero, bits 8-15 of the
instruction designated by the second-operand
address are ORed with bits 56-63 of general register
Ri The ORing does not change either the
contents of general register Ri or the instruction in
storage, and it is effective only for the interpretation
of the instruction to be executed. When the
Ri field is zero, no ORing takes place. |
|
Back to top |
|
|
Bill Woodger
Moderator Emeritus
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
|
|
|
|
Nice to check, but what is your worry? |
|
Back to top |
|
|
nigelosberry
New User
Joined: 06 Jan 2009 Posts: 88 Location: Ggn, IN
|
|
|
|
Bill Woodger wrote: |
Nice to check, but what is your worry? |
Out of curiosity.
EX does change the body of the program. If we are not permitted to amend local storage in a reentrant assembler program then we should not be allowed to use EX as well. That's what my logical feeling suggests. |
|
Back to top |
|
|
Bill Woodger
Moderator Emeritus
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
|
|
|
|
Are you not permitted to amend local storage, or are you not permitted to rely on any amendments to local storage?
Anyway, a digression there.
Although you effectively "amend" the instruction being executed, it will operate in the manner you intend (as long as you establish things correctly before issuing the EX) whether starting from a fresh copy of the module or from a previously-used module. |
|
Back to top |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10872 Location: italy
|
|
Back to top |
|
|
PeterHolland
Global Moderator
Joined: 27 Oct 2009 Posts: 2481 Location: Netherlands, Amstelveen
|
|
|
|
Enrico, thanks for the compliment regarding my cut/paste skills.
I could have said it in my own words, but why would i if its all there on the internets. If only people would take some pains to do some research
themselves. |
|
Back to top |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10872 Location: italy
|
|
|
|
that' s also my point...
no need to rewrite what trained Information Developers have done in a ( usually ) better way |
|
Back to top |
|
|
nigelosberry
New User
Joined: 06 Jan 2009 Posts: 88 Location: Ggn, IN
|
|
|
|
I tested it and the change is just temporary.
Earlier I did have a look at the manual, but somehow missed "..temporarily modify...". |
|
Back to top |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10872 Location: italy
|
|
|
|
Quote: |
I tested it and the change is just temporary. |
horse manure... You still do not understand it do You ?
seem pretty clear
Quote: |
When the Ri field is not zero, bits 8-15 of the instruction designated by the second-operand address are ORed with bits 56-63 of general register Ri
The ORing does not change either the contents of general register Ri or the instruction in storage,
and it is effective only for the interpretation of the instruction to be executed.
When the Ri field is zero, no ORing takes place.
|
if the EX instruction would change even if temporarily main storage
zillions of line of code residing in write protected storage would have never worked |
|
Back to top |
|
|
nigelosberry
New User
Joined: 06 Jan 2009 Posts: 88 Location: Ggn, IN
|
|
|
|
enrico-sorichetti wrote: |
horse manure... You still do not understand it do You ?
|
I do.
I am just referring to the explanation given in quick reference:
"The EXECUTE instruction executes the single instruction
at the second operand address, using the value in the
rightmost byte of the first operand register as a
modifier value. The 8 bits in the rightmost byte of
the first operand register are used to temporarily
modify bits 8 through 16 of the executed instruction.
Depending on the instruction that is the target of
EXECUTE, this may be a length, a register number, or a
byte of immediate data. If the first operand specifies
R0, then the target instruction is executed, but no
temporary modification takes place. An EXECUTE
instruction cannot be the target of EXECUTE; a S0C3
ABEND will occur if this is attempted. " |
|
Back to top |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10872 Location: italy
|
|
|
|
again I confirm ... Your understanding is wrong
again ( cut and paste from the POP )
Quote: |
The single instruction at the second-operand address is modified by the contents of general register R1, and the resulting instruction, called the target instruction, is executed.
When the R1 field is not zero, bits 8-15 of the instruction designated by the second-operand address are ORed with bits 56-63 of general register R1.
The ORing does not change either the contents of general register R1 or the instruction in storage,
and it is effective only for the interpretation of the instruction to be executed. When the R1 field is zero, no ORing takes place.
|
what is that is not clear ? |
|
Back to top |
|
|
nigelosberry
New User
Joined: 06 Jan 2009 Posts: 88 Location: Ggn, IN
|
|
|
|
enrico-sorichetti wrote: |
what is that is not clear ? |
Thanks for the information related to EX. I have no doubts with it now.
The thing is I have pasted a piece of information in my previous reply I get when I do a "QW EX" on my tso command line. The information in blue fonts in the previous reply is what pops up after that. My point is: "Is the information there(on mainframe QW) incomplete in a sense?"
I confirm again I have no doubts with EX anymore. |
|
Back to top |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10872 Location: italy
|
|
|
|
it would be nice that when somebody is told that he/she is wrong
he/she would not stand by his/her stubbornness an listen to people with much more experience
or at least if they do not want to believe people at least believe the IBM manuals |
|
Back to top |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10872 Location: italy
|
|
|
|
it is universally known that QW is too often wrong !
and must never be taken as a substitute for the official manuals and docs |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8696 Location: Dubuque, Iowa, USA
|
|
|
|
Quote: |
it is universally known that QW is too often wrong !
and must never be taken as a substitute for the official manuals and docs
|
enrico -- WIDELY known, but (obviously) not UNIVERSALLY known! |
|
Back to top |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10872 Location: italy
|
|
|
|
Ok, I sit corrected ( more comfortable than standing ) |
|
Back to top |
|
|
PeterHolland
Global Moderator
Joined: 27 Oct 2009 Posts: 2481 Location: Netherlands, Amstelveen
|
|
|
|
I expected after my response at least something like "peterholland, you are a wizard/genius. thanks a lot". Nothing like that. Im not sure if im going to support this TS in the future. |
|
Back to top |
|
|
nigelosberry
New User
Joined: 06 Jan 2009 Posts: 88 Location: Ggn, IN
|
|
|
|
PeterHolland wrote: |
I expected after my response at least something like "peterholland, you are a wizard/genius. thanks a lot". Nothing like that. Im not sure if im going to support this TS in the future. |
thanks a lot peter! Sorry for the delay . I am away from my pc and writing thru a mobile device. |
|
Back to top |
|
|
PeterHolland
Global Moderator
Joined: 27 Oct 2009 Posts: 2481 Location: Netherlands, Amstelveen
|
|
|
|
Thats ok, one compliment i can live with. |
|
Back to top |
|
|
|