+ -
当前位置:首页 → 问答吧 → 菜鸟求问MOV DL,[SI]的意思

菜鸟求问MOV DL,[SI]的意思

时间:2011-12-15

来源:互联网

各位大虾好,小弟最近初学汇编,今天看一段代码事卡住了,求解释:
Assembly code

MOV SI,0       ;将SI指向内存0000H处
MOV DL,[SI]    ;SI指向的内容也是2B长的吧,怎么能赋给1B长的DL呢?

作者: TechJason   发布时间: 2011-12-15

目标寄存器用的是DL,则传输宽度是字节。即:将数据段DS地址为0的内容赋值给DL。

作者: masmaster   发布时间: 2011-12-15

地址,只是个编号而已,不存在长度的问题。究竟有多长,一是段大小的限制,再就是你使用的方式了。就如一排的巧克力编上号,从第 3 块起,你可以取一块、两块,甚至更多,只要后面有。

作者: zara   发布时间: 2011-12-15

引用楼主 techjason 的回复:
各位大虾好,小弟最近初学汇编,今天看一段代码事卡住了,求解释:
Assembly code

MOV SI,0 ;将SI指向内存0000H处
MOV DL,[SI] ;SI指向的内容也是2B长的吧,怎么能赋给1B长的DL呢?

第一句是将值0送给寄存器si,而且si指向0内存。
第二句是将地址ds[si]处的内存的值(一个字节 )传给DL。与mov dl,byte ptr [si]一个意思 。如果是 mov dx,[si],则传送的是二个字节 [si]和[si+1]

作者: qqcd0304   发布时间: 2011-12-15