4个回答
2012-09-09
展开全部
00401082 mov dword ptr [ebp-14h],3
00401089 mov eax,[string "limi" (0042201c)]
带有[]的表示内存,()的表示地址.[]里面的内容当然也是地址,由这一地址指向的内存单元空间.
00401089 mov eax,[string "limi" (0042201c)]
带有[]的表示内存,()的表示地址.[]里面的内容当然也是地址,由这一地址指向的内存单元空间.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我只看过[]用于寻址,如 ds:[si]
()很少见,印象中使用有如 db 12 dup(0)
()很少见,印象中使用有如 db 12 dup(0)
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般说来,加方括号 [ ] 表示一种间接的取操作数方式,有点类似于C语言中的指针概念。
第一条指令 ADD AL ,[SI] 中,[SI] 表示寄存器间接寻址。也就是说,与AL中内容相加的加数,不是SI寄存器的内容,而是以SI的内容作为地址指针的内存操作数。
假设SI的内容是1234H,这条加法指令,不是将1234H加到AL里(也加不了,数据类型不对),而是以1234H作为地址,从内存的数据段(DS所指)中,段内偏移地址为1234H的那个内存单元中取出一个字节的数据来,加到AL中。
同样的,第二条指令 MOV [20H],AL,是将AL中的内容传送到内存里的一个单元中去.这个单元的有效地址就是[20H]。
第一条指令 ADD AL ,[SI] 中,[SI] 表示寄存器间接寻址。也就是说,与AL中内容相加的加数,不是SI寄存器的内容,而是以SI的内容作为地址指针的内存操作数。
假设SI的内容是1234H,这条加法指令,不是将1234H加到AL里(也加不了,数据类型不对),而是以1234H作为地址,从内存的数据段(DS所指)中,段内偏移地址为1234H的那个内存单元中取出一个字节的数据来,加到AL中。
同样的,第二条指令 MOV [20H],AL,是将AL中的内容传送到内存里的一个单元中去.这个单元的有效地址就是[20H]。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
[ ]表示地址,( )表示数据
更多追问追答
追问
那不一回事呀
追答
举例?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询