【发布时间】:2022-01-11 06:34:04
【问题描述】:
我有一个名为 char 的变量,当我按下该键时,它应该将他的值更改为键盘键。我访问了How to change the value of a variable in assembly,它说我使用mov char, key_value。问题是我得到了terminal.asm:126: error: invalid combination of opcode and operands 。在网上搜索解决方案我看到有必要放括号[]。我试过了,同样的错误发生了。
这是我文件的一部分:
printChar:
mov edx, char;
loop5_terminal:
mov al, [edx];
mov byte [edi], al;
inc edi;
inc edi;
inc edx;
inc ebx
call cursor_terminal
cmp byte[edx],0;
jne loop5_terminal;
jne l2_terminal
l2_terminal:
cmp al , 0x03 ; Checks for key 2 input
mov char, [two]
je printChar
谢谢。
【问题讨论】:
-
在大多数汇编方言中,您不需要以分号结束一行。前导分号仅表示注释的开始。
-
这不是一个完整的例子。特别是,它不包括
char和two的定义,这是我们提供帮助所必需的。 -
错误发生在哪一行?显示您的完整代码。
-
在链接的问题或答案中,我没有看到任何使用
mov char, key_value的建议。 (这是一件好事,因为除非char被定义为扩展为不同文本的宏,例如寄存器名称或包括方括号的寻址模式,否则这是无效的。因为mov char, whatever就像123 = foo在 C 中,尝试分配给常量。)