棧(8086機(jī)制)
8086中棧的操作的基本單位為字(2個(gè)byte,16位二進(jìn)制)
對(duì)應(yīng)棧的指針地址分別存儲(chǔ)在段地址寄存器SS和偏移地址寄存器SP中,即SS:SP指向棧頂元素
地址對(duì)應(yīng)順序:8086中,入棧時(shí),棧頂從高地址向低地址方向增長(zhǎng)。所以其設(shè)置SP偏移寄存器時(shí)應(yīng)該設(shè)置為棧的最高位地址。

增長(zhǎng)方向(壓入2266h)即依然是高位在高地址
push和pop
在8086中沒(méi)有專門設(shè)定棧頂棧底的寄存器,所以相關(guān)操作的時(shí)候要注意溢出問(wèn)題。

棧段
由于8086偏移地址寄存器位數(shù)的限制,其偏移地址最大的數(shù)值只能是FFFF,即可尋2^(4*2*4)個(gè)存儲(chǔ)單位的地址(BYTE)。除以1024,可知最大棧段為64KB.

DEBUG現(xiàn)象
在-T命令下:
在執(zhí)行修改SS段寄存器的指令時(shí),下一條指令也緊接著被執(zhí)行。
reference:《匯編語(yǔ)言》王爽