汇编中段基地址能这样用吗?

来源:百度知道 编辑:UC知道 时间:2024/06/04 02:34:31
比如一个地址0400H:0040H,比如说这个地址,实际地址也就是40040H咯
也就是我要取到这个地址的内容,我就把DS的地址赋0400H,然后SI赋0040H
到时比如我要把它取到AX里,就MOV AX DS[SI]咯(刚学汇编,MOV是这样用的对吧)
那我可不可以把DS赋0402H,然后SI赋0020H,这样同样DS[SI]返回的地址也是那个内容吧?
概括来说,我的意思就是段基地址,可以像这样随便赋吗?

0400H:0040H其物理地址是:04040H,想必是楼主疏忽了。

段地址和偏移地址都具有相对性,。只要物理地址没变,其段地址和偏移地址是可以改变的。正如楼主所说,0400H:0040H=0402H:0020H。

楼上回答的很完满了。

其实这就是设计段地址+偏移地址的初衷,允许一个物理地址以多种方式访问,避免程序过于依赖物理地址

其实过于纠缠这种访问当时没有多少意义,除了极少的特殊应用外,大多数汇编程序都会使用变量进行引用,不必过多的关心物理地址和变量真正的偏移地址,当然要处理边界问题