第三章:寄存器(内存访问)03
让编程改变世界
Change the world by program
mov、add、sub指令
已学mov指令的几种形式:
mov 寄存器,数据
mov 寄存器,寄存器
mov 寄存器,内存单元
mov 内存单元,寄存器
mov 段寄存器,寄存器
根据已知指令进行推测:
mov 段寄存器,寄存器
mov 寄存器,段寄存器
[caption id="attachment_282" align="aligncenter" width="300"]![mov 寄存器,段寄存器](http://blog.fishc.com/wp-content/uploads/2012/07/110-300x122.gif)
mov 内存单元,寄存器
mov 内存单元,段寄存器
mov 段寄存器,内存单元
add和sub指令同mov一样,都有两个操作对象。 [caption id="attachment_283" align="aligncenter" width="300"]![mov 寄存器,段寄存器](http://blog.fishc.com/wp-content/uploads/2012/07/27-300x136.gif)
数据段
前面讲过,对于8086PC机,我们可以根据需要将一组内存单元定义为一个段(可以是代码段、数据段等)。 我们可以将一组长度为N(N≤64K)、地址连续、起始地址为16的倍数的内存单元当作专门存储数据的内存空间,从而定义了一个数据段。 比如我们用123B0H~123B9H这段空间来存放数据:段地址:123BH
长度:10字节
如何访问数据段中的数据呢?
将一段内存当作数据段,是我们在编程时的一种安排,我们可以在具体操作的时候 ,用 ds 存放数据段的段地址,再根据需要,用相关指令访问数据段中的具体单元。 我们将123B0H~123BAH的内存单元定义为数据段,我们现在要累加这个数据段中的前3个单元中的数据,代码如下: [caption id="attachment_284" align="aligncenter" width="300"]![访问数据段中的数据](http://blog.fishc.com/wp-content/uploads/2012/07/33-300x81.gif)
问题3.5
写几条指令,累加数据段中的前3个字型数据。 思考后看分析: [caption id="attachment_285" align="aligncenter" width="300"]![累加数据段中的前3个字型数据](http://blog.fishc.com/wp-content/uploads/2012/07/44-300x98.gif)