回 帖 发 新 帖 刷新版面

主题:问知识点

1.为什么“一个段的长度不能超过64K”?

2.段不是只有CS,DS,SS,ES么,那书上怎么会“定义段”?

3.MOV  [BX+SI], AX  这个里面的[BX+SI]是什么意思?
  MOV  CH, [BX+DI+100H]  这里的[BX+DI+100H]又是什么意思?
  MOV  EDX, 12345678H   这个的EDX是什么意思?不是只有DX么?





回复列表 (共2个回复)

沙发

1.为什么“一个段的长度不能超过64K”?

8086字长:16bit  2的16次方=65536,也就是64KB

2.2.段不是只有CS,DS,SS,ES么,那书上怎么会“定义段”?
SORRY,我不知道

3..MOV  [BX+SI], AX  这个里面的[BX+SI]是什么意思?
[]表示提取有效地址
BX+SI 表示数据传送采用基址+变址寻址方式

  MOV  CH, [BX+DI+100H]  这里的[BX+DI+100H]又是什么意思?
基址+变址+位移量寻址方式

  MOV  EDX, 12345678H   这个的EDX是什么意思?不是只有DX么?
DX最多存放16位二进制数据
EDX最多存放32位二进制数据
你定义的立即数数据长度8*4=32位,必须用到EDX寄存器

板凳

2.段不是只有CS,DS,SS,ES么,那书上怎么会“定义段”?

CS,DS,SS,ES 是段寄存器 
定义段 是定义段不能混化一谈

存储器的地址是段地址和偏移地址组合而成的,汇编程序在把源程序换为目标程序时,必须确定标号和变量的偏移地址,并且需要把有关信息通过目标模块传送给连接程序,以便连接程序把不同的段和模块连接在一起,形成一个可执行程序。
所以需要肜段定义伪操作。

我来回复

您尚未登录,请登录后再回复。点此登录或注册