汇编语言学习(二)

本文详细介绍了计算机内存访问的基本原理,包括字节、字的存储方式,以及8086 CPU 中的数据地址存储机制。同时,阐述了栈的概念、工作原理及使用注意事项,并通过实例演示了栈的操作流程。
学习时间:2015年6月1日-----7月14日
 学习者:易天曦


第三章 寄存器(内存访问)
 1.在内存中,我们说是一个字节为单位,也就是8位,但是1个字是两个字节,是怎么存储的呢?实际上,是这么规定的。在高地址存放的高字节,低地址存放的地址。例如存放2EBH。
图片   

   2.8086CPU中用DS来存放数据地址,但是不能把立即数直接传送给段地址寄存器,需要用通用寄存器作为中介。
    例子:写几条指令,将al中的数据送入内存单元10000H中。
3.在进行字的传送的时候,内存单元一次性要操作2个字节单元的地址。例如:
图片

 4.在mov指令中,支持通用寄存器和段寄存器的互相传递数据。也支持内存单元地址和段地址寄存器的互相传递数据。
    但是不能往内存单元地址中直接传递数据。
    图片
    在add指令中,mov指令中可行的都实验失败。
    图片

   5.代码段:内存地址中用来存放CS:IP指向的一段。
       数据段:内存地址中用来存放DS:【】指向的一段。
        栈段:内存地址中用来存放SS:SP指向的一段。
    6.从代码段和数据段中我们得知,在计算机中,这个笨蛋只会存储的是二进制信息,所以,这一段到底是代码段还是数据段完全是我们人类所定义的。
    7.栈是人类智慧的结晶。栈,是一种特殊的访问方式。它有许多优点。暂且不说。栈遵循的是先入后出,也就是first in last out 。或者是first out last in 。 
    8.8086CPU提供了栈机制,使用push和pop指令来控制,栈所在的段是SS:SP指向的区域,指令执行的步骤是:1)当执行PUSH指令的时候,SP=SP-2 →存放内容。 2)当执行POP指令的时候,取出内容→SP=SP+2 。注意:栈操作的对象是字。
    9.需要注意的是,在栈的使用的时候,CPU不提供栈超界的检测问题,也就是栈顶超界问题,包括PUSH超界和POP超界,所以需要自己认真的识别。因为栈超界的话,如果栈外是重要的内容就会发生重要内容发生错误。
    例子:将10000H~1000FH这段空间当作栈,初始状态是空的。设置AX = 001AH,BX=001BH ,然后交换AX和BX中的数据。
    10.DEBUG中的T命令在执行修改寄存器中的SS的指令的时候,下一条指令也跟着执行了。
    图片       
    
   为什么栈里有数据了呢?原因是因为此处发生了单步中断,在后面我们会学到的。

第四章 第一个程序
    1.编写一个源程序之后,需要通过编译器进行编译,然后得到一个可以执行的程序。
    3.编写一个源程序之后,通过编译和链接产生可以执行的程序,然后就可以运行了,也可以使用debug进行单步调试。
        在程序调入到内存的时候,会现在内存中设置成PSW区,用于程序与计算机的交互。占10H的大小
        例子:
图片

图片


复习时间:2015年8月24日

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值