主题:问知识点
装高手
[专家分:30] 发布于 2006-06-18 18:27:00
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个回复)
沙发
wbsun111 [专家分:320] 发布于 2006-06-20 20:59:00
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寄存器
板凳
宽 [专家分:150] 发布于 2006-06-20 23:25:00
2.段不是只有CS,DS,SS,ES么,那书上怎么会“定义段”?
CS,DS,SS,ES 是段寄存器
定义段 是定义段不能混化一谈
存储器的地址是段地址和偏移地址组合而成的,汇编程序在把源程序换为目标程序时,必须确定标号和变量的偏移地址,并且需要把有关信息通过目标模块传送给连接程序,以便连接程序把不同的段和模块连接在一起,形成一个可执行程序。
所以需要肜段定义伪操作。
我来回复