汇编语言 第三章 寄存器(内存访问)

1、字数据在内存中的存储

(1)内存以字节为单位划分为若干个单元。

(2)字在储存时要用两个地址连续的内存单元来存放。

(3)字数据的存-取原则:高-高,低-低。即小端法,低位字节存放在低地址内存单元,高位字节存放在高地址内存单元,并且取低地址内存单元地址作为字数据地址。

(4)在内存和寄存器之间传送字型数据时,高地址单元和高8位寄存器、低地址单元和低8为寄存器相对应。

2、数据在内存单元和CPU之间的传送

(1)执行命令时,默认情况下,8086自动取寄存器DS中的值为内存单元的段地址。

                   1)将一段内存用作数据段,是编程时的一种安排;

                    2)在mov,add,sub等汇编指令中,访问内存单元时,默认情况下,指的是数据段。

3、汇编指令mov,add,sub

(1)mov:

           可以将数据直接送到寄存器,也可以将一个寄存器的内容送入另一个寄存器

           注意事项

          1)两个操作数长度要一致。

          2)常数不能作为第一个操作数(目的操作数)

          3)常数作第二个操作数时,如果最高位是十六进制的A~F,前面要加零。

          4)两个内存单元之间不能直接传送数据。

          5)不能使用mov修改CS和IP的值

          6)两个段寄存器之间不能直接传送。

          7)不能把常数送到段寄存器。

(2)add:注意事项

          1)add指令的操作数不能同时是内存单元。

          2)add指令的操作数不能是段寄存器。

(3)sub:注意事项

          1)两个内存单元不能直接用sub指令相减。

          2)sub指令的操作数不能是段寄存器。

extra:mov,add,sub是具有两个操作对象的指令。jmp是具有一个操作对象的指令。

4、栈

(1)栈是一个逻辑概念。可以将一段内存空间当作栈来使用。

(2)栈顶的物理地址:SS:SP

          1)SS:栈段段寄存器,存放栈段的段地址。

          2)SP:栈指针寄存器,存放栈顶的偏移地址。

物理地址:(SS)×16+SP

(3)push和pop:

         1)入栈和出栈均以字为单元

         2)操作对象不能是常数

         3)pop段寄存器中,段寄存器不能是CS和SS。

(4)栈顶超界

      1)栈满时用push入栈

      2)栈空时用pop出栈

猜你喜欢

转载自www.cnblogs.com/-Anguvia-/p/9852598.html
今日推荐