回 帖 发 新 帖 刷新版面

主题:MOV的判断

MOV AL,[BX]
MOV [BX],0AH
我觉得这两句话都不对,第一句错在如果源操作数的确是二个字节的数,那边目的就放不下了。
第二句,[BX]应该是个内容,所以是错的。
大家说说看是不是这样?

回复列表 (共9个回复)

沙发

第一个有可能造成数据丢失!
第二个应该是对的,[bx]是个地址,是把0a放到bx 指向的地址的空间

板凳

明白了,谢谢

3 楼

第一条指令mov al,[bx],其中源操作数[bx]采用的寄存器间接寻址方式,表示的意思是数据段基址寻址,(假如BX中的值为1000H,那么将会把数据段中的以1000为偏移量的1个单元中的内容存放到AL中去),此指令正确!
第二条指令mov [bx],0ah错了,原因是存储类别不清,如果改为mov [bx],byte ptr 0ah或者mov [bx],word ptr 0ah都对,也就是说两个操作数,至少需要有一个操作数的类别明确.

4 楼

楼上说的有道理!不过应该把寄存器指定类型!谢谢指教!

5 楼

第一个不会造成成数据丢失!
因为[bx]是个地址

6 楼

第一个是:
mov al,        [bx]
    ^字节       ^不明确
如果[bx]不是字节型的则有可能丢失数据。

7 楼


[em3]

8 楼

第一个对
第二个错
三楼正解

9 楼

赞同楼3与楼7的说法。

我来回复

您尚未登录,请登录后再回复。点此登录或注册