学习时间: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的大小
例子:

学习者:易天曦
第三章 寄存器(内存访问)
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日