初学者求问MOV DL,[SI]的意思
菜鸟求问MOVDL,[SI]的意思各位大虾好,小弟最近初学汇编,今天看一段代码事卡住了,求解释:Assembly codeMOV
菜鸟求问MOV DL,[SI]的意思
各位大虾好,小弟最近初学汇编,今天看一段代码事卡住了,求解释:
Assembly codeMOV SI,0 ;将SI指向内存0000H处MOV DL,[SI] ;SI指向的内容也是2B长的吧,怎么能赋给1B长的DL呢?
[解决办法]目标寄存器用的是DL,则传输宽度是字节。即:将数据段DS地址为0的内容赋值给DL。
[解决办法]地址,只是个编号而已,不存在长度的问题。究竟有多长,一是段大小的限制,再就是你使用的方式了。就如一排的巧克力编上号,从第 3 块起,你可以取一块、两块,甚至更多,只要后面有。
[解决办法][解决办法]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 里面