.汇编语言是在16进制的情况下,所以加减也是满16进1,由于数制的原因,16进制的4位是2进制的16位(因为数制转化2进制每4位转成16进制的1位),如果加减后的16进制数超过4位(al或者ah超过2位)只取后4位或后2位(al或ah)
一个字等于两个字节
内存中字的存储是从下往上的读的(数据的高位存储在地址的高位内存(地址越往下地址越高))
如下图 1位置字节存储是4E 字存储是124E任意两地址连续的内存单元,N号单元和N+1号单元,可以将他们看成两个内存单元,也可以看成一个地址为N的字单元中的高位字节单元和低位字节单元
DS和(address)
al(低位)ah(高位)
栈
先进后出
SS:SP 指向栈顶单元(它十分关注栈顶的位置)
push (入栈) SP=SP-2 将ax中的数据 复制到SS:SP指向的内存单元,此时SS:SP指向新的栈顶
pop (出栈) 先将数据复制出去
(如果用栈暂存的数据想要恢复则按入栈顺序的相反出栈)
若栈为空 SS:SP指向最高地址的下一位(如下图)
栈溢出(一直向上push一直向下pop)
内存中的数据人会把它们分成代码段 数据段 栈段,而CPU比较傻,它只会一个按逻辑读取,这就需要人来让它读那执行那儿(DS+IP(数据),SS+SP(栈),CS(代码))
内存一段位置上既是数据,代码,栈,看你怎么操作
:)
为了心中的美好而战