首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

初学者求问MOV DL,[SI]的意思

2012-03-14 
菜鸟求问MOVDL,[SI]的意思各位大虾好,小弟最近初学汇编,今天看一段代码事卡住了,求解释:Assembly codeMOV

菜鸟求问MOV DL,[SI]的意思
各位大虾好,小弟最近初学汇编,今天看一段代码事卡住了,求解释:

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


[解决办法]
目标寄存器用的是DL,则传输宽度是字节。即:将数据段DS地址为0的内容赋值给DL。
[解决办法]
地址,只是个编号而已,不存在长度的问题。究竟有多长,一是段大小的限制,再就是你使用的方式了。就如一排的巧克力编上号,从第 3 块起,你可以取一块、两块,甚至更多,只要后面有。
[解决办法]
探讨
各位大虾好,小弟最近初学汇编,今天看一段代码事卡住了,求解释:
Assembly code

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

[解决办法]

mov si, 0
mov dl, [si] ;[si]的长度要看前面寄存器类型,如mov dx ,[si]就是将si起
;始的一个字型数据送入dx;
又如指令
mov [bx], 10h ;[bx]长度未定,10h长度也不知,因此必须指定数据类型,故此句有错
可以改为:
mov word ptr [bx], 10h ;这一句作用是将字型数据10h送入字型单元[bx]

[解决办法]
[si]是代表内存单元,默认的寄存器的ds,所以实质的意思就是mov dl,ds[0] 把0号内存单元的内容放到8位寄存器cl 里面

热点排行