keil编译时查汇编发现多了一句C中没有的语句,大神救命

就是黄色那句,好奇怪(SegBuffer是数组名,0x1D是变量i)可是unsignedcharSegBuffer[4]={0};不是int... 就是黄色那句,好奇怪
(SegBuffer是数组名,0x1D是变量i )
可是
unsigned char SegBuffer[4]={0};
不是int
展开
 我来答
ghost4063
2014-03-20 · TA获得超过6519个赞
知道大有可为答主
回答量:2940
采纳率:75%
帮助的人:2741万
展开全部
SegBuffer看起来是个int型的数组,每个元素是个int,所以有两个字节。
当指向元素i时,就应该是SegBuffer的(头指针+i×2)个字节。这就是
mov a,0x1d
add a,ACC
add a,#SegBuffer
的含义。
此时,因为是int型的元素,所以A指向SegBuffer[i]的高字节,因为P3是8位的寄存器,需要把SegBuffer[i]的低字节赋给它,所以inc r0就是为了让指针加1,指向SegBuffer[i]的低字节。
追问
可是
unsigned char SegBuffer[4]={0};
不是int
意法半导体(中国)投资有限公司
2023-06-12 广告
单片机汇编程序是用汇编语言编写的程序,用于控制单片机的操作。汇编语言是一种比较接近计算机硬件语言的低级语言,相对于高级语言来说更容易理解和实现。下面是单片机汇编程序的基本步骤:1. 将代码和数据汇编到规定的段中。2. 在存储器中用未初始化的... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
做而论道
高能答主

2014-03-20 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.1亿
展开全部
以 i (0x1D) 来查找双字节变量数组 SegBuffer,应该乘2加1,没有什么奇怪的。
追问
可是
unsigned char SegBuffer[4]={0};
不是int
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式