MOV [SI],10H是否正确 错在哪儿

2025-05-18 18:23:15
推荐回答(2个)
回答1:

[si] 表示一个内存单元,物理地址是 ds:[si]

mov 指令不支持将数据赋值给内存空间

可以考虑:
mov ax,10h
mov [si],ax
这样的话就是正确的赋值。

————————————以下是debug内容————————————————
DS=1000 ES=0B4F SS=0B4F CS=0B4F IP=0103 NV UP EI PL NZ NA PO NC
0B4F:0103 8904 MOV [SI],AX DS:0000=0000
-t

AX=0010 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1000 ES=0B4F SS=0B4F CS=0B4F IP=0105 NV UP EI PL NZ NA PO NC
0B4F:0105 26 ES:
0B4F:0106 3A0F CMP CL,[BX] ES:0000=CD

-d 1000:0
1000:0000 10 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
1000:0010 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
1000:0020 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
1000:0030 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
1000:0040 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
1000:0050 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
1000:0060 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
1000:0070 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

回答2:

正确