第三章总结

 字数据在内存中的存储

小端法

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

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不会自动考虑栈顶超界,需要程序员在编程设计时自己考虑。栈区长度不同,栈顶超界的具体情形不同

 

转载于:https://www.cnblogs.com/qiuxuewen/p/9906202.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值