繁体   English   中英

无法将寄存器移动到寄存器

[英]Cannot move a register to a register

当我写这个时:

mov cx,dh
mov dx,dl

它会出错:

invalid combination of opcode and operands

我是汇编语言的初学者,所以我需要帮助!

mov cx,dh

您收到的mov cx, dh错误消息意味着 CX 目标寄存器(16 位)的大小与 DH 源寄存器(8 位)的大小不同。 对于大多数指令,操作数的大小必须相同。

有几种方法可以在 CX 中复制 DH。

   unsigned              signed
   --------              ------

1) movzx cx, dh       1) movsx cx, dh       ; 386+

                      2) mov   ch, dh
                         sar   cx, 8

2) mov   cl, dh       3) mov   al, dh       ; 8086
   mov   ch, 0           cbw
                         mov   cx, ax

3) xor   cx, cx       4) mov   ah, dh
   mov   cl, dh          mov   cl, 8
                         sar   ax, cl
                         mov   cx, ax

有几种方法可以在 DX 中复制 DL。

   unsigned              signed
   --------              ------

1) movzx dx, dl       1) movsx dx, dl       ; 386+

                      2) mov   dh, dl
                         sar   dx, 8

2) mov   dh, 0        3) mov   al, dl       ; 8086
                         cbw
                         mov   dx, ax

                      4) mov   dh, dl
                         mov   cl, 8
                         sar   dx, cl

明智地选择并坚持简单的!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM