UNIT THREE
基础 (1) 内存以字节为单位,划分为若干个单元。 ? ds寄存器 DS: 数据段段寄存器,用于存放数据段的「段地址」 将一段内存用作数据段,是编程时的一种安排 格式: mov ax,[1]; ax ← ( (ds) × 16 + 1) 附: ? 注意: (1) 两个操作数长度要一致。 (2) 关于常数(也叫立即数) ① 不能作为第1个操作数(目的操作数) (2)例: mov 4000H,ax × mov ax,4000H √ (3) 两个内存单元之间不能直接传送数据。 (4) 不能使用mov指令修改CS和IP的值。 (5)段寄存器 ① 两个段寄存器之间不能直接传送; ? 栈 ? 「栈」是一个逻辑上的概念。可以将一段内存空间当作「栈」来使用。 栈顶: 最后入栈的字数据所对应的地址单元 入栈: 把数据存入栈 SS: 栈段段寄存器,用于存放栈段的「段地址」
「栈」操作指令: push和pop 小结 (1) 「段」是一个逻辑上的概念。编程时,可根据需要指定一段内存区用作数据段、代码段或是栈段。(2) 用作数据段时,要把段地址→DS 用作栈段时,要把段地址→SS,栈顶偏移地址 → SP 用作代码段时,段地址→CS,要取的指令偏移地址→IP。但CS和IP的值不能使用mov改变。(3) 一段内存可以同时用作代码段、数据段、栈段。 由编程时灵活确定。(4) 在8086CPU中,每个段的最大长度不能超过64KB。(因为寄存器是16位的,能表示的地址范围只能是0000H~FFFFH,即0~216-1) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |