一道嵌入式系统设计师堆栈指针考题引发的思考:
在8086微处理器中,若(SS)=2000H,(SP)=0100H,(AX)=2117H,执行指令
PUSHAX后存放数据21H的物理地址是(45)。
A.20102H B.20101H C.200FEH D.200FFH
答案:D
【分析】
8086中的堆栈采用满递减堆栈,即SP先减,再压入数据,以字为单位对堆栈操作。
因此压入数据时的起始SP应为0FEH;8086中数据采用小端模式存储,即一个字数据
23
中低字节放在低地址;8086逻辑地址到物理地址的形成机制为:物理地址=段地址*16+
偏移地址(或物理地址=段地址左移4位+偏移地址)压栈后内容存储的物理地址为
SS*16+0FEH,21H是AX中的高位,其存储位置为200FFH
文章评论(0条评论)
登录后参与讨论