第三章总结

 字数据在内存中的存储

小端法

字数据的存-储原则:高-高 低-低

1.字数据的低位字节存放在低地址内存单元

字数据的高位字节存放在高地址内存单元

2.取低地址内存单元地址作为字数据地址

大端法则与小端法相反

指令执行时,8086 CPU自动取ds中的数据为内存单元的段地址

8086 内以字为存取

下面是如何用 mov 指令从1000H 中读取数据

mov bx,1000H

mov ds,bx

 

关于mov指令的使用

1.两个操作数长度要一致

2.关于常数(也叫立即数)

 不能作为第1个操作数

作为第2个操作数时,如果最高位是十六进制的 a~f 或 A~F,前面要加零

3.两个内存单元之间不能直接传送数据

4.不能使用mov指令修改CS和IP的值

5.关于段寄存器

两个段寄存器之间不能直接传送

不能把常数送到段寄存器

sub指令与add指令相同

1.指令的操作数不能同时是内存单元

2.指令的操作数不能段寄存器

栈本质上是一段内存空间

栈的特点

只能在一端进出

先进后出

后进先出

栈的两个概念:栈底、栈顶

栈底固定不动,栈顶的元素总是最后入栈,需要出栈时,又最先被从栈中取出

栈的两个操作:入栈、出栈

入栈是将一个新的元素放到栈顶,出栈是从栈顶取出一个元素

栈顶的段地址存放在SS中

栈顶的偏移地址存放在SP中

SS:SP指向栈顶元素

SS*16+SP 可得栈顶的物理地址

说明:栈为空时,就相当于唯一的元素出栈,出栈后,栈顶指向栈底加2----SP=SP+2

入栈是SP=SP-2

对8086而言,push和pop的操作

入栈与出栈均以字为单元

操作对象不能是常数

pop寄存器中,段寄存器不能是CS和SS

利用栈 先进后出 的特性,使用push和pop指令可以完成一些特殊处理

栈顶超界问题

当栈满的时候,再使用push指令入栈

当栈空的时候,再使用pop指令出栈

8086不会自动考虑栈顶超界,需要程序员在编程设计时自己考虑。栈区长度不同,栈顶超界的具体情形不同

 

posted @ 2018-11-04 22:12  邱雪文  阅读(161)  评论(0编辑  收藏  举报