In very simple assembly language programming, everyone may know the below given lines:
cli
xor ax,ax
mov ss,ax
mov sp,7c00h
push ss
pop es
my very simple question is that, when in line number 3 we write mov ss,ax,
then value "0000" will move in the stack segment register ss. My problem is
in understanding that when we use two instructions "push ss" and "pop es".
then whether two segments ss and es will be created and start at the same
memory location starting at address "0000" (and thus overlap each other) or
two separate segments will be created containing the values "0000" (absolute
value) at their very first location. If the later condition satisfies then
will ss and es be created automatically (because we did not used any
instruction for creating the segments SS or ES using instructions like:)
stack segment stack1
end stack1
extra segment extra1
end extra1
assume stack:stack1
extra:extra1