汇编语言程序设计P50

来源:百度知道 编辑:UC知道 时间:2024/05/27 06:14:06
MOV AX,DS:[1000H]
若(DS)=2000H,则执行结果为(AX)=1234H

为什么?是怎么算的?
我想问下,你这个2000H:1000H是个什么意思呀?是内存地址吗?那通用的表达式是什么啊,也就是“2000H”这个位置放的表示什么,“1000H”这个位置放的又表示什么,“:”又表示什么?
还有为什么(AX)执行结果平白无故的就为1234H呀?

关键是看2000:1000h这个位置存的是什么数据,如果存的是1234h,那么ax=1234h,如果是5678h,那么ax=5678h啊,不要想得太复杂。

“2000H:1000H”这个式子被称为逻辑表达式,由它可以得到对应的物理地址20000H+1000H。

指令“MOV AX,DS:[1000H]”的作用是:将从21000H地址开始的连续两个字节的内容放到AX寄存器中,原则是高地址内容放到AH中,低地址内容放到AL中。
而至于为什么那个内存单元里的内容是1234H就不知道了,也许是先前写进去的,也许本来就是。

由于内存是电子元件,所以无论何时、无论哪个单元里都有内容,平常说得可用内存,在写入或初始化之前,里面也是有东西的,只是值是随机的,通常对用户而言是没有实际意义的。

物理地址应该为:20000+1000(h)
对应的存储 |34|....地址
|12|....地址