您的位置:程序门 -> 其他开发语言 -> 汇编语言



关于lds命令


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


关于lds命令[已结贴,结贴人:decoderex_]
发表于:2007-08-04 18:54:05 楼主
急:


lds   reg   ,   oprd
这个是将段地址传送到ds,偏移地址传送到通用寄存器,
执行的操作是 <reg>   <---   <oprd>
                        <ds>     <---   <oprd+2>
那么为什么低字是偏移地址,高字存储的是段地址

发表于:2007-08-05 06:48:431楼 得分:0
偏址在前,   段址在后,   这个是符合   x86   数据存储规范的,   即所谓的   little   endian   小端模式.   也和   jmp/call   far   [xxxx]   对内存地址处的地址的格式要求.
发表于:2007-08-05 10:27:092楼 得分:0
额,不好意思,我说的不太清楚,我是想问,oprd是一个操作数,为什么这个操作数的空间存储的数值是段地址和偏移地址
比如说:lds   si,[10h]
    指令执行前   <ds> =c000h,     <coo10h> =0180,   <coo12h> =2000
    指令执行后   <si> =0180h, <ds> =2000h
计算可以知道这个操作数的物理地址是c0010h,那为什么这个地址上存储的是偏移地址,不是一个普通的数?

谢谢啦,我初学,找了好多资料都没看明白,都是直接给出结果没说为什么这个空间上存储的是偏移地址而下个字存储的是段地址
发表于:2007-08-05 13:31:513楼 得分:20
lds     si,   [10h]   指令的功能就是将   [10h]   处的   word   赋予     si,   [12h]   处的   word   赋予   ds   啊
[10h]   地址出存储的是偏移地址,   还是普通的数,   这个,   从设计该指令的目的和该指令的功能来看,   是偏移地址了.   虽然也可能在后面仅仅是作为一个数来处理,   但如果只是一个普通的数的话,   似乎没有必要使用该指令了,   mov   si,   ds:[10h]   足矣
发表于:2007-08-05 17:16:204楼 得分:0
汇编有时是为了硬件设计方便,而不是出于数学逻辑,要更符合逻辑就用高级语言吧。


快速检索

最新资讯
热门点击