32位汇编mov di, (一个单字节的变量)为什么会报错说invalid instruction operands?

 我来答
pardream941026
2019-12-17 · TA获得超过8216个赞
知道大有可为答主
回答量:4602
采纳率:89%
帮助的人:1330万
展开全部
di是16位长,单字节变量是8位长,类型不匹配,当然不可以这么用了。
再说,di一般是当作指示器用的(高级语言里的数组下标索引,如:C语言里数组变量
int a[10];
int i; i=0; di的作用就类似于变量i的作用)
你用mov di, input
就相当于,把一个8位长的数据,塞进16位长的寄存器里,位数不够。
不知道你哪来的代码,我估计应该是:
mov di, offset input (把di的偏移地址写入di,这样,可以使用 [di]来访问 input数组。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式