第三章总结

Posted baixingyeblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第三章总结相关的知识,希望对你有一定的参考价值。

一、字数据在内存中的存放

内存以字节为单位,划分为若干个单元

用16位寄存器来存储一个字的时候,由于内存单元是字节单元,所以一个字要用两个内存单元来存放。因此,产生了怎样存放字节的问题

可以用小端法解决,即:字数据的低位字节存放在低地址内存单元;字数据的高位字节存放在高地址内存单元

并且取低地址内存单元地址作为字数据地址

 

二、数据的传送

在8086CPU中,内存地址由段地址和偏移地址组成

DS寄存器,通常用来存放要访问数据的段地址

 

与数据传送有关的mov、add、sub指令

技术分享图片 技术分享图片技术分享图片

注意:8086CPU不支持将数据直接送入段寄存器的操作

 

[...]表示一个内存单元,[...]中的数字表示内存单元的偏移地址(默认地址在DS中)

 例:mov  ax,[1]      

表示ax ← ( (ds) × 16  + 1)

 

三、栈

「栈」是一个逻辑上的概念。可以将一段内存空间当作「栈」来使用

 

栈的特点是后进先出

 

栈中有栈顶和栈尾

栈顶: 最后入栈的字数据所对应的地址单元

栈底: 固定的一端,栈区最高地址单元的前一个单元

 

与栈有关的寄存器:SS和SP

SS: 栈段段寄存器,用于存放栈段的「段地址」

SP: 栈指针寄存器,用于存放栈顶的偏移地址

 

栈中的操作指令:

push(入栈)和pop(出栈)

 

push指令的执行步骤:

SP=SP-2  ,SS:SP指向当前栈顶单元

将ax中的内容送入SS:SP指向的内存单元处,SS:SP指向新的栈顶

 pop指令的执行步骤:

将SS:SP指向的内存单元处的数据送入ax中

SP=SP+2

 

栈顶超界问题的可能情况:

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

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

 

四、段的概念

「段」是一个逻辑上的概念。 编程时,可根据需要指定一段内存区用作数据段、代码段或是栈段

用作数据段时,要把段地址→DS

用作栈段时,要把段地址→SS,栈顶偏移地址 → SP

用作代码段时,段地址→CS,要取的指令偏移地址→IP

以上是关于第三章总结的主要内容,如果未能解决你的问题,请参考以下文章

第三章知识点总结

JavaScript 第三章总结

算法设计与分析:第三章总结

20165233 Java第三章学习总结

汇编语言第三章总结

第三章总结