从零开始学汇编

从零开始学汇编

5 (96人评价)
  • 课时:(62)

  • 学员:(2501)

  • 浏览:(146788)

  • 加入课程

第三章 寄存器(内存访问)01的笔记

相关课时: 笔记详情:

任何两个地址连续的内存单元,N号单元和N+1号单元,可以将他们看成两个内存单元,也可以看成一个地址为N的字单元中的高位字节单元和地位字节单元。

 

8086CPU中有一个DS寄存器,通常用来存放要访问的数据的段地址。

例如:我们要读取10000H单元的内容可以用如下程序段进行:

mov bx.1000H

mov ds,bx

mov al,[0]

上面三条指令将10000H(1000:0)中的数据读到al中。

 

已知的MOV指令可完成的两种传送功能:

1.将数据直接送入寄存器;

mov ax,2;

2.将一个寄存器中的内容送入另一个寄存器中

mov bx,ax;

除此之外,mov指令还可以将一个内存单元中的内容送入一个寄存器

10000H表示为1000:0(段地址:偏移地址)

将段地址1000H放入ds

用mov al,[0]完成传送(mov指令中的[]说明操作对象是一个内存单元,[]中的0说明这个内存单元的偏移地址是0,它的段地址默认放在ds中)

 

8086CPU不支持将数据直接送入段寄存器的操作,ds是一个段寄存器

 

mov al,[0] 偏移地址为0的数据的一个字节

 

执行指令时,8086CPU自动取DS中的数据为内存单元的段地址

10000H表示为1000:0(段地址:偏移地址)

将段地址1000H放入ds

用mov al,[0]完成传送(mov指令中的[]说明操作对象是一个内存单元,[]中的0说明这个内存单元的偏移地址是0,它的段地址默认放在ds中)

 

8086CPU不支持将数据直接送入段寄存器的操作,ds是一个段寄存器(硬件设计的问题)mov ds,1000H是非法的!

数据----通用寄存器---段寄存器

 

将数据从寄存器送入内存单元:

mov bx,1000H

mov ds,bx

mov [0],al

 

 

 

 

0 0