Wrong group - this is for S/370 /IBM mainframes)
Sven
"Wendy E. McCaughrin" <wemccaug@[EMAIL PROTECTED]
> wrote in message
news:eec6fq$n02$1@[EMAIL PROTECTED]
> CN99 <leon800219@[EMAIL PROTECTED]
> wrote:
> : Hi all:
>
> : Can anybody tell me what the value will be in ax, after the 'call'
> excuted,
> : and why? Thanks!
> : To me:
> : pop ax // ax = 8
> : add ax, ax // ax = 16
> : pop bx // bx = 1000
> : add ax, bx // ax = 1000 + 16 -> 1016?
>
> Looks like you are at segment = 10x1000, but at what offset?
> I am guessing this is a DOS program, with origin offset = 0x100.
>
> : 1000:0 b8 00 00 mov ax, 0
> : 1000:3 9A 09 00 00 10 call far ptr s
>
> This sets [stack-top] = return-address 0x0100 + 8 = 0x0108.
>
> : 1000:8 8 40 inc ax
> : 1000:9 9 58 s:pop ax
> : add ax, ax
> : pop bx
> : add ax, bx
>
> At label s, the return-address (0x0108) is popped into AX. What
> was [stack-top] before the call? That determines contents of BX.
>


|