主题:MOV的判断
zqg1177
[专家分:180] 发布于 2005-09-21 21:38:00
MOV AL,[BX]
MOV [BX],0AH
我觉得这两句话都不对,第一句错在如果源操作数的确是二个字节的数,那边目的就放不下了。
第二句,[BX]应该是个内容,所以是错的。
大家说说看是不是这样?
回复列表 (共9个回复)
沙发
kaikaikai007 [专家分:650] 发布于 2005-09-22 09:55:00
第一个有可能造成数据丢失!
第二个应该是对的,[bx]是个地址,是把0a放到bx 指向的地址的空间
板凳
zqg1177 [专家分:180] 发布于 2005-09-22 10:39:00
明白了,谢谢
3 楼
tiday [专家分:60] 发布于 2005-09-22 13:46:00
第一条指令mov al,[bx],其中源操作数[bx]采用的寄存器间接寻址方式,表示的意思是数据段基址寻址,(假如BX中的值为1000H,那么将会把数据段中的以1000为偏移量的1个单元中的内容存放到AL中去),此指令正确!
第二条指令mov [bx],0ah错了,原因是存储类别不清,如果改为mov [bx],byte ptr 0ah或者mov [bx],word ptr 0ah都对,也就是说两个操作数,至少需要有一个操作数的类别明确.
4 楼
kaikaikai007 [专家分:650] 发布于 2005-09-22 16:11:00
楼上说的有道理!不过应该把寄存器指定类型!谢谢指教!
5 楼
bluelight [专家分:280] 发布于 2005-09-23 19:12:00
第一个不会造成成数据丢失!
因为[bx]是个地址
6 楼
def [专家分:3380] 发布于 2005-09-25 17:35:00
第一个是:
mov al, [bx]
^字节 ^不明确
如果[bx]不是字节型的则有可能丢失数据。
8 楼
救世猪猪 [专家分:560] 发布于 2006-10-16 13:07:00
第一个对
第二个错
三楼正解
9 楼
fanjw510 [专家分:110] 发布于 2006-10-16 14:54:00
赞同楼3与楼7的说法。
我来回复